标题:我求不出平均值,不知道怎么修改代码
只看楼主
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
结帖率:100%
已结贴  问题点数:5 回复次数:5 
我求不出平均值,不知道怎么修改代码
#include<stdio.h>
int main()
{
struct student
{
    char name[5];
    char A[3];
    char B[3];
    char C[3];
    float average;
};
struct student stu[3];
int i;
printf("请输入学生的信息:\n");
for(i=0;i<3;i++)
{
    printf("请输入第%d个学生的信息:\n",i+1);
    printf("姓名:");
    scanf("%s",stu[i].name);
    printf("A课程成绩:");
    scanf("%s",stu[i].A);
    printf("B课程成绩:");
    scanf("%s",stu[i].B);
    printf("C课程成绩:");
    scanf("%s",stu[i].C);
}

for(i=0;i<3;i++)
{
    stu[i].average=(stu[i].A[i]+stu[i].B[i]+stu[i].C[i])/3.0;
    printf("平均分%f",stu[i].average);
}

printf("学生成绩列表:\n");
for(i=0;i<3;i++)
{
    printf("姓名:%s A课程成绩:%s B课程成绩:%s C课程成绩:%s 平均分:%f\n",stu[i].name,stu[i].A,stu[i].B,stu[i].C,stu[i].average);
}
printf("\n");
return 0;
}
有颜色的那一部分的代码,我觉得有问题,但我不知道怎么修改。还有,在输入各个学生的信息会不会出错了?我很困惑,求大哥大姐们帮忙改改
搜索更多相关主题的帖子: 课程 信息 average include 平均值 
2012-12-13 23:42
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
得分:5 
fflush(stdin);

在scanf函数后面加上这个函数

还有 你的成绩为什么要放在数组中 直接用float型不行吗  

你那样的话肯定出问题

喜欢睡觉 却经常熬夜
2012-12-14 00:02
celisius
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-10
得分:0 
成绩定义成了char???字符?应该定义成整型或者浮点数类型吧?
2012-12-14 01:40
皎月残影
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2012-12-14
得分:0 
#include<stdio.h>
int main()
{
    struct student
     {
        char name[5];
        float A[3];
        float B[3];
        float C[3];
        float average;
     };
    struct student stu[3];
    int i;
    printf("请输入学生的信息:\n");
    for(i=0;i<3;i++)
     {
        printf("\n请输入第%d个学生的信息:\n",i+1);
        printf("姓名:");
        scanf("%s",&(stu[i].name));
        printf("A课程成绩:");
        scanf("%f",&(stu[i].A[i]));
        printf("B课程成绩:");
        scanf("%f",&(stu[i].B[i]));
        printf("C课程成绩:");
        scanf("%f",&(stu[i].C[i]));
   
        stu[i].average=(stu[i].A[i]+stu[i].B[i]+stu[i].C[i])/3.0;
        printf("平均分%f\n",stu[i].average);

        printf("\n学生成绩列表:\n");
        printf("姓名:%s A课程成绩:%f B课程成绩:%f C课程成绩:%f 平均分:%f\n",
                stu[i].name,stu[i].A[i],stu[i].B[i],stu[i].C[i],stu[i].average);

     }
     printf("\n");
     return 0;
}
2012-12-14 14:44
皎月残影
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2012-12-14
得分:0 
如果把课程成绩定义为数组,就不能这样“scanf("%s",stu[i].A)”赋值。因为无论你怎么循环,都只是给数组A的首地址赋值而已。即永远是A[0]有值。
2012-12-14 14:50
li478601862
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2012-10-26
得分:0 
回复 楼主 love云彩
完全没必要将成绩放在数组中,给自己找麻烦
2012-12-15 09:53



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




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

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