c语言switch同时比较多个变量,C语言学习if和switch分支选择结构
如何判斷一個整數是否為正數
計算機同我們一樣,也是可以判斷大小。在此之前,我們需要先說明在計算機中用來判斷兩個數關系的符號,即關系運算符。
關系運算符號
c語言中的關系運算符與數學上學習的有什么不同?
image.png
關系表達式的值是真和假,在C程序用整數1和0表示。
注意:>=, <=, ==, !=這種符號之間不能存在空格。
一、分支選擇結構之簡單的if條件語句
if(判斷條件)
{
語句1;
語句2;
語句······
}
其語義是:如果表達式的值為真,則執行其后的語句,否則不執行該語句。
假如你現在想讓計算機判斷一個整數是否為正數,如果是則顯示YES,不是則顯示NO,應該怎么辦呢?。
//判斷一個整數是否為正數
# include
# include
int main()
{
//定義一個變量a
int a;
scanf("%d",&a);
//如果a大于0,則輸出YES
if(a>0)
{
printf("YES");
}
//如果a小于等于0,則輸出NO
if(a<=0)
{
printf("NO");
}
return 0;
}
注意:if()后面沒有分號,直接寫{}
判斷一個數是否為偶數
什么是偶數呢?偶數就是能夠被2整除的數,也就是說一個數除以2的余數為0,那么這個數就是偶數。
那么我們現在只需要判斷這個數除以2的余數是不是0,即:
如果a除以2的余數與0相等,則輸出yes;
如果a除以2的余數與0 不相等,則輸出no。
c語言中求余數的運算符號是“%”,所以判斷一個數是否為偶數的c語言代碼就是:
# include
# include
int main()
{
int a;
scanf("%d",&a);
if(a%2==0)
{
printf("yes");
}
if(a%2!=0)
{
printf("no");
}
return 0;
}
二、分支選擇結構之簡單的if-else結構
簡單的if-else語句的基本結構:
if(判斷條件)
{
語句;
語句;
······
}
else
{
語句;
語句;
······
}
語義是: 如果表達式的值為真,則執行if其后的語句,否則執行else 里的語句。
注意:
if()后面沒有分號,直接寫{},else后面也沒有分號,直接寫{}。
從鍵盤讀入一個整數,判斷它是否為偶數的另一種簡便快捷的代碼寫法如下:
# include
# include
int main()
{
int a;
scanf("%d",&a);
if(a%2==0)
{
printf("yes");
}
else
{
printf("no");
}
return 0;
}
練習:
比較兩個整數誰更大,同時打印輸出較大的整數。
//比較兩個整數大小,并打印輸出較大的整數
# include
# include
int main()
{
int a, b, c;
scanf("%d%d",&a,&b);
//如果a大于b,將a賦值給c,并打印c
if(a>b)
{
c=a;
printf("%d",c);
}
//反之,則將b賦值給c,并打印c
else
{
c=b;
printf("%d",c);
}
return 0;
}
我們學習了如何從兩個數中找出較大的一個數,那么3個數該怎么辦呢?
1.首先,用3個變量a,b,c分別存放從鍵盤讀入的3個數。
2.然后,先比較變量a和b的值,將較大的值賦給變量d。
3.再比較變量d和c的值,如果變量c的值大于變量d的值,則把變量c的值賦給變量d。
4.最后輸出變量d的值。
c語言代碼為:
//比較3個數的大小,并將最大值打印輸出
#include
#include
int main()
{
//定義a,b,c,d 4個整型變量
int a,b,c,d;
scanf("%d %d %d",&a,&b,&c);
//如果a與b比較,將較大值賦值給d
if(a>b)
{
d=a;
}
else
{
d=b;
}
//c與d比較,如果c大于d,則將c賦值給d
if(c>d)
{
d=c;
}
printf("%d",d);
return 0;
}
當然還有另外一種寫法,就是比較變量a和b,以及變量a和c的關系,思路如下:
如果 a>=b 并且 a>=c,則輸出a;
如果 b>a 并且 b>=c,則輸出b;
如果 c>a 并且 c>b,則輸出c。
其中“并且”在c語言中用“&&”來表示,這時我們需要來了解一下c語言中的邏輯運算符。
c語言中邏輯運算符:
image.png
邏輯運算的值也是有兩種分別為真和假,C語言中用整型的1和0來表示。其求值規則如下:
與運算&&
參與運算的兩個變量都為真時,結果才為真,否則為假。例如:5>=5 && 7>5 ,運算結果為真;
或運算||
參與運算的兩個變量只要有一個為真,結果就為真。 兩個量都為假時,結果為假。例如:5>=5||5>8,運算結果為真;
非運算!
參與運算的變量為真時,結果為假;參與運算量為假時,結果為真。例如:!(5>8),運算結果為真。
另一種寫法的c語言代碼:
//判斷3個數的大小
#include
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
//如果 a>=b 并且 a>=c,則輸出a;
if(a>=b && a>=c)
{
printf("%d",a);
}
//如果 b>a 并且 b>=c,則輸出b;
if(b>a && b>=c)
{
printf("%d",b);
}
//如果 c>a 并且 c>b,則輸出c。
if(c>a && c>b)
{
printf("%d",c);
}
return 0;
}
挑戰練習
比較3個數的大小,并從大到小排序輸出。
第一種方法:
如果a>=b 并且 b>=c,打印a b c;
如果a>=c 并且 c>b,打印a c b;
如果b>a 并且 a>=c,打印b a c;
如果b>=c 并且 c>a,打印b c a;
如果c>a 并且 a>=b,打印c a b;
如果c>b 并且 b>a,打印c b a;
代碼如下:
//比較排序3個數字大小,從大到小輸出
#include
int main()
{
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
//如果a>=b 并且 b>=c,打印a b c;
if(a>=b && b>=c)
{
printf("%d %d %d",a,b,c);
}
//如果a>=c 并且 c>b,打印a c b;
if(a>=c && c>b)
{
printf("%d %d %d",a,c,b);
}
//如果b>a 并且 a>=c,打印b a c;
if(b>a && a>=c)
{
printf("%d %d %d",b,a,c);
}
//如果b>=c 并且 c>a,打印b c a;
if(b>=c && c>a)
{
printf("%d %d %d",b,c,a);
}
//如果c>a 并且 a>=b,打印c a b;
if(c>a && a>=b)
{
printf("%d %d %d",c,a,b);
}
//如果c>b 并且 b>a,打印c b a;
if(c>b && b>a)
{
printf("%d %d %d",c,b,a);
}
return 0;
}
第二種方法(稱之為“換位法”):
1.先將a與b比較,如果a
2.將a與c比較,如果a
3.將b與c比較,如果b
c語言代碼為:
//“換位法”從大到小,排序三個數大小
#include
int main()
{
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
//1.先將a與b比較,如果a
if(a
{
t=a;
a=b;
b=t;
}
//2.將a與c比較,如果a
if(a
{
t=a;
a=c;
c=t;
}
//3.將b與c比較,如果b
if(b
{
t=b;
b=c;
c=t;
}
printf("%d %d %d",a,b,c);
return 0;
}
分支選擇結構之嵌套if-else語句
C語言中嵌套if-else語句。嵌套if-else語句的意思,就是在if-else語句中,再寫if-else語句。其一般形式為:
if(判斷條件)
{
if(判斷條件)
{
執行代碼塊;
}
else
{
執行代碼塊;
}
else
{
執行代碼塊;
}
}
先回顧一下之前寫的比較3個數大小的代碼,然后思考如何用“嵌套”的方式來解決這個問題。
在之前我們使用“&&”這個邏輯關系運算符號來解決兩個條件同時“滿足”的需求
if(a>=b && a>=c)
print("%d",a);
上述代碼,可以用“嵌套”的方式寫成:
//如果a大于等于b,再進一步討論a與c的關系
if(a>=b)
{
//如果a大于等于c成立,則輸出a,不成立則輸出c
if(a>=c)
{
printf("%d",a);
}
else
{
printf("%d",c);
}
}
那如果a大于等于b不成立呢,我們的完整代碼該如何編寫呢?
//if-else嵌套,判斷三個數大小
#include
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>=b)
{
if(a>=c)
{
printf("%d",a);
}
else
{
printf("%d",c);
}
}
else
{
if(b>=c)
{
printf("%d",b);
}
else
{
printf("%d",c);
}
}
return 0;
}
如何把代碼修改的更簡潔呢?
當if或else語句后只需執行一條代碼時,可省略{ }。
if-else if 結構
95 “A”;86~100 “A”;70~85 “B”;60~69“C”;小于60“D”
要求輸入A B C D ,輸出成績范圍。
定義char grade 用if else實現
# include
int main()
{
char grade;
printf("請輸入等級:");
scanf("%c",&grade);
if(grade=='A')
{
printf("分數在86~100分");
}
else if(grade=='B')
{
printf("分數在70~85分");
}
else if (grade=='C')
{
printf("分數在60~69分");
}
else if(grade=='D')
{
printf("分數在60分以下");
}
else if(grade != 'A' ||grade != 'B' || grade !='C' ||grade !='D')
{
printf("輸入錯誤!");
}
return 0;
}
switch 分支選擇
#include
int main()
{
char grade;
scanf("%c",&grade);
switch(grade)
{
case 'A':printf("分數在86~100分"); break;
case 'B':printf("分數在70~85分"); break;
case 'C':printf("分數在60~69分"); break;
case 'D':printf("分數在60以下"); break;
default:printf("輸入錯誤!");
}
}
從鍵盤輸入一個月份,輸出對應季節
12~2 冬季
3~5 春季
6~8 夏季
9~11 秋季
//從鍵盤輸入一個月份,輸出對應季節
/*
12~2 冬季
3~5 春季
6~8 夏季
9~11 秋季
*/
#include
int main()
{
int number ;
printf("請輸入一個1~12的月份,以回車結束\n");
scanf("%d",&number);
switch (number) {
case 12:
case 1:
case 2:
printf("冬季");
break;
case 3:
case 4:
case 5:
printf("春季");
break;
case 6:
case 7:
case 8:
printf("夏季");
break;
case 9:
case 10:
case 11:
printf("秋季");
break;
default:
printf("輸入錯誤!\n");
break;
}
return 0;
}
輸入一個不多于5位的正整數
1)輸出位數
2)分別輸出每位數字,中間為“,”分隔開
3)反向輸出5位數
#include
int main()
{
int num, ten_th,thous,hund,ten,indiv;
printf("請輸入一個不多于5位的正整數:");
scanf("%d",&num);
if(num>9999 && num <=99999)
{
printf("這個數是一個五位數:");
ten_th=num/10000;
thous=(num-ten_th*10000)/1000;
hund=(num-ten_th*10000-thous*1000)/100;
ten=(num-ten_th*10000-thous*1000-hund*100)/10;
indiv=num%10;
printf("%d,%d,%d,%d,%d\n",ten_th,thous,hund,ten,indiv) ;
printf("反向輸出:%d%d%d%d%d",indiv,ten,hund,thous,ten_th) ;
}
else if(num<=9999&&num>999)
{
printf("這個數是一個四位數:");
thous=num/1000;
hund=(num-thous*1000)/100;
ten=(num-thous*1000-hund*100)/10;
indiv=num%10;
printf("%d,%d,%d,%d\n",thous,hund,ten,indiv) ;
printf("反向輸出:%d%d%d%d",indiv,ten,hund,thous) ;
}
else if(num<=999&&num>99)
{
printf("這個數是一個三位數:");
hund=num/100;
ten=(num-hund*100)/10;
indiv=num%10;
printf("%d,%d,%d\n",hund,ten,indiv) ;
printf("反向輸出:%d%d%d",indiv,ten,hund) ;
}
else if(num<=99&&num>9)
{
printf("這個數是一個兩位數:");
ten=num/10;
indiv=num%10;
printf("%d,%d\n",ten,indiv) ;
printf("反向輸出:%d%d",indiv,ten) ;
}
else if(num>=0 && num<=9)
{
printf("這個數是一個一位數:");
printf("%d",num);
printf("反向輸出:%d",num);
}
else if (num>99999 || num < 0)
{
printf("輸入錯誤!");
}
return 0;
}
總結
以上是生活随笔為你收集整理的c语言switch同时比较多个变量,C语言学习if和switch分支选择结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重启计算机后桌面顺序是反的,Win10系
- 下一篇: 打了断点为直接运行完_BBC主持人多次打