C 語言 講義 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C
觀念: 標頭檔(引用前人寫好的函數, 也稱為內建函數)
用法:
#include<標頭檔.h>
例:
#include<stdio.h> /* 使用標準輸出入函數,如: printf、scanf */
完整的例子:
#include<stdio.h>
main()
{
printf("Hello , %d th.\n",i);
}
函數: 一些數學上常用的函數1- pow( ) 次方
用法:
pow ( a,b ) // a 的 b 次方,也就是 a*a*a*...*a 連乘 b 次,必需使用標頭檔 math.h
例:
#include<math.h>
...
c1 = pow (3.0 , 4.0);或
#include<math.h>
...
a1=3.0;
b1=4.0;
c1=pow(a1,b1);
完整的例子1:
#include<stdio.h>
#include<math.h>
void main()
{
int a1,b1,c1;
float a2,b2,c2;
double a3,b3,c3;
a1=3; b1=4;
a2=3.0;b2=4.0;
a3=3.0;b3=4.0;
c1=pow(a1,b1);
c2=pow(a2,b2);
c3=pow(a3,b3);
printf(" %d %d %d \n",a1,b1,c1);
printf(" %f %f %f \n",a2,b2,c2);
printf(" %lf %lf %lf\n",a3,b3,c3);
}
練習1 : 計算 210 的 3 次方
練習2:請設計一個程式,讓使用者輸入 a、b ,然後計算出 a 的 b 次方的值
函數5: 一些數學上常用的函數 2 : sqrt( ) 平方根 squre root
用法:
sqrt ( a ) // 計算 a 的平方根,必需使用標頭檔 math.h
例:
#include<math.h>
...
c1 = sqrt (144.0);或
#include<math.h>
...
a1=144.0;
c1=sqrt(a1);
完整的例子2:
#include<stdio.h>
#include<math.h>
void main()
{
int a1,b1,c1;
float a2,b2,c2;
double a3,b3,c3;
a1=144 ;
a2=144.0;
a3=144.0;
c1=sqrt(a1);
c2=sqrt(a2);
c3=sqrt(a3);
printf(" %d %d \n",a1,c1);
printf(" %f %f \n",a2,c2);
printf(" %lf %lf\n",a3,c3);
}
練習3 : 計算 23716 的 平方根
練習4:請設計一個程式,讓使用者輸入 a、b (a和b 各代表直角三角形的直角上的兩個邊),然後計算出斜邊 的長
函數5: 一些數學上常用的函數 3 : sin( ) 、 cos( )、 tan( ) 三角函數
用法:
sin( a ) // 計算 a 的 sin值,必需使用標頭檔 math.h
cos( a ) // 計算 a 的 cos值,必需使用標頭檔 math.h
tan( a ) // 計算 a 的 tan值,必需使用標頭檔 math.h
注意: a 必須使用弧度而不是角度, 弧度 = 角度 * 3.1416 / 180
例:
#include<math.h>
...
c1=sin(45.0 / 180.0 * 3.1416);
c2=cos(45.0 / 180.0 * 3.1416);
c3=tan(45.0 / 180.0 * 3.1416);或
#include<math.h>
...
a1=45.0;
a2=45.0;
a3=45.0;
c1=sin(a1 / 180.0 * 3.1416);
c2=cos(a2 / 180.0 * 3.1416);
c3=tan(a3 / 180.0 * 3.1416);
完整的例子3:
#include<stdio.h>
#include<math.h>
void main()
{
double a1,a2,a3,c1,c2,c3;
a1=45.0;
a2=45.0;
a3=45.0;
c1=sin(a1 / 180.0 * 3.1416);
c2=cos(a2 / 180.0 * 3.1416);
c3=tan(a3 / 180.0 * 3.1416);
printf("sin %lf %lf \n",a1,c1);
printf("cos %lf %lf \n",a2,c2);
printf("tan %lf %lf \n",a3,c3);
}
練習5 : 計算 60 度的sin( ) 、 cos( )、 tan( )值
函數5: 一些數學上常用的函數 4 : rand( ) 取亂數
用法:
rand( ) // 產生一個 0 ~ 32767 之間的亂數,必需使用標頭檔 stdlib.h
例:
#include<stdlib.h>
...
a = rand( );
完整的例子4:產生10個 0 ~ 32767 之間的亂數
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,a;
for(i=1;i<=10;i++)
{
a=rand();
printf("%d\n",a);
}
}
完整的例子5 : 修改上例,產生的亂數在 0 ~ 99 之間
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,a;
for(i=1;i<=10;i++)
{
a=rand()%100; // 產生的亂數在 0 ~ 99 之間
printf("%d\n",a);
}
}
完整的例子6 : 修改上例,每次執行時產生的亂數都不同
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define randomize() srand((unsigned) time(NULL))
void main()
{
int i,a;
randomize();
for(i=1;i<=10;i++)
{
a=rand()%100; // 產生的亂數在 0 ~ 99 之間
printf("%d\n",a);
}
}
練習7 : 小遊戲: 猜拳遊戲 (玩20次): 使用者輸入1~3, (1:剪刀, 2:石頭, 3:布) , 然後電腦隨機產生數字1~3 (1:剪刀, 2:石頭, 3:布) , 然後告訴使用者誰贏了
練習8 : 小遊戲: 猜拳遊戲 (玩20次): 使用者輸入1~3, (1:剪刀, 2:石頭, 3:布) , 然後電腦隨機產生數字1~3 (1:剪刀, 2:石頭, 3:布) , 然後告訴使用者誰贏了, 但是, 電腦的勝率必須在 6成以上
練習9 : 小遊戲: 猜數字 (XAXB)