輸出控制符
輸出控制符 | 含義 |
---|---|
%d | int 整型數 |
%ld | long int |
%c | char 一個字元 |
%f | float 浮點數,整數/整數=整數,整數/小數=小數 |
%lf | double |
%x %X %#X | int 或 long int 或 short int 十六進位制整型數 |
%o | int 或 long int 或 short int 八進位制整型數 |
%s | 字串 |
(資料型別)(表示式):把表示式的值強制轉換成某種資料型別
a = a + (float) (1/b) (×)
a = a + 1/(float) (b) (√)
也可以寫成 a = a + 1.0/b
#include <stdio.h>
int main (void)
{
printf ("請輸入兩個值,用逗號分隔") /*為了方便使用者使用最好先使用printf來提示
使用者以什麼樣的方式來輸入*/
int i //定義變數,也可以直接賦值,但在此處賦值後函式值不可更改
scanf ("%d,%d", &i); //&i表示i的地址 &是一個取地址符
//%d,%d中間的逗號屬於非輸入控制符
//非輸入控制符必須原樣輸入,否則溢位
//但最好不要在scanf中使用非輸入控制符,尤其是\n
printf ("i = %d\n",i) //scanf和printf裡格式區別
return 0; //注意分號
}
運算子
算術運算子
+ - * / %(取餘數)
關係運算子
> >= < <= !=(不等於) ==(等於)
邏輯運算子
!(非) &&(並且) ||(或)
賦值運算子
= +=(a+=3等同於a = a + 3) *= /= -=
優先順序
算數 > 關係 > 邏輯 > 賦值
#include <stdio.h>
int main (void)
{
int i;
int sum = 0;
for ( i = 1; i <= 4; i = i + 1) //++i = i + 1 ; i = 1只執行一次
sum = sum + i;
printf ( “sum = %d\n”, sum );
return 0;
}
for (1;2;3;)
4;
5;
1→2成立→4→3→2
不成立→5
for ( i = 起始值 ; i<=終止值 ; i = i + 步長值 )
迴圈過程:
i = 1 , 1<=4 , sum = 1 , i = 2
i = 2 , 2<=4 , sum = 1 + 2 = 3 , i = 3
i = 3 , 3<=4 , sum = 1 + 2 + 3 + 4 , i = 4
i = 4 , 4<=4 , sum = 1 + 2 + 3 + 4 + 5 , i = 5
i = 5 , 5>4 , 迴圈結束,輸出sum = 1 + 2 + 3 + 4 + 5
三目運算子
A ? B : C
等價於
if (A)
B;
else
C;
#include <stdio.h>
int main (void)
{
int a;
printf ("請輸入樓層:");
scanf ("%d",&a);
switch (a)
{
case 1:
printf ("1層!\n");
break;
case 2:
printf ("2層!\n");
break;
case 3:
printf ("3層!\n");
break;
default:
printf ("沒有這層!\n");
break;
}
return 0;
}
default預設執行以下所有語句,case在檢測到相應輸入後執行最近的break之前的語句。