運算和數據類型(2)
數據類型
- 求平均值
讀取兩個整數,求他們的平均值。
#include<stdio.h>
int main (void)
{
int a,b;
printf("請輸入兩個整數:\n");
printf("整數a:");
scanf("%d",&a);
printf("整數b:");
scanf("%d",&b);
printf("它們的平均值是%d\n",(a+b)/2);
return 0;
}
將表達中a+b括起來的(),是優先運算的標記。此外,運算要遵循先乘除後加減的原則。
- 數據類型
上面代碼中可以看出取平均值不會取到小數,是因爲我們剛開始定義時定義了int 型。 - int型和double類型
C語言中以浮點數的形式來表達實數,這裏我們來學習一下double(雙精度浮點數)類型,下面有一段代碼我們來看double型和int型之間的區別。
#include<stdio.h>
int main (void)
{
int a;
double b;
a=9.99;
b=9.99;
printf("int型變量a的值:%d\n",a);
printf(" a/2:%d\n",a/2);
printf("int型變量b的值:%f\n",b);
printf(" b/2.0:%f\n",b/2.0);
return 0;
}
-
通過運行結果,我們得知把實數值賦給int型變量時,小數點以後的部分會被捨棄掉。
-
在使用printf函數輸出double型值得時候,轉換說明不能使用"%d",而用"%f"。
-
數據類型和對象
-
int 類型只能用來存儲整數,即使把實數值賦給它,也只能保留整數部分。int 類型得取值範圍是-32767到32767。
-
浮點數中double類型可以用來存儲包含小數得實數值。
-
這些數據類型都有一些固有的屬性,繼承了這些屬性而創建出來得實體變量稱爲對象(object)。
-
double類型的運算
#include<stdio.h>
int main (void)
{
double a,b;
printf("請輸入兩個數:");
printf("實數a:");
scanf("%lf",&a);
printf("實數b:");
scanf("%lf",&b);
printf("a+b=%f\n",a+b);
printf("a-b=%f\n",a-b);
printf("a*b=%f\n",a*b);
printf("a/b=%f\n",a/b)
return 0;
}
轉換說明:
int 型 :printf("%d",a); scanf("%d",&a);
double型: printf("%f",a); scanf("%lf",&a);
-
數據類型和運算
類似int/double和double/int 這種情況,運算結果會變成double型。 -
類型轉換
通常“(數據類型)表達式”形式的表達式,會把表達式的值轉換爲該數據類型對應的值。這樣的顯示轉換被稱爲類型轉換(cast),()被稱爲類型轉換運算符(cast operator)。
類型轉換運算符(類型名)a 把a的值轉換爲指定數據類型對應的值。
-
轉換說明
-
%5……顯示至少5位的十進制數。
-
%5.1f……顯示至少5位的浮點數。但是小數點後值顯示一位。
-
%09.9f
0標誌:
設定了0標誌之後,如果熟知的前面有空餘位,則用0 補齊位數。
-
最小字節段:
就是至少要顯示出的字符位數。不設定該位數或者顯示數值實際位數超過它的時候,會根據數值顯示出必要的位數。另外,如果設定了“-”,數據會對齊顯示,未設定則會右對齊顯示。 -
精度
指定顯示的最小位數,如果不指定,則整數的時候默認爲1,浮點數的時候默認爲6. -
轉換說明符
d……顯示十進制的int 型。
f……顯示的十進制的double 型浮點數。
加強記憶,簡單代碼示例:
#include<stdio.h>
int main (void)
{
printf("[%d]\n",123); //[123]
printf("[%.4d]\n",123); //[0123]
printf("[%4d]\n",123); //[ 123]
printf("[%04d]\n",123); //[0123]
printf("[%-4d]\n\n",123); //[123 ]
printf("[%f]\n",123.13); //[123.130000]
printf("[%.1f]\n",123.13); //[123.1]
printf("[%6.1f]\n\n",123.13); //[123.1]
return 0;
}
運行結果如下:
今日整理打卡,2020 520快樂!
(2020-05-19)