牵风 发表于 2021-10-31 14:42:07

求多门课程的平均学分绩点

#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 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;
}
            

牵风 发表于 2021-10-31 15:14:24

大马强 发表于 2021-10-31 15:02
有点看不懂你的计算公式,改了一下你看看对不对

为什么答案是4而不是3.375

大马强 发表于 2021-10-31 15:19:32

我都不知道你这公式是啥{:10_269:}

大马强 发表于 2021-10-31 15:20:29

你是咋输入的

傻眼貓咪 发表于 2021-10-31 15:28:56

牵风 发表于 2021-10-31 15:14
为什么答案是4而不是3.375

因为正是你的代码结果(表示你自己的代码有误)。话说,其实我也看不懂你的代码在写什么,很多错误

牵风 发表于 2021-10-31 15:39:46

大马强 发表于 2021-10-31 15:20
你是咋输入的

先输入一个正整数n,表示所修课程门数。
然后输入n行,每行包括2个数a和b,其中,a表示课程的学分,为double类型数据;b表示该课程的考试成绩,为int类型数据
平均学分绩点 =所修课程的(课程学分*课程绩点)之和/所修课程的课程学分之和。
输入:2
3.0 100
5.0 80

大马强 发表于 2021-10-31 15:53:41

这个?https://static01.imgkr.com/temp/5c7a8325043e4ce2a46db91c4c24699f.jpg

牵风 发表于 2021-10-31 15:56:08

大马强 发表于 2021-10-31 15:53
这个?

就是输入这个以后答案要是3.375

大马强 发表于 2021-10-31 16:00:53

但我这4.0呀

牵风 发表于 2021-10-31 16:04:55

大马强 发表于 2021-10-31 16:00
但我这4.0呀

所以求大佬你帮忙看看看看改改{:5_91:}
这是题目{:5_92:}
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

大马强 发表于 2021-10-31 16:42:02

牵风 发表于 2021-10-31 16:04
所以求大佬你帮忙看看看看改改
这是题目
90-100        4.0


你是按照我那张图片的样式输入的吗?

大马强 发表于 2021-10-31 16:43:24

大马强 发表于 2021-10-31 15:02
有点看不懂你的计算公式,改了一下你看看对不对

我感觉这代码没问题了

牵风 发表于 2021-10-31 16:49:52

大马强 发表于 2021-10-31 16:42
你是按照我那张图片的样式输入的吗?

对啊·

牵风 发表于 2021-10-31 16:50:24

牵风 发表于 2021-10-31 16:49
对啊·

不知道哪一步错了

大马强 发表于 2021-10-31 17:05:40

emmmmm

大马强 发表于 2021-10-31 17:06:22

你能发图片吗
发图三件套 官方教程 图壳 图桌

牵风 发表于 2021-10-31 17:59:33

大马强 发表于 2021-10-31 17:06
你能发图片吗
发图三件套 官方教程 图壳 图桌

https://imgtu.com/i/IpFup6

牵风 发表于 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
发不了图片麻烦大佬就写这个题目的代码吧{:5_92:}

大马强 发表于 2021-10-31 18:59:44

牵风 发表于 2021-10-31 15:56
就是输入这个以后答案要是3.375

我又看了下,没错啊
4x3 + 5*3 = 27
27 / 8 = 3.375
页: [1] 2
查看完整版本: 求多门课程的平均学分绩点