鱼C论坛

 找回密码
 立即注册
查看: 2161|回复: 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
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         double a,aver,sum=0,result=0,c;
  5.         int b,i,num;
  6.         double sum_a=0,sum_c=0;
  7.         int count=0;
  8.         printf("请输入要录入学科的数目:");
  9.         scanf("%d",&num);
  10.         for(i=1;i<=num;i++)
  11.         {
  12.                 printf("请输入第%d门课的学分和分数:",i);
  13.             scanf("%lf %d",&a,&b);
  14.                         if(b>=90&&b<=100)
  15.                 c=4.0;
  16.             else if(b>=85&&b<90)
  17.                 c=3.7;
  18.             else if(b>=82&&b<=84)
  19.                 c=3.3;
  20.             else if(b>=78&&b<=81)
  21.                 c=3.0;
  22.             else if(b>=75&&b<=77)
  23.                     c=2.7;
  24.             else if(b>=71&&b<=74)
  25.                 c=2.3;
  26.             else if(b>=66&&b<=70)
  27.                 c=2.0;
  28.             else if(b>=62&&b<=65)
  29.                 c=1.5;
  30.             else if(b>=60&&b<=61)
  31.                 c=1.0;
  32.             else
  33.                 c=0;
  34.             printf("\n该门的绩点为%.1f\n",c);
  35.             sum_a +=a; //计算总学分
  36.             sum_c +=a*c;  //计算总绩点
  37.             
  38.             
  39.                 }
  40.         aver=sum_c/sum_a;
  41.         printf("%lf",aver);
  42.       
  43.         return 0;
  44. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-31 15:02:13 | 显示全部楼层
有点看不懂你的计算公式,改了一下你看看对不对
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         double a,aver,sum=0,result=0;
  5.         int b,i;
  6.         int n,c;
  7.         int count=0;
  8.         scanf("%d",&n);
  9.         for(i=1;i<=n;i++)
  10.         {
  11.                 scanf("%lf %d",&a,&b);
  12.                 while(count<=n)
  13.                 {
  14.                        
  15.                                 if(b>=90&&b<=100)
  16.                 c=4.0;
  17.                 else if(b>=85&&b<90)
  18.                 c=3.7;
  19.                 else if(b>=82&&b<=84)
  20.                 c=3.3;
  21.                 else if(b>=78&&b<=81)
  22.                 c=3.0;
  23.                 else if(b>=75&&b<=77)
  24.                 c=2.7;
  25.                 else if(b>=71&&b<=74)
  26.                 c=2.3;
  27.                 else if(b>=66&&b<=70)
  28.                 c=2.0;
  29.                 else if(b>=62&&b<=65)
  30.                 c=1.5;
  31.                 else if(b>=60&&b<=61)
  32.                 c=1.0;
  33.                 else
  34.                 c=0;
  35.                
  36.                 sum+=c*a;
  37.             result+=a;
  38.             count++;
  39.             }
  40.             
  41.                 }
  42.         aver=sum/result;
  43.         printf("%lf",aver);
  44.       
  45.         return 0;
  46. }
  47.             
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

为什么答案是4而不是3.375
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 15:19:32 | 显示全部楼层
我都不知道你这公式是啥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 15:20:29 | 显示全部楼层
你是咋输入的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

因为正是你的代码结果(表示你自己的代码有误)。话说,其实我也看不懂你的代码在写什么,很多错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

就是输入这个以后答案要是3.375
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 16:00:53 | 显示全部楼层
但我这4.0呀
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

你是按照我那张图片的样式输入的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我感觉这代码没问题了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

对啊·
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

不知道哪一步错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 17:05:40 | 显示全部楼层
emmmmm
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-31 17:06:22 | 显示全部楼层
你能发图片吗
发图三件套 官方教程 图壳 图桌
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

https://imgtu.com/i/IpFup6
小甲鱼最新课程 -> https://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
发不了图片麻烦大佬就写这个题目的代码吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我又看了下,没错啊
4x3 + 5*3 = 27
27 / 8 = 3.375
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 17:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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