当前位置: 代码迷 >> C语言 >> 三个学生输入五门课求平均分,不得结果。望高手给看一看。
  详细解决方案

三个学生输入五门课求平均分,不得结果。望高手给看一看。

热度:463   发布时间:2008-04-05 12:06:57.0
三个学生输入五门课求平均分,不得结果。望高手给看一看。
#include<stdio.h>
float aver[3];
struct student
{
    int num;
    char name[10];
    float score[5];
};
struct student stu[3];


void input(struct student stu[])
{
    int i;
    printf("please input students'name and scores\n");
    for (i=0;i<3;i++)
    {
        scanf("%d%s%f%f%f%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3]
        ,&stu[i].score[4]);
    }

}
void average()//每个学生的平均分
{
    int j,i;
    float ave[3]={0};
    for (j=0;j<=2;j++)
    {
        for(i=0;i<5;i++)
        {
            ave[j]=(ave[j]+stu[j].score[i]);
            printf("this is %d\n",ave[j]);
        }
            aver[j]=ave[j]/5;//求得的平均分,放在这个数组中。
    }

}
int  main()
{
        
        int i;
        input(stu);
        average();
        for (i=0;i<=2;i++)
        {
            printf("%f\n",aver[3]);
        }
        return 0;
}
搜索更多相关的解决方案: 平均分  stu  float  学生  

----------------解决方案--------------------------------------------------------
为什么呢?
----------------解决方案--------------------------------------------------------
结果是零。怎么输入都是零,还望高手指点。这样的小程序,看的我晕了。还是看不出来。
----------------解决方案--------------------------------------------------------
// 看你的代码太吃力,所以重写了一个。

#include <stdio.h>
#include <stdlib.h>

typedef struct {
    int   num;
    char  name[10];
    float score[5];
} Student;

void InputStudent(Student * pStudent);
float StudentAverage(Student * pStudent);
void ShowStudent(Student * pStudent);

int main(void)
{
    int i;
    Student stu[3];
   
    for(i = 0; i < 3; i++)
        InputStudent(stu + i);

    for(i = 0; i < 3; i++)
    {
        ShowStudent(stu + i);
    }
   
    system("Pause");
    return 0;
}

void InputStudent(Student * pStudent)
{
    printf("请输入:学号 姓名 成绩1 成绩2 成绩3 成绩4 成绩4\n");
    scanf("%d %s %f %f %f %f %f",
          &pStudent->num,
          pStudent->name,
          &pStudent->score[0],
          &pStudent->score[1],
          &pStudent->score[2],
          &pStudent->score[3],
          &pStudent->score[4]
    );
}

float StudentAverage(Student * pStudent)
{
    int i;
    float average = 0.0;

    for(i = 0; i < 5; i++)
    {
        average += pStudent->score[i];
    }
    return (average / 5);
}

void ShowStudent(Student * pStudent)
{
    printf("\n学号 %d\n"
           "  姓名 %s\n"
           "  成绩1 %.2f\n"
           "  成绩2 %.2f\n"
           "  成绩3 %.2f\n"
           "  成绩4 %.2f\n"
           "  成绩5 %.2f\n"
           "  平均分 %.2f\n",
           pStudent->num,
           pStudent->name,
           pStudent->score[0],
           pStudent->score[1],
           pStudent->score[2],
           pStudent->score[3],
           pStudent->score[4],
           StudentAverage(pStudent)
    );
}
本帖最近评分记录

―>〉Sun〈<―
2008-04-05 05:13:37
cosdos

来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2107
专家分:1364
注 册:2007-6-19
  得分:0 
我看得也晕
----------------解决方案--------------------------------------------------------
Perfect 好佩服。写的跟书的风格一样。能说一说写程序写了大致多久了。
----------------解决方案--------------------------------------------------------
学C 半年多
----------------解决方案--------------------------------------------------------
函数定义时 形参要用指针
----------------解决方案--------------------------------------------------------
厉害啊``
----------------解决方案--------------------------------------------------------
书上说也可以用结构体数组名的。
----------------解决方案--------------------------------------------------------
  相关解决方案