阿康康康 发表于 2019-11-1 08:21:48

求助大佬一个数组的问题!

每次都只得了33分……TAT{:9_238:}

题目:现在按学号次序(1到n)给你n个同学的的成绩,m次询问,每次询问第i个学生到第j个学生的平均成绩(保留两位小数)。

输入:Input第一行一个整数n,第二行n个整数代表n个同学的成绩。 第三行一个整数m,接下来m行每次两个整数i,j,每次询问第i个学生到第j个学生的平均成绩(保留两位小数)。 (1<=n<=1000)

输出:对于每次询问,输出成绩

#include <stdio.h>

int main()
{
        int n;
        scanf("%d", &n);
        int s, p;
        for(p=0; p<n; p++)
        {
                scanf("%d", &s);
        }
       
        int m, q, i, j, k, sum=0;
        double a;
        scanf("%d", &m);
        for(q=0; q<m; q++)
        {
                scanf("%d %d", &i, &j);
                for(k=i-1; k<=j-1; k++)
                {
                        sum = sum + s;
                }
                a = (sum*1.0)/(j-i+1);
                printf("%.2f", a);
                sum = 0;
        }
       
        return 0;
}

bin554385863 发表于 2019-11-1 08:44:34

没头没脑的,
请注明问题出在哪,或者贴出报错代码

lovepipi 发表于 2019-11-1 12:10:53

兄弟,我看了三遍,还测试了半天,并没有发现你说的只会得出一个结果的问题

AmosAlbert 发表于 2019-11-1 21:38:12

要干什么呢??问什么问题呢??

阿康康康 发表于 2019-11-1 22:47:26

bin554385863 发表于 2019-11-1 08:44
没头没脑的,
请注明问题出在哪,或者贴出报错代码

{:10_257:}抱歉,第一次发帖提问没说清楚……这个题是我学校的练习,我在devC++上可以运行,但在学校平台上还有两个测试点没通过,问了老师他也只说是数组长度的问题,但我改了之后也没用,所以来发帖问下我的有没有什么问题……

阿康康康 发表于 2019-11-1 22:47:57

lovepipi 发表于 2019-11-1 12:10
兄弟,我看了三遍,还测试了半天,并没有发现你说的只会得出一个结果的问题

{:10_291:}抱歉,第一次发帖提问没说清楚……这个题是我学校的练习,我在devC++上可以运行,但在学校平台上还有两个测试点没通过,问了老师他也只说是数组长度的问题,但我改了之后也没用,所以来发帖问下我的有没有什么问题……

阿康康康 发表于 2019-11-1 22:48:48

AmosAlbert 发表于 2019-11-1 21:38
要干什么呢??问什么问题呢??

{:10_245:}抱歉,第一次发帖提问没说清楚……这个题是我学校的练习,我在devC++上可以运行,但在学校平台上还有两个测试点没通过,问了老师他也只说是数组长度的问题,但我改了之后也没用,所以来发帖问下我的有没有什么问题……

bin554385863 发表于 2019-11-1 23:06:07

本帖最后由 bin554385863 于 2019-11-2 01:10 编辑

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int n = 1;
    printf("请输入学生个数\n");
    scanf("%d", &n);
    int stu = {0};
    printf("请按学号输入成绩\n");
    for (size_t i = 0; i < n; i++)
    {
      scanf("%d", &stu);
    }
    int m = 0, a = 0, b = 0;
    float res = 0, sum = 0;
    printf("请输入询问的次数\n");
    scanf("%d", &m);
    int t = m + 1;
    while (m != 0)
    {
      printf("请第%d次输入开始学号, 结束学号\n", t-m);
      scanf("%d%d", &a, &b);
      for (size_t i = a - 1; (i <= b - 1)&&(a <= b); i++)
      {
            sum += stu;
      }
      res = sum / (b - a + 1);
      printf("第%d次平均成绩 = %.2f\n", t - m, res);
      printf("\n");
      sum = 0;
      m--;
    }
    return 0;
}


阿康康康 发表于 2019-11-1 23:16:31

bin554385863 发表于 2019-11-1 23:06
#include

int main()


                scanf("%d %d", &i, &j);
                for(k=i-1; k<=j-1; k++)
                {
                        sum = sum + s;
                }
可是j不是在上面有输入的吗?这样那i也没有初始化啊……{:10_291:}

bin554385863 发表于 2019-11-1 23:29:50

阿康康康 发表于 2019-11-1 23:16
scanf("%d %d", &i, &j);
                for(k=i-1; k

额,那是我看岔了,我在看看等下改改

bin554385863 发表于 2019-11-2 00:19:21

本帖最后由 bin554385863 于 2019-11-2 01:04 编辑

bin554385863 发表于 2019-11-1 23:29
额,那是我看岔了,我在看看等下改改

这应该是你要的效果吧
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int n = 1;
    printf("请输入学生个数\n");
    scanf("%d", &n);
    int stu = {0};
    printf("请按学号输入成绩\n");
    for (size_t i = 0; i < n; i++)
    {
      scanf("%d", &stu);
    }
    int m = 0, a = 0, b = 0;
    float res = 0, sum = 0;
    printf("请输入询问的次数\n");
    scanf("%d", &m);
    int t = m + 1;
    while (m != 0)
    {
      printf("请第%d次输入开始学号, 结束学号\n", t-m);
      scanf("%d%d", &a, &b);
      for (size_t i = a - 1; (i <= b - 1)&&(a <= b); i++)
      {
            sum += stu;
      }
      res = sum / (b - a + 1);
      printf("第%d次平均成绩 = %.2f\n", t - m, res);
      printf("\n");
      sum = 0;
      m--;
    }
    return 0;
}


===============================================================
Microsoft Windows [版本 10.0.18363.418]
(c) 2019 Microsoft Corporation。保留所有权利。

E:\Users\admin\Documents\VScode>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-zflx2jxg.42x --stdout=Microsoft-MIEngine-Out-xsmimx2y.e41 --stderr=Microsoft-MIEngine-Error-enbuwzwj.civ --pid=Microsoft-MIEngine-Pid-hlgfwcns.oo0 "--dbgExe=E:\My Program\Others\MinGW\bin\gdb.exe" --interpreter=mi
请输入学生个数
12
请按学号输入成绩
11 22 33 44 55 66 96 85 74 45 12 78
请输入询问的次数
4
请第1次输入开始学号, 结束学号
1 3
第1次平均成绩 = 22.00

请第2次输入开始学号, 结束学号
1 2
第2次平均成绩 = 16.50

请第3次输入开始学号, 结束学号
4 9
第3次平均成绩 = 70.00

请第4次输入开始学号, 结束学号
7 10
第4次平均成绩 = 75.00


E:\Users\admin\Documents\VScode>

阿康康康 发表于 2019-11-2 08:48:32

bin554385863 发表于 2019-11-2 00:19
这应该是你要的效果吧

===============================================================


{:10_298:}辛苦你了,感谢!

AmosAlbert 发表于 2019-11-8 12:29:58

阿康康康 发表于 2019-11-1 22:48
抱歉,第一次发帖提问没说清楚……这个题是我学校的练习,我在devC++上可以运行,但在学校平台 ...

好的,是不是边界设置错误了呢

愈伤组织 发表于 2019-11-11 21:14:02

bin554385863 发表于 2019-11-2 00:19
这应该是你要的效果吧

===============================================================


弱弱问一句size_t i = a - 1 含义是?

bin554385863 发表于 2019-11-11 21:17:28

本帖最后由 bin554385863 于 2019-11-11 21:18 编辑

愈伤组织 发表于 2019-11-11 21:14
弱弱问一句size_t i = a - 1 含义是?

你输入的是从一开始的索引,而C语言是从零开始索引的
页: [1]
查看完整版本: 求助大佬一个数组的问题!