注册 登录
编程论坛 C++教室

问题又一波来袭,关于结构体,求助!!

庄子小五 发布于 2016-12-10 21:14, 2226 次点击
这是我编写的东西,就是输入三个人的名字和两科成绩,然后比较把成绩和最大的名字输出,可是一直不能编译,为什么呢?求教各位大佬~~



#include <stdio.h>
#define NAMESIZE 20

struct studnet
{
char name[NAMESIZE];
int score1;
int score2;
int sum;
}stu[3];

int mian()
{
    int i,j,max=0;
    for(i=0;i<3;i++)
    {
        stu[i].sum=0;
        scanf("%s",stu[i].name);
        scanf("%d,%d",&stu[i].score1,&stu[i].score2);
        stu[i].sum=stu[i].score1+stu[i].score2;

}
    for(i=0;i<3;i++)
    {
        if(stu[i].sum>stu[i+1].sum)
            j=i;
        else j=i+1;
        if(stu[j].sum>stu[i+2].sum)
            j=j;
        else j=j+2;
    }
    printf("%s",stu[j].name);
    return 0;
}
6 回复
#2
yangwawa2016-12-10 23:24
主函数 main 写成 mian了
#3
炎天2016-12-11 01:04
   for(i=0;i<3;i++)
     {
         if(stu[i].sum>stu[i+1].sum)   //越界
             j=i;
         else j=i+1;
         if(stu[j].sum>stu[i+2].sum)
             j=j;
         else j=j+2;
     }

其实也不用循环
i = 0;
if(str[i].sum>stu[i+1].sum)
  j=i;
else  j= i+1;
if(stu[j].sum>stu[i+2].sum)
   j = j;
else j = i+2;
}
#4
庄子小五2016-12-12 14:39
回复 2楼 yangwawa
失误失误……
#5
庄子小五2016-12-12 14:45
回复 3楼 炎天
越界是什么意思,求教
#6
王子的新衣2016-12-14 09:41
越界就是你输入的数比定义的大,相似与数据溢出问题   c++课本19页有   我是大一的呵呵
#7
damzkk2016-12-16 16:05
#include <stdio.h>

#define NAMESIZE 20
 
struct studnet
{
char name[NAMESIZE];
int score1;
int score2;
int sum;
}stu[3];

int main()
{
    int i,max;
    for(i=0;i<3;i++)
    {
        stu[i].sum=0;
        scanf("%s",stu[i].name);
        scanf("%d%d",&stu[i].score1,&stu[i].score2);
        stu[i].sum=stu[i].score1+stu[i].score2;

}
    {

    if(stu[0].sum>stu[1].sum)
      max=0;
    else  max= 1;
    if(stu[max].sum<stu[2].sum)
       max = 2;
        }
    printf("%s",stu[max ].name);
    return 0;
}
1