鱼C论坛

 找回密码
 立即注册
查看: 1234|回复: 9

[已解决]新人新人

[复制链接]
发表于 2020-10-30 20:36:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
C语言
2017高考,英语将分为6个等级,A,B,C,D,E,F。现教育部规定英语总分为100分,其中成绩(成绩为整数)在区间[90,100]为A等级,[80,90)为B等级,[70,80)为C等级,[60,70)为D等级,[40,60)为E等级,[0,40)为F等级。现要你编译一个程序来自动判别高考英语成绩等级。
标准输入,输入的第一行为一个正整数N,表示需要你计算等级的学生成绩数,接下来的N行,每行一个成绩k(0<=k<=100)
#include <stdio.h>
int main()
{
    double a;
   
    scanf("%lf",&a);
   
    if(a>=90&&a<=100)
    {
            printf("A");
        }
    else if(a>=80&&a<90)
    {
            printf("B");
        }
        else if(a>=70&&a<80)
    {
            printf("C");
        }
        else if(a>=60&&a<70)
    {
            printf("D");
        }
        else if(a>=40&&a<60)
    {
            printf("E");
        }
        else if(a>=0&&a<40)
       
                printf("F");
       
    return 0;
}



输入n个不会写><
最佳答案
2020-10-30 22:53:45
本帖最后由 风过无痕1989 于 2020-10-30 23:06 编辑

N个成绩可以用循环,后面的可以使用switch() 函数
#include <stdio.h>
int main()
{
    double a[100];      //多个学生的成绩,使用数组 
    int i;
    for(i = 0;i<100;i++) 
        scanf("%lf",&a[i]);
    
    for(i = 0;i < 100;i++)
    { 
        if(a[i] >= 90 && a[i] <= 100)
        {
            printf("A ");
        }
        else if(a[i] >= 80 && a[i] <90)
        {
            printf("B ");
        }
        else if(a[i] >= 70 && a[i] < 80)
        {
            printf("C ");
        }
        else if(a[i] >= 60 && a[i] < 70)
        {
            printf("D ");
        }
        else if(a[i] >= 40 && a[i] < 60)
        {
            printf("E ");
        }
        else if(a[i] >= 0 && a[i] < 40)
       
            printf("F ");
    } 
       
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-30 21:39:21 | 显示全部楼层
用循环啊
for,while,do-while都行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-30 22:53:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风过无痕1989 于 2020-10-30 23:06 编辑

N个成绩可以用循环,后面的可以使用switch() 函数
#include <stdio.h>
int main()
{
    double a[100];      //多个学生的成绩,使用数组 
    int i;
    for(i = 0;i<100;i++) 
        scanf("%lf",&a[i]);
    
    for(i = 0;i < 100;i++)
    { 
        if(a[i] >= 90 && a[i] <= 100)
        {
            printf("A ");
        }
        else if(a[i] >= 80 && a[i] <90)
        {
            printf("B ");
        }
        else if(a[i] >= 70 && a[i] < 80)
        {
            printf("C ");
        }
        else if(a[i] >= 60 && a[i] < 70)
        {
            printf("D ");
        }
        else if(a[i] >= 40 && a[i] < 60)
        {
            printf("E ");
        }
        else if(a[i] >= 0 && a[i] < 40)
       
            printf("F ");
    } 
       
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-30 23:38:52 | 显示全部楼层
风过无痕1989 发表于 2020-10-30 22:53
N个成绩可以用循环,后面的可以使用switch() 函数

没有N的输入呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-31 00:15:03 | 显示全部楼层
本帖最后由 风过无痕1989 于 2020-10-31 00:24 编辑


k(0<=k<=100),这个不是吗?让你输入 K个人的成绩呢,这个K没有确定之前,可不就是N嘛

将第9句改为:for(i = 0;i < k;i++) 能理解了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-31 08:31:01 | 显示全部楼层

我好像没有改明白

#include <stdio.h>
int main()
{
    double a[100];      
    int i,n;
    scanf("%d\n",&n);
    for(i = 0;i<=n;i++)
        scanf("%lf",&a[i]);
   
    for(i = 0;i <=n;i++)
    {
        if(a[i] >= 90 && a[i] <= 100)
        {
            printf("A ");
        }
        else if(a[i] >= 80 && a[i] <90)
        {
            printf("B ");
        }
        else if(a[i] >= 70 && a[i] < 80)
        {
            printf("C ");
        }
        else if(a[i] >= 60 && a[i] < 70)
        {
            printf("D ");
        }
        else if(a[i] >= 40 && a[i] < 60)
        {
            printf("E ");
        }
        else if(a[i] >= 0 && a[i] < 40)
      
            printf("F ");
    }
      
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-31 09:12:06 | 显示全部楼层
西柚西柚 发表于 2020-10-31 08:31
我好像没有改明白

#include

你的程序第6行有问题:scanf("%d\n",&n); 你的目的是想图稿有多少个人的成绩,但是,scanf()函数中,除了控制符之外,最好别添加任何的其他字符,你却加了一个回车,这样的语句,在程序中容易出错。你若一定要输入完 n 以后换行,可以写成:

scanf("%d",&n);
printf("\n");
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-31 12:31:31 | 显示全部楼层
风过无痕1989 发表于 2020-10-31 09:12
你的程序第6行有问题:scanf("%d\n",&n); 你的目的是想图稿有多少个人的成绩,但是,scanf()函数中,除了 ...

帮孩子再看看吧
输出结果是错的
#include <stdio.h>
int main()
{
    double a[100];      
    int i,n;
    scanf("%d",&n);
    for(i = 0;i<n;i++)
        scanf("%lf",&a);
   
    for(i = 0;i <n;i++)
    {
        if('a'>= 90 && 'a' <= 100)
        {
            printf("A ");
        }
        else if('a'>= 80 && 'a'<90)
        {
            printf("B ");
        }
        else if('a' >= 70 && 'a' < 80)
        {
            printf("C ");
        }
        else if('a'>= 60 && 'a' < 70)
        {
            printf("D ");
        }
        else if('a' >= 40 && 'a' < 60)
        {
            printf("E ");
        }
        else if('a' >= 0 && 'a' < 40)
      
            printf("F ");
    }
      
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-31 12:46:11 | 显示全部楼层
西柚西柚 发表于 2020-10-31 12:31
帮孩子再看看吧
输出结果是错的
#include


你这样的程序,运行当然是错的啦!

你定义的是一个数组,可你在下面的循环判断中,却将数组名作为变量在使用,换句话说:不用使用 a,要使用 a[ i ]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-31 12:51:57 | 显示全部楼层
我明白了,你使用数组,它却没有如愿显示出来,却变成了斜体。那是因为你没有使用代码功能的原因


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 20:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表