C語言整理筆記(3)

運算和數據類型(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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章