标题:数组问题求指导
只看楼主
LTao
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:86
注 册:2019-5-11
结帖率:100%
已结贴  问题点数:20 回复次数:7 
数组问题求指导
问题是:输入三名学生5门科目的成绩,并求出每人的平均分。
平均分无法正确求出来
#include<stdio.h>
#define N 5
int main()
{
    char i;
    for(i=1;i<=N;i++)
    {
        float score[3];
        int j;
        float sum=0;
        for(j=1;j<=3;j++)
        {
            printf("第%d人的第%d科成绩:",i,j);
            scanf("%f",&score[j]);
            sum+=score[j];
        }
        //float sum=0;
        /*for(j=1;j<=3;j++)
        {
            sum+=score[j];
        }*/
        printf("第%d人的平均分为%f\n    ",i,sum/3);
    }
}
搜索更多相关主题的帖子: 平均分 for float score sum 
2019-05-11 19:52
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:540
专家分:1158
注 册:2016-9-17
得分:7 
数组越界
a[3]所指向的元素是第四个元素,而你的数组长度只有3

穷举是最暴力的美学
2019-05-11 19:59
LTao
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:86
注 册:2019-5-11
得分:0 
回复 2楼 nosnoy
那就是  a[2] 是吧?
2019-05-11 20:02
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
得分:7 
#include<stdio.h>

int main(void)
{
    int i;
    int j;
    float score[4];
   
    for(i=1;i<=3;i++)
    {
        float sum =0;
        for(j=0;j<=4;j++)
        {
            printf("第%d人的第%d科成绩:", i, j+1);
            scanf("%f",&score[j]);
            sum+=score[j];
        }
        printf("第%d人的平均分为%f\n", i, sum/5);
    }
    return 0;
}
第1人的第1科成绩:43
第1人的第2科成绩:54
第1人的第3科成绩:54
第1人的第4科成绩:65
第1人的第5科成绩:65
第1人的平均分为56.200001
第2人的第1科成绩:43
第2人的第2科成绩:43
第2人的第3科成绩:54
第2人的第4科成绩:5
第2人的第5科成绩:5
第2人的平均分为30.000000
第3人的第1科成绩:67
第3人的第2科成绩:87
第3人的第3科成绩:65
第3人的第4科成绩:43
第3人的第5科成绩:23
第3人的平均分为57.000000
我这样写对不对啊?

借用一下侯捷的话:勿在浮沙筑高台。
2019-05-11 21:44
LTao
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:86
注 册:2019-5-11
得分:0 
回复 4楼 吕孟伟
#include<stdio.h>
#define N 5
int main()
{
    char i;
    for(i=1;i<=N;i++)
    {
        float score[3];
        int j;
        float sum=0;
        for(j=0;j<3;j++)
        {
            printf("第%d人的第%d科成绩:",i,j+1);
            scanf("%f",&score[j]);
            sum+=score[j];
        }
        //float sum=0;
        /*for(j=1;j<=3;j++)
        {
            sum+=score[j];
        }*/
        printf("第%d人的平均分为%f\n",i,sum/3);
    }
}
我现在改成这样了,运行无误
2019-05-11 22:18
LTao
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:86
注 册:2019-5-11
得分:0 
回复 4楼 吕孟伟
是我题目数字打反了,5个人,三门成绩
2019-05-11 22:19
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
得分:0 
回复 6楼 LTao
好的

借用一下侯捷的话:勿在浮沙筑高台。
2019-05-11 22:26
兰陵笑笑生
Rank: 1
等 级:新手上路
威 望:1
帖 子:9
专家分:5
注 册:2019-4-25
得分:0 
回复 楼主 LTao
//输入三名学生5门科目的成绩,并求出每人的平均分
#include<stdio.h>
#define N 3
#define M 5
main()
{
    float average(int a[M]);
    int i,j,k;
    int array[M];
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            scanf("%d",&array[j]);
        }
        printf("第 %d 个学生的5门成绩分别为:\n",i+1);
        for(k=0;k<M;k++)
            printf("%5d",array[k]);
        printf("\n");
        printf("第 %d 个学生的平均成绩为:%.1f\n",i+1,average(array));
        
    }
}
float average(int a[M])
{
    int r,s,sum=0;
    float average;
    for(r=0;r<M;r++)
        sum+=a[r];
    average=sum/5.0;
    return average;
}
2019-05-15 16:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494677-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.567108 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved