//刚学了结构体,来一个程序练练手
//功能是要输入2位学生的信息,并将分数高的学生输出
//源代码在下:
<span style="font-size:14px;">#include<stdio.h>
int main()
{
struct Student //定义结构体Student,包括信息为学号,姓名,成绩,地址
{
int num;
char name[20];
float score;
char address[20];
}student1,student2;
printf("please enter 2 student's num,name,score and address:\n"); //输入两个学生的信息
scanf("%d%s%f%s",&student1.num,student1.name,&student1.score,student1.address);
scanf("%d%s%f%s",&student2.num,student2.name,&student2.score,student2.address);
printf("the better one is:\n"); //判断哪位学生的成绩高,然后输出
if(student1.score>student2.score)printf("num:%d name:%s score:%f address:%s",student1.num,student1.name,student1.score,student1.address);
else printf("num:%d name:%s score:%.2f address:%s",student2.num,student2.name,student2.score,student2.address);
return 0;
}
</span>
这里主要注意的是:
一开始char name[20];我是写成 char *name;。但是这是不行的。因为我下面scanf中用到了%s输入,这时是把字符输成地址。
如果要这样使用的话,要先将name赋值。但是好像在结构体内不能进行赋值。