重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言中成绩等级函数 用c语言编写成绩等级划分的程序

c语言编程 输入学生的成绩等级abcde,输出相应的成绩范围

#include "stdio.h"

创新互联是一家专注于网站制作、成都做网站与策划设计,萧山网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:萧山等地区。萧山做网站价格咨询: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分时,等级为“优”

#includestdio.h

int main() 

{

float grade;

scanf("%f", grade);

if (grade = 90) printf("优");

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

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

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

else printf("不及格");

printf("\n");

return 0;

}

c语言作业 老师要求用switch 来判定学生分数等级

首先指出你的疑问:因为你的switch语句在最后一个if语句中,也就是说,当分数为s=0s=49时才执行switch语句,此时x==5。于是就执行case 5了。

修改:把switch语句与if语句并列。

更好的:你为什么用了if语句还要用switch语句呢,直接在if语句中输出不就行了吗?

还有输入quit退出的问题:建议使用scanf在接收字符串n。接收字符串n后判断是否等于”quit“,如果等于则break,退出while循环,否则往下执行。判断时可以用strcmp函数进行判断,也可以逐个的对字符串n进行判断。

为什么要用scanf而不用gets:当进行下一次的输入时,上次输入完分数后的回车会被这次的gets给吃掉;于是就会发现,当进行这次的输入时,”please enter your name“, ”please enter your score.“会同时出现。

下面是我帮你修改的程序,基本上没动。

#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语言判断成绩等级循环结构

第一种在scanf后面应该加一个getchar

你为什么在第二个后面知道加第一个后面不知道加...

因为你在做scanf输入时实际上输入的是 88(成绩) 回车 来结束输入的

这个时候你把88赋值给了a但是 回车还在缓冲区里 如果你不用getchar来吸收回车那么

你第二次scanf时 由于缓冲区里面还有一个回车 所以不等你输入他就将回车赋值给了c

因此无法进行后续循环 你输入的Y/N反而是被getchar读取了

第二种问题和上面类似 在每一个scanf后面加一个getchar来吸收回车

或者使用fflush(stdin); rewind(stdin);来刷新缓冲区

然后你最后判断处出错了

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时结束 其他任意输入继续 就够了


网站名称:c语言中成绩等级函数 用c语言编写成绩等级划分的程序
网址分享:http://cqcxhl.cn/article/hpghpi.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP