用switch语句怎样判断成绩的等级

用switch语句怎样判断成绩的等级,第1张

#include <stdioh>

#include <stdlibh>

int main ( ){

int grade,rate;

printf("所得成绩:\n");

scanf("%d",&grade);

rate=(grade>=60)+(grade>=70)+(grade>=80)+(grade>=90);

switch(rate){

case 0:

printf("输出等级:E");

break;

case 1:

printf("输出等级:D");

break;

case 2:

printf("输出等级:C");

break;

case 3:

printf("输出等级:B");

break;

default:

printf("输出等级:A");

}

return 0;

}

扩展资料:

代码知识总结:

1if语句的嵌套要注意大括号的一一对应,实现if--else的正确匹配;

2switchcasebreak语句不要误丢break,case后面跟的是变量,且case后面要加空格;

3运算符要注意优先级;

4缩进格式并不能暗示else的匹配;

5在if和else后面总要用到{},即使只有一条语句。

参考资料:

百度百科-switch

public class Degree {

    public String getDegree(int score) {

        if (score < 0 || score > 100) {

            return "分数格式非法";

        }

        int degree = score / 10;

        switch (degree) {

        case 10:

        case 9:

            return "优";

        case 8:

            return "良";

        case 7:

            return "中";

        case 6:

            return "及格";

        default:

            return "不及格";

        }

    }

    public static void main(String[] args) {

        Degree d = new Degree();

        String result = dgetDegree(80);

        Systemoutprintln(result);

    }

}

用下面的语句你看可以不?

dim

n

as

int

n=text1text

if

n<79

or

n>70

then

msgbox"

三等奖"

else

if

n<89

or

n>80

then

msgbox"二等奖"

elseif

n<99

or

n>90

then

msgbox"一等奖"

else

msgbox"输入有误!"

end

if

给定一个百分制的分数 输出相应的等级

分以上 A级

~ B级

~ C级

~ D级

分以下 E级

import java util Scanner;

class Mark{

public static void main(String[] args){

System out println(&# ;请输入一个分数&# ;);

//定义输入的分数为 mark 且分数会有小数

double mark;

Scanner scanner = new Scanner(System in);

mark = scanner nextDouble();

//判断是否有输入错误

if(mark< ||mark> ){

System out println(&# ;输入有误! &# ;);

System exit( );

}

/判断分数的等级

分以上者A级 ~ 分者 B级 ~ 分者 C级 ~ 者 D级 分以下 E级 /

if (mark>= ) System out println(&# ;this mark is grade \&# ;A\&# ; &# ;);

else if (mark>= ) System out println(&# ;this mark is grade \&# ;B\&# ; &# ;);

else if (mark>= ) System out println(&# ;this mark is grade \&# ;C\&# ; &# ;);

else if (mark>= ) System out println(&# ;this mark is grade \&# ;D\&# ; &# ;);

else System out println(&# ;this mark is grade \&# ;E\&# ; &# ;);

}

lishixinzhi/Article/program/sjjg/201404/30579

VB中添加一个按钮点击就可以了

Private Sub Command1_Click()

a = InputBox("请输入分数:")

If IsNumeric(a) And a <= 100 And a >= 0 Then

Select Case a

Case 0 To 59

dd = "E"

Case 60 To 69

dd = "D"

Case 70 To 79

dd = "C"

Case 80 To 89

dd = "B"

Case 90 To 100

dd = "A"

Case Else

dd = "成绩错误!"

End Select

MsgBox dd

Else

MsgBox "你输入的成绩非法"

End If

End Sub

给出的问题不严密:

只有大于和小于,没有等于的情况,比如说平均分在50到70之间,然后第2个和第3个数之和正好等到于140分时,一楼上程序便没有输出,我想是题目出得不太严密吧,不可能出题者是故意把这些情况漏掉吧!所以呢,经过笔者的修改呢,我觉得以下程序能包括出题者的全部意思:

如果题目非我所想,那你也可以自己根据情况改一下那几个>或者=号,你自己看看吧!

#include

<stdioh>

main()

{

float

a[3],i,average;

for(i=0;i<3;i++)

scanf("%f",&a[i]);

average=(a[0]+a[1]+a[2])/30;

if(average>=90)

printf("Grade=A");

if(average>=70&&average<90&&a[2]>=90)

printf("Grade=A");

if(average>=70&&average<90&&a[2]<90)

printf("Grade=B");

if(average>=50&&average<70&&a[1]+a[2]>=140)/这个地方与以一楼上程序不同,题目要求的是第2和3个数之和要大于140,一楼上的是第1和2个之和大于140,与题意不合(因为数组是从0开始计数的)/

printf("Grade=C");

if(average>=50&&average<70&&a[1]+a[2]<140)

printf("Grade=D");

if(average<50)

printf("Grade=F");

}

首先指出你的疑问:因为你的switch语句在最后一个if语句中,也就是说,当分数为s>=0&&s<=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“会同时出现。

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

#include

#include

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>=80&&s<=100)

{

x=1;

}

else

if(s>=70&&s<=79)

{

x=2;

}

else

if(s>=60&&s<=69)

{

x=3;

}

else

if(s>=50&&s<=59)

{

x=4;

}

else

if(s>=0&&s<=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;

}

这是我自己随意修改的:

#include

#include

#include

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>=80&&s<=100)

{

printf("HD");

}

else

if(s>=70&&s<=79)

{

printf("D");

}

else

if(s>=60&&s<=69)

{

printf("C");

}

else

if(s>=50&&s<=59)

{

printf("C");

}

else

if(s>=0&&s<=49)

{

printf("N");

}

else

{

printf("\n

please

enter

a

number

between

0

and

100");

}

}

return

0;

}

以上就是关于用switch语句怎样判断成绩的等级全部的内容,包括:用switch语句怎样判断成绩的等级、采用switch语句设计一个程序,对给定的学生成绩score评判其等级这个程序怎么编啊、VB程序从键盘输入分数判断学生等级等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10109836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存