0. 題目:
計算 int, float, double 和 char 字節大小
1. 分析:
使用 sizeof 操做符計算int, float, double 和 char四種變量字節大小。
sizeof 是單目操做符,以字節形式給出了其操做數的存儲大小。
2. 程序:算法
#include <stdio.h> int main() { int integerType; float floatType; double doubleType; char charType; // sizeof 操做符用於計算變量的字節大小 printf("Size of int: %ld bytes\n",sizeof(integerType)); printf("Size of float: %ld bytes\n",sizeof(floatType)); printf("Size of double: %ld bytes\n",sizeof(doubleType)); printf("Size of char: %ld byte\n",sizeof(charType)); return 0; }
3. 輸入輸出:code
Size of int: 4 bytes
Size of float: 4 bytes
Size of double: 8 bytes
Size of char: 1 byte教程
0. 題目:
交換兩個數的值
1. 分析:
本例程使用中間變量。
2. 程序:io
#include <stdio.h> int main() { float firstNum, secondNum, tempVar; printf("輸入兩個浮點數(以空格分隔): "); scanf("%f %f", &firstNum, &secondNum); tempVar = firstNum; firstNum = secondNum; secondNum = tempVar; printf("\n交換後 firstNum = %.2f", firstNum); printf("\n交換後 secondNum = %.2f", secondNum); return 0; }
3. 輸入輸出:變量
輸入兩個浮點數(以空格分隔): 1 2
交換後 firstNum = 2.00
交換後 secondNum = 1.00循環
0. 題目:
判斷奇數/偶數
1. 分析:
判斷用戶輸入的整數是奇數仍是偶數。
2. 程序:float
#include <stdio.h> int main() { int iNum; printf("輸入一個整數: "); scanf("%d", &iNum); // 判斷這個數除以 2 的餘數 if(iNum % 2 == 0) printf("%d 是偶數。", iNum); else printf("%d 是奇數。", iNum); return 0; }
3. 輸入輸出:程序
輸入一個整數: 99
99 是奇數。方法
0. 題目:
判斷循環區間內的奇數/偶數
1. 分析:
循環輸出區間範圍內的奇數/偶數能夠經過除於 2 的餘數來判斷。
2. 程序:註釋
#include <stdio.h> int main() { int i; for(i=1;i<=10;i++) { if(i%2 == 0) printf(" %d\n", i); } return 0; }
3. 輸入輸出:
2
4
6
8
10
0. 題目:
判斷元音/輔音
1. 分析:
判斷輸入的字母是元音仍是輔音。英語有26個字母,只有 a、e、i、o、u 是元音。
2. 程序:
#include <stdio.h> int main() { char cInput; int isLowercaseVowel, isUppercaseVowel; printf("輸入一個字母: "); scanf("%c",&cInput); isLowercaseVowel = ((cInput=='a') || (cInput=='e') || (cInput=='i') || (cInput=='o') || (cInput=='u')); // 小寫字母元音 isUppercaseVowel = ((cInput=='A') || (cInput=='E') || (cInput=='I') || (cInput=='O') || (cInput=='U')); // 大寫字母元音 if (isLowercaseVowel || isUppercaseVowel) printf("%c 是元音。", cInput); else printf("%c 是輔音。", cInput); return 0; }
3. 輸入輸出:
輸入一個字母: S
S 是輔音
【注意!】 關係運算符 '==" 優先於 邏輯運算符 "||",所以 (cInput=='a') 中的小括號 ()也能夠省略。
0. 題目:
判斷三個數中的最大數
1. 分析:
分析使用 scanf() 來接收輸入,if 分支語句進行條件判斷。
2. 程序:
#include <stdio.h> int main() { float fNum1, fNum2, fNum3; printf("請輸入 3 個數(以逗號分隔): "); scanf("%f,%f,%f", &fNum1, &fNum2, &fNum3); if(fNum1>=fNum2 && fNum1>=fNum3 ) printf("最大數是 %.2f。", fNum1); if(fNum2>=fNum1 && fNum2>=fNum3 ) printf("最大數是 %.2f。", fNum2); if(fNum3>=fNum1 && fNum3>=fNum1 ) printf("最大數是 %.2f。", fNum3); return 0; }
3. 輸入輸出:
請輸入三個數(以逗號分隔): 0,1,2
最大數是 2.00
【注意!】 一、本程序採用的屢次條件判斷並非最好的方法,但思路容易理解,程序可讀性也較好。二、若是將題目理解爲找到最大數的數值,這個程序是正確的;但若是將題目理解爲找到第幾個數是最大數,則不只輸出結果不符合要求,並且總體算法也存在Bug。
0. 題目:
一元二次方程
1. 分析:
求一元二次方程:ax2+bx+c=0 的根。
輸入三個實數a,b,c的值,且a不等於0。
2. 程序:
#include <stdio.h> #include <math.h> int main() { float fParaA,fParaB,fParaC,fRoofX1,fRoofX2,fDelta; printf("\n一元二次方程:ax2+bx+c=0:"); printf("\n輸入係數a,b,c(以逗號分隔):"); scanf("%f %f %f",&fParaA,&fParaB,&fParaC); if(fParaA!=0) { fDelta = fParaB*fParaB - 4*fParaA*fParaC; if(fDelta>0) { fRoofX1=(-fParaB+sqrt(fDelta))/(2*fParaA); fRoofX2=(-fParaB-sqrt(fDelta))/(2*fParaA); printf("x1 = %0.2f, x2 = %0.2f\n",fRoofX1,fRoofX2); } else if(fDelta==0) { fRoofX1=(-fParaB+sqrt(fDelta))/(2*fParaA); printf("x1 = x2 = %0.2f\n",fRoofX1); } else { printf("方程無實數解!\n"); } } return 0; }
3. 輸入輸出:
一元二次方程:ax2+bx+c=0:
輸入係數a,b,c(以逗號分隔):1,4,-5
x1 = 1.00, x2 = -5.00
0. 題目:
判斷閏年
1. 分析:
能被4整除的年份是閏年,但被100整除的年份不是閏年;但被400整除的年份仍是閏年。
2. 程序:
#include <stdio.h> int main() { int iYear; printf("輸入年份: "); scanf("%d",&iYear); //被4整除的年份是閏年,但被100整除的年份不是閏年,但被400整除的年份仍是閏年 if((iYear%4 == 0 && iYear%100 != 0) || iYear%400 == 0) printf("%d 是閏年", iYear); else printf("%d 不是閏年", iYear); return 0; }
3. 輸入輸出:
輸入年份: 2021
2021不是閏年
0. 題目:
判斷正數/負數/零
1. 分析:
兩數相除,若是有餘數,輸出餘數
2. 程序:
#include <stdio.h> int main() { float fNum; printf("輸入一個實數: "); scanf("%f", &fNum); if(fNum < 0.0) printf("輸入的 %.2f 是負數\n",fNum); else if(fNum > 0.0) printf("輸入的 %.2f 是正數\n",fNum); else printf("輸入的 %.2f 是零\n",fNum); return 0; }
3. 輸入輸出:
輸入一個實數: 0.0
輸入的 0.00 是零
【注意!】該程序將輸入值與數值 0.0 比較大小是能夠的。但若是比較兩個實數變量的大小,因爲存在有效數字位數問題,通常不能直接比較兩者是否相等。
0. 題目:
判斷輸入字符是否字母
1. 分析:
大寫字母和小寫字母都屬於字母
2. 程序:
#include <stdio.h> int main() { char cInput; printf("輸入一個字符: "); scanf("%c",&cInput); if( (cInput>='a' && cInput<='z') || (cInput>='A' && cInput<='Z')) printf("%c 是字母",cInput); else printf("%c 不是字母",cInput); return 0; }
3. 輸入輸出:
輸入一個字符: S
S 是字母
版權說明: 題目和例程 源於 菜鳥教程,做者從新編寫了程序、註釋和算例,並增長了難點分析。