C语言struct语句的使用

我准备录入学生学号、姓名、成绩,代码如下,执行时出现错误。帮忙解决下吧……拜托了!
#include <stdio.h>
void main()
{
int i;
struct student{
int number;
char name;
float sorce;
}str[20];
for(i=0;i<20;i++){
printf("put number:");
scanf("%d",&str[i].number);
printf("put name:");
scanf("%c",&str[i].name);
printf("%f",&str[i].sorce);
}
printf("number\tname\tsorce\t");
for(i=0;i<20;i++){
printf("%s",str[i]);}
}

struct结构应该改下:
struct stu{
int number;
char name[20];/*数组,您不会是用一个字符表示名字? */
float sorce;
}str[20];
for(i=0;i<20;i++){
printf("put number:");
scanf("%d",&str[i].number);
printf("put name and sorce :");
scanf("%s",&str[i].name);
scanf("%f",&str[i].sorce);
}
printf("number\tname\tsorce\t");
for(i=0;i<20;i++){
printf("%d\t%s\t%f\n",str[i].number,str[i].name,str[i].sorce);
/*输出结构里面的也要一个一个的输出*/
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-16
结构体定义不够准确,应该为
struct student{
int number;
char name[20];
float sorce;
}str[20];
最好放在main()函数外

分数输入有误:
printf("%f",&str[i].sorce);
应改为scanf("%f",&str[i].sorce);

结构体的输出不能整个一起输出,必须把结构体里的变量一个个输出
for(i=0;i<20;i++){
printf("%s",str[i]);}
应该是:
for(i=0;i<20;i++){
printf("%d\t%s\t%.2f\n",str[i].number,str[i].name,str[i].score);}

#include <stdio.h>
struct student{
int number;
char name[20];
float sorce;
}str[20];
void main()
{
int i;
for(i=0;i<20;i++){
printf("input number:");
scanf("%d",&str[i].number);
printf("input name:");
scanf("%s",str[i].name);
printf("input score:");
scanf("%f",&str[i].score);
}
printf("number\tname\tscore\t");
for(i=0;i<20;i++){
printf("%d\t%s\t%.2f\n",str[i].number,str[i].name,str[i].score);}
}
第2个回答  2016-01-27
这是用来定义结构的函数
例如:
struct student
{
int num; //电话号码
char *name; //名字
char sex; //性别
};
第3个回答  2010-07-16
scanf("%s",&str[i].name);这里应该去掉&符号
相似回答