-------------------------------------------------------------------------------------------------
實際的計算中我們接觸的數據不僅僅是整型,那麼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>