《明解C語言》第三章學習筆記
學習目標:
《明解C語言》第3版
第三章
分支結構程式
學習內容:
3-1 if語句
3-2 switch語句
學習時間:
2020年10月24日晚七至九點
學習筆記:
3-1 if語句
#include<stdio.h>
int main(void)
{
int no;
printf("請輸入一個整數:");scanf("%d",&no);
if(no%5)
puts("輸入的整數不能被5整除");
return 0;
}
#include<stdio.h>
int main(void)
{
int no;
printf("請輸入一個整數:");scanf("%d",&no);
if(no%2)
puts("輸入的整數是奇數");
else
puts("輸入的整數是偶數");
return 0;
}
if(表示式) 語句1 else 語句2;
<判斷表示式的值> 若語句1成立則執行語句1,反之執行語句2。
練習3-1
/* 輸入兩個整數,如果後者是前者的約數則顯示B是A的約數反之顯示B不是A的約數 */
#include <stdio.h>
int main(void)
{
int a,b;
puts("請輸入兩個整數。");
printf("整數a:");scanf("%d",&a);
printf("整數b:");scanf("%d",&b);
if(a%b)
puts("b不為a的公約數");
else
puts("b為a的公約數");
return 0;
}
2.相等運算子
#include<stdi.h>
int main(void)
{
int n1,n2;
puts("請輸入兩個整數");
printf("整數1:");scanf("%d",&n1);
printf("整數2:");scanf("%d",&n2);
if(n1==n2)
puts("它們相等");
else
puts("它們不相等");
return 0;
== 運算子。會對兩側運算元進行比較,如果他們相等則結果為1,如果不相等結果為0。
!=運算子是用來判斷兩個運算元是否不相等。
這兩種運算子統稱為相等運算子。
3.關係運算子
#include<stdio.h>
int main(void)
{
int no;
printf("請輸入一個整數");scnaf("%d",&no);
if(no==)
puts("該整數為0");
else if(no>0)
puts("該整數為正數");
else
puts("該整數為負數");
return 0;
}
< 運算子 > 運算子 <=運算子 >=運算子
成立時結果均為1,不成立時結果均為0.
練習3-2
/* if語句結尾else變為else if結果會怎樣 */
#include <stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
if(a == 0)
puts("a為0");
else if(a < 0 )
puts("a為負數");
else if(a > 0 )
puts("a為正數");
return 0;
}
練習3-3
/* 輸出一個數的絕對值 */
#include <stdio.h>
int main(void)
{
int a;
printf("請輸入一個數:");scanf("%d",&a);
if(a >= 0)
printf("絕對值是%d",a);
else
printf("絕對值是%d",-a);
return 0;
}
練習3-4
/* 輸入兩個整數,如果兩個數值相等顯示A和B相等,如果A大於B則顯示A大於B,如果A小於B則顯示A小於B */
#include <stdio.h>
int main(void)
{
int a, b;
puts("請輸入兩個數。");
printf("整數A:");scanf("%d",&a);
printf("整數B:");scanf("%d",&b);
if(a == b)
printf("a和b相等");
else if(a >b )
printf("a大於b");
else
printf("a小於b");
return 0;
}
4.條件運算子
#include<stdio.h>
int main(void)
{
int n1,n2,max;
puts("請輸入兩個整數");
printf("整數1:");scanf("%d",&n1);
printf("整數2:");scanf("%d",&n2);
max=(n1>n2)?n1:n2;
printf("較大的數是%d\n",max);
return 0;
}
a?b:c 條件運算子,如果a不為0,則結果是b的值,否則結果為c的值。
練習3-6
/* 計算出輸入的三個整數中的最小值並顯示 */
#include <stdio.h>
int main(void)
{
int a, b, c,min;
puts("請輸入三個整數.");
printf("整數a:");scanf("%d",&a);
printf("整數b:");scanf("%d",&b);
printf("整數c:");scanf("%d",&c);
min = a;
if(b < min)
min = b;
if(c < min)
min = c;
printf("最小值為%d",min);
return 0;
}
練習3-7
/* 輸入的四個整數中的最大值並顯示 */
#include <stdio.h>
int main(void)
{
int a, b, c,max;
puts("請輸入三個整數.");
printf("整數a:");scanf("%d",&a);
printf("整數b:");scanf("%d",&b);
printf("整數c:");scanf("%d",&c);
max = a;
if(b > max)
max = b;
if(c > max)
max = c;
printf("最大值為%d",max);
return 0;
}
練習3-9
/* 用條件運算子改寫程式 */
#include <stdio.h>
int main(void)
{
int num;
printf("請輸入一個整數:");scanf("%d",&num);
(num == 0)?puts("該整數是0"):puts("該整數不是0");
return 0;
}
5.邏輯運算子
#include<stdio.h>
int main(void)
{
int month;
printf("請輸入月份:");scanf("%d",&month);
if(month>=3 && month<=5)
printf("%d月是春季\n",month);
else if(month>=6 && month<=8)
printf("%d月是夏季\n",month);
else if(month>=9 && month<=11)
printf("%d月是秋季\n",month);
else if(month == 1 || month == 2 || month == 12)
printf("%d月是冬季\n",month);
else
printf("%d月不存在\n",month);
return 0;
}
a && b “且”的判斷
a | | b “或”的判斷
兩者為邏輯運算子。
練習3-10
/* 輸入三個數,如果有三個相等,則輸出有三個值相等,
以此類推,輸出三種不同結果。 */
#include<stdio.h>
int main(void)
{
int a,b,c;
puts("請輸入三個整數:");
printf("整數A:");scanf("%d",&a);
printf("整數B:");scanf("%d",&b);
printf("整數C:");scanf("%d",&c);
if(a==b&&b==c)
printf("三個值都相等");
else if(a==b||b==c||a==c)
printf("有兩個值相等");
else
printf("三個值都不相等");
return 0;
}
練習3-11
/* 用邏輯或運算子計算兩個整數插值是否小於10 */
#include <stdio.h>
int main(void)
{
int a, b;
puts("請輸入兩個整數。");
printf("整數A:"); scanf("%d",&a);
printf("整數B:"); scanf("%d",&b);
if((a-b) <= 10 || (a-b) == 0)
printf("它們的差小於等於10。");
else
puts("它們的差大於等於11。");
return 0;
}
3-2 switch語句
switch語句和break語句
#include<stdio.h>
int main(void)
{
int no;
printf("請輸入一個整數");scanf("%d",&no);
switch(no%3){
case 0:puts("該數能被3整除"); break;
case 1:puts("該數除以3的餘數是1 ");break;
case 2:puts("該數除以3的餘數是2"); break;
}
return 0;
}
像case 1 這樣用來表示程式跳轉的標識稱為標籤。
case 和 1 之間必須有空格,不可不加空格寫成case1.
break語句是switch語句執行結束。
if (p==1)
c=3;
else if(p==2)
c=5;
else if(p==3)
c=7;
else if(q==4)
c=9;
switch
switch(p){
case 1:c=3;break;
case 2:c=5;break;
case 3:c=7;break;
default:if(q==4) c=9;
}
if 語句轉化為switch語句。
當任何一個case都不一致的時候,程式會跳轉到 "default:"繼續執行。
練習3-12
/* 用swith語句改寫程式 */
#include <stdio.h>
int main(void)
{
int no;
printf("請輸入一個整數:");
scanf("%d",&no);
switch(no%2){
case 0: puts("該整數是偶數。"); break;
default: puts("該數是奇數。");
}
return 0;
}
練習3-13
/* 使用switch語句修改程式 */
#include <stdio.h>
int main(void)
{
int month;
printf("請輸入月份:");scanf("%d",&month);
switch (month) {
case 3:
case 4:
case 5:
printf("%d月是春季。\n",month); break;
case 6:
case 7:
case 8:
printf("%d月是夏季。\n",month); break;
case 9:
case 10:
case 11:
printf("%d月是秋季。\n",month); break;
case 12:
case 1:
case 2:
printf("%d月是冬季。\n",month); break;
default :
printf("%d月不存在!!\a\n",month);
return 0;
}
}
相關文章
- C 語言學習筆記筆記
- C語言學習筆記C語言筆記
- C語言學習筆記--C運算子C語言筆記
- c語言學習筆記===函式C語言筆記函式
- C語言學習筆記——位運算C語言筆記
- c語言程式基礎學習筆記C語言筆記
- C語言學習筆記之變數C語言筆記變數
- 初識C語言(01)—學習筆記C語言筆記
- 嵌入式C語言學習筆記2C語言筆記
- C語言例項解析精粹學習筆記——19C語言筆記
- C語言學習筆記之指標的運算C語言筆記指標
- linux下c語言學習筆記——操作mysqlLinuxC語言筆記MySql
- 組合語言學習筆記組合語言筆記
- C語言學習筆記:結構體與指標C語言筆記結構體指標
- c語言筆記C語言筆記
- C語言學習方法,怎麼學習C語言?C語言
- C++學習筆記-C++對C語言的函式擴充C++筆記C語言函式
- 熱更新語言--lua學習筆記筆記
- 《JavaScript語言精粹》學習筆記二JavaScript筆記
- 《JavaScript語言精粹》學習筆記一JavaScript筆記
- R語言學習筆記之一R語言筆記
- Go 基礎語言學習筆記Go筆記
- 考研:C語言複習筆記 [Hex Note]C語言筆記
- C語言學習筆記01--C開源庫uthash的使用C語言筆記
- HQYJ嵌入式學習筆記——C語言複習day1筆記C語言
- HQYJ嵌入式學習筆記——C語言複習day2筆記C語言
- 資訊學奧賽--C語言筆記(一)C語言筆記
- go 學習筆記之初識 go 語言Go筆記
- Go語言學習筆記(七)之方法Go筆記
- Solidity語言學習筆記————4、常量Solid筆記
- Solidity語言學習筆記————36、 庫Solid筆記
- 12天學好C語言——記錄我的C語言學習之路(Day 4)C語言
- 《明解c語言》已看完,練習程式碼此奉上C語言
- Per語言入門第4版學習筆記-第三章列表和陣列R語言筆記陣列
- Solidity語言學習筆記————1、初識Solidity語言Solid筆記
- GO語言學習筆記之mac環境go語言配置Go筆記Mac
- C語言深度剖析-筆記C語言筆記
- C語言指標筆記C語言指標筆記