真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言中成績等級函數(shù) 用c語言編寫成績等級劃分的程序

c語言編程 輸入學生的成績等級abcde,輸出相應的成績范圍

#include?"stdio.h"

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、成都做網(wǎng)站與策劃設計,蕭山網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:蕭山等地區(qū)。蕭山做網(wǎng)站價格咨詢:028-86922220

int?main(void){

char?a[][7]={"90~100","80~89","70~79","60~69","0~59"},ch;

printf("Please?enter?the?class?code(Error?is?quit)...\n");

while(scanf("?%c",ch)==1)

if(ch|=0x20,ch='a'??ch='e')

printf("%s\n",a[ch-'a']);

else{

printf("Error,?exit!\n");

break;

}

return?0;

}

C語言編程題編程求任意給定成績的等級。編程求任意給定成績的等級。當成績大于等于90分時,等級為“優(yōu)”

#includestdio.h

int?main()?

{

float?grade;

scanf("%f",?grade);

if?(grade?=?90)?printf("優(yōu)");

else?if?(grade?=?80)?printf("良好");

else?if?(grade?=?70)?printf("中");

else?if?(grade?=?60)?printf("及格");

else?printf("不及格");

printf("\n");

return?0;

}

c語言作業(yè) 老師要求用switch 來判定學生分數(shù)等級

首先指出你的疑問:因為你的switch語句在最后一個if語句中,也就是說,當分數(shù)為s=0s=49時才執(zhí)行switch語句,此時x==5。于是就執(zhí)行case 5了。

修改:把switch語句與if語句并列。

更好的:你為什么用了if語句還要用switch語句呢,直接在if語句中輸出不就行了嗎?

還有輸入quit退出的問題:建議使用scanf在接收字符串n。接收字符串n后判斷是否等于”quit“,如果等于則break,退出while循環(huán),否則往下執(zhí)行。判斷時可以用strcmp函數(shù)進行判斷,也可以逐個的對字符串n進行判斷。

為什么要用scanf而不用gets:當進行下一次的輸入時,上次輸入完分數(shù)后的回車會被這次的gets給吃掉;于是就會發(fā)現(xiàn),當進行這次的輸入時,”please enter your name“, ”please enter your score.“會同時出現(xiàn)。

下面是我?guī)湍阈薷牡某绦?,基本上沒動。

#includestdio.h

#includeconio.h

int main()

{

int s,x;

char n[5];

while(1)

{

printf("\n please enter your name:");

scanf("%s", n);

if(n[0]=='q' n[1]=='u' n[2]=='i' n[3]=='t')

{

break;

}

else printf("\n please enter your score.");

scanf("%d",s);

if(s=80s=100)

{

x=1;

}

else if(s=70s=79)

{

x=2;

}

else if(s=60s=69)

{

x=3;

}

else if(s=50s=59)

{

x=4;

}

else if(s=0s=49)

{

x=5;

}

switch(x)

{

case 1:

printf("HD");

break;

case 2:

printf("D");

break;

case 3:

printf("C");

break;

case 4:

printf("C");

case 5:

printf("N");

break;

default:

printf("\n please enter a number between 0 and 100");

}

}

return 0;

}

這是我自己隨意修改的:

#includestdio.h

#includeconio.h

#include string.h

int main()

{

int s,x;

char n[5];

while(1)

{

printf("\n please enter your name:");

scanf("%s", n);

if(strcmp(n, "quit")==0)

{

break;

}

else printf("\n please enter your score.");

scanf("%d",s);

if(s=80s=100)

{

printf("HD");

}

else if(s=70s=79)

{

printf("D");

}

else if(s=60s=69)

{

printf("C");

}

else if(s=50s=59)

{

printf("C");

}

else if(s=0s=49)

{

printf("N");

}

else

{

printf("\n please enter a number between 0 and 100");

}

}

return 0;

}

c語言判斷成績等級循環(huán)結構

第一種在scanf后面應該加一個getchar

你為什么在第二個后面知道加第一個后面不知道加...

因為你在做scanf輸入時實際上輸入的是 88(成績) 回車 來結束輸入的

這個時候你把88賦值給了a但是 回車還在緩沖區(qū)里 如果你不用getchar來吸收回車那么

你第二次scanf時 由于緩沖區(qū)里面還有一個回車 所以不等你輸入他就將回車賦值給了c

因此無法進行后續(xù)循環(huán) 你輸入的Y/N反而是被getchar讀取了

第二種問題和上面類似 在每一個scanf后面加一個getchar來吸收回車

或者使用fflush(stdin); rewind(stdin);來刷新緩沖區(qū)

然后你最后判斷處出錯了

if(b=='Y')

if(b=='N')break;

這里滿足break的條件是先讓b=Y 如果 b = Y判斷成功 在判斷b=N 當b=Y滿足進一步要滿足b=N這怎么可能能夠break...

應該if(b=='Y') continue;

else if(b=='N')break;

另外我覺得這個判斷有點繁瑣了 你只需要判斷一種就行了

只保留if(b=='N')break;就行了 當輸入N時結束 其他任意輸入繼續(xù) 就夠了


網(wǎng)站欄目:c語言中成績等級函數(shù) 用c語言編寫成績等級劃分的程序
文章轉載:http://weahome.cn/article/hpghpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部