鱼C论坛

 找回密码
 立即注册
查看: 1852|回复: 20

[已解决]求多门课程的平均学分绩点

[复制链接]
发表于 2021-10-31 14:42:07 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
int main()
{
        double a,aver;
        int b,i;
        int n,c;
        int count=0;
        int sum=0;
        int result=0;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
                scanf("%lf %d",&a,&b);
                while(count<=n)
                {
                       
                                if(b>=90&&b<=100)
                c==4.0;
                else if(b>=85&&b<90)
                c==3.7;
                else if(b>=82&&b<=84)
                c==3.3;
                else if(b>=78&&b<=81)
                c==3.0;
                else if(b>=75&&b<=77)
                c==2.7;
                else if(b>=71&&b<=74)
                c==2.3;
                else if(b>=66&&b<=70)
                c==2.0;
                else if(b>=62&&b<=65)
                c==1.5;
                else if(b>=60&&b<=61)
                c==1.0;
                else
                c==0;
            }
            sum+=c*a;
            result+=a;
            count++;
                }
        }
        aver=sum/result;
        printf("%lf",aver);
       
        return 0;
}
最佳答案
2021-10-31 19:00:17
#include <stdio.h>
int main()
{
        double a,aver,sum=0,result=0,c;
        int b,i,num;
        double sum_a=0,sum_c=0;
        int count=0;
        printf("请输入要录入学科的数目:");
        scanf("%d",&num);
        for(i=1;i<=num;i++)
        {
                printf("请输入第%d门课的学分和分数:",i);
            scanf("%lf %d",&a,&b);
                        if(b>=90&&b<=100)
                c=4.0;
            else if(b>=85&&b<90)
                c=3.7;
            else if(b>=82&&b<=84)
                c=3.3;
            else if(b>=78&&b<=81)
                c=3.0;
            else if(b>=75&&b<=77)
                    c=2.7;
            else if(b>=71&&b<=74)
                c=2.3;
            else if(b>=66&&b<=70)
                c=2.0;
            else if(b>=62&&b<=65)
                c=1.5;
            else if(b>=60&&b<=61)
                c=1.0;
            else
                c=0;
            printf("\n该门的绩点为%.1f\n",c);
            sum_a +=a; //计算总学分
            sum_c +=a*c;  //计算总绩点
            
            
                }
        aver=sum_c/sum_a;
        printf("%lf",aver);
      
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-31 15:02:13 | 显示全部楼层
有点看不懂你的计算公式,改了一下你看看对不对
#include <stdio.h>
int main()
{
        double a,aver,sum=0,result=0;
        int b,i;
        int n,c;
        int count=0;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
                scanf("%lf %d",&a,&b);
                while(count<=n)
                {
                       
                                if(b>=90&&b<=100)
                c=4.0;
                else if(b>=85&&b<90)
                c=3.7;
                else if(b>=82&&b<=84)
                c=3.3;
                else if(b>=78&&b<=81)
                c=3.0;
                else if(b>=75&&b<=77)
                c=2.7;
                else if(b>=71&&b<=74)
                c=2.3;
                else if(b>=66&&b<=70)
                c=2.0;
                else if(b>=62&&b<=65)
                c=1.5;
                else if(b>=60&&b<=61)
                c=1.0;
                else
                c=0;
                
                sum+=c*a;
            result+=a;
            count++;
            }
            
                }
        aver=sum/result;
        printf("%lf",aver);
       
        return 0;
}
            
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-31 15:14:24 | 显示全部楼层
大马强 发表于 2021-10-31 15:02
有点看不懂你的计算公式,改了一下你看看对不对

为什么答案是4而不是3.375
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 15:19:32 | 显示全部楼层
我都不知道你这公式是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 15:20:29 | 显示全部楼层
你是咋输入的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 15:28:56 | 显示全部楼层
牵风 发表于 2021-10-31 15:14
为什么答案是4而不是3.375

因为正是你的代码结果(表示你自己的代码有误)。话说,其实我也看不懂你的代码在写什么,很多错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-31 15:39:46 | 显示全部楼层

先输入一个正整数n,表示所修课程门数。
然后输入n行,每行包括2个数a和b,其中,a表示课程的学分,为double类型数据;b表示该课程的考试成绩,为int类型数据
平均学分绩点 =  所修课程的(课程学分*课程绩点)之和  /  所修课程的课程学分之和。
输入:2
3.0 100
5.0 80
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 15:53:41 | 显示全部楼层
这个?

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

使用道具 举报

 楼主| 发表于 2021-10-31 15:56:08 | 显示全部楼层

就是输入这个以后答案要是3.375
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 16:00:53 | 显示全部楼层
但我这4.0呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-31 16:04:55 | 显示全部楼层

所以求大佬你帮忙看看看看改改
这是题目
90-100        4.0
85-89        3.7
82-84        3.3
78-81        3.0
75-77        2.7
71-74        2.3
66-70        2.0
62-65        1.5
60-61        1.0
0-59                  0
先输入一个正整数n,表示所修课程门数。
然后输入n行,每行包括2个数a和b,其中,a表示课程的学分,为double类型数据;b表示该课程的考试成绩,为int类型数据
平均学分绩点 =  所修课程的(课程学分*课程绩点)之和  /  所修课程的课程学分之和。
输入:2
3.0 100
5.0 80
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 16:42:02 | 显示全部楼层
牵风 发表于 2021-10-31 16:04
所以求大佬你帮忙看看看看改改
这是题目
90-100        4.0

你是按照我那张图片的样式输入的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 16:43:24 | 显示全部楼层
大马强 发表于 2021-10-31 15:02
有点看不懂你的计算公式,改了一下你看看对不对

我感觉这代码没问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-31 16:49:52 | 显示全部楼层
大马强 发表于 2021-10-31 16:42
你是按照我那张图片的样式输入的吗?

对啊·
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-31 16:50:24 | 显示全部楼层

不知道哪一步错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 17:05:40 | 显示全部楼层
emmmmm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 17:06:22 | 显示全部楼层
你能发图片吗
发图三件套 官方教程 图壳 图桌
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-31 17:59:33 | 显示全部楼层
大马强 发表于 2021-10-31 17:06
你能发图片吗
发图三件套 官方教程 图壳 图桌

https://imgtu.com/i/IpFup6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-31 18:04:14 | 显示全部楼层
大马强 发表于 2021-10-31 17:06
你能发图片吗
发图三件套 官方教程 图壳 图桌

90-100        4.0
85-89        3.7
82-84        3.3
78-81        3.0
75-77        2.7
71-74        2.3
66-70        2.0
62-65        1.5
60-61        1.0
0-59                  0
先输入一个正整数n,表示所修课程门数。
然后输入n行,每行包括2个数a和b,其中,a表示课程的学分,为double类型数据;b表示该课程的考试成绩,为int类型数据
平均学分绩点 =  所修课程的(课程学分*课程绩点)之和  /  所修课程的课程学分之和。
输入:2
3.0 100
5.0 80
发不了图片麻烦大佬就写这个题目的代码吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 18:59:44 | 显示全部楼层
牵风 发表于 2021-10-31 15:56
就是输入这个以后答案要是3.375

我又看了下,没错啊
4x3 + 5*3 = 27
27 / 8 = 3.375
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 19:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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