Sign-up....

各位前辈,遇到一个结构体数组的问题,小弟非常菜鸟。

按照书上的例子和自己的理解写有如下代码。编译时出错。

希望高手帮忙排错。

#include <string.h>

struct school

{

int ID;

char name[10];

float grade;

};

struct school sch1[22];

main()

{

int i=0,j=0,m=0;

//学生的档案输入及判断学号是否重复

while (sch1[i].id != 0 && i< 23) //学生的学号等于0,作为输入结束的标志。

{

scanf ("%d%s%f",&sch1[i].id,&sch1[i].name,&sch1[i].grade);

j=i;

if i>0

{

for (;j>0;j--)

{

if (sch1[i].id=sch1[j].id)

{

printf("%s","输入的学号重复,请重新输入!");

i--;

j=0;

continue;

}

}

}

i++;

}

//学生档案及排序

j=0;

while (j<i)

{

m=j+1;

while (m<i)

{

if(sch1[j].grade < sch1[m].grade)

{

sch1[i].id=sch1[j].id;

sch1[i].name=sch1[j].name;

sch1[i].grade=sch1[j].grade;

sch1[j].id=sch1[m].id;

sch1[j].name=sch1[m].name;

sch1[j].grade=sch1[m].grade;

sch1[m].id=sch1[i].id;

sch1[m].name=sch1[i].name;

sch1[m].grade=sch1[i].grade;

}

m++;

}

j++;

}

for (j=0;j<i;j++)

{

printf("%d%s%f",sch1[j].id,sch1[j].name,sch1[j].grade);

}

}

1.定义一个用于描述学生信息的结构类型,其中包括三个成员,分别用于描述学号、姓名和成绩。

2.定义一个数组,数组的数据类型就是上面定义的结构类型。数组至少可以存放10个数据项。

3.从键盘输入若干个学生信息,存储到上面定义的数组中。

4.按课程成绩从小到大的顺序排列数组元素,然后依次输出每个数据元素。即给学生按成绩排名次。

[1023 byte] By [msdn] at [2007-8-14 20:04:52]
# 1 Re: 各位前辈,遇到一个结构体数组的问题,小弟非常菜鸟。

楼上说的是

另外还有几处语法错误:scanf ("%d%s%f",&sch1[i].id,&sch1[i].name,&sch1[i].grade);

应给为:scanf ("%d%s%f",&sch1[i].id,sch1[i].name,&sch1[i].grade);

还有:if (sch1[i].id=sch1[j].id)

该为:if (sch1[i].id==sch1[j].id)

都是语法错误,以后注意点就是了

bingbox_1984 at 2005-6-22 0:11:02 >
# 2 Re: 各位前辈,遇到一个结构体数组的问题,小弟非常菜鸟。

谢谢3为老师的帮助,我马上就改。谢谢!

gogotrain at 2005-6-22 8:28:04 >
# 3 Re: 各位前辈,遇到一个结构体数组的问题,小弟非常菜鸟。

jixingzhong(瞌睡虫) 说的对

nana_2005 at 2005-6-22 8:31:34 >

C/C++

All Classified