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