-------------------------------------------------------------------------------------------------
實際的計算中我們接觸的數據不僅僅是整型,那麼C語言程序中只使用int也會帶來一些問題。
從一個例子開始:
#include <stdio.h> int main() { int a; printf("輸入一個數,得到除以3的結果 :"); scanf("%d", &a); printf("%d", a/3); //3,小數部分被自動捨去 return 0; }
解決方法:
1. 使用浮點數做除法運算(整數和浮點數做運算,C將把整數轉為浮點數,然後進行浮點數運算)
#include <stdio.h> int main() { double a; double b; printf("請依次輸入兩個數,如1 2,計算相除的結果:\n"); scanf("%lf %lf", &a, &b); //輸入用%lf printf("相除結果是:%f \n", a/b); //輸出用%f return 0; }
2. 直接將整數值改為浮點值參與運算
#include <stdio.h> int main() { printf("%f", 10.3/3); //3.333333 return 0; }
數據類型:
整數
int
scanf("%d");
printf("%d", 5);
浮點數
double
scanf("%lf", &a);
printf("%f", 10.0);
計算:
#include <stdio.h> int main() { //計算1小時30分鐘與3小時20分的時間差 /* 步驟:1.使用變量存儲數值 2.設定換算方式(公式):小時取分鐘差後除以60取整數部分,分鐘為分鐘差後除以60取余 3.得到結果 */ int hour1, minute1; int hour2, minute2; scanf("請輸入時間1的小時和分鐘:%d %d", &hour1, &minute1); //讀入用戶的輸入值 scanf("請輸入時間2的小時和分鐘:%d %d", &hour2, &minute2);
int t1 = hour1 * 60 + minute1;
int t2 = hour2 * 60 + minute2;
int t = t2 - t1;
printf("時間差為%d小時%d分鐘", t/60, t%60); //相比下面的方式,效率高些
/*
printf("時間差為%d小時%d分鐘", ((hour2*60+minute2)-(hour1*60+minute1))/60, ((hour2*60+minute2)-(hour1*60+minute1))%60);
*/
return 0; }
求平均值
#include <stdio.h> int main(int argc, const char * argv[]) { //求平均值 int a,b; printf("請輸入兩個數:"); scanf("%d %d", &a, &b); printf("平均值為:%f", (a + b) / 2.0); }
運算符優先級:+(正),-(負),*(乘),/(除),%(取余),+(加),-(減),=(賦值)
交換變量的值:
由於程序是按步執行,如果簡單賦值,最後只會得到兩個相同的值,這時候就需要第三個變量。
#include <stdio.h> int main() { int a = 5; int b = 8; int c; c = a; a = b; b = c; printf("a=%d b=%d", a, b); }
@黑眼詩人 <www.chenwei.ws>