C语言结构体数组元素赋值

#include<stdio.h>>
struct student2
{
int number;
char name[10];
char sex;
float score[3];//3科成绩
};
int main()
{
int i,j;
struct student2 stu[4];//结构体数组
printf("input\n");
for(i=0;i<4;i++)
{
scanf("%d%s%c",stu[i].number,stu[i].name,stu[i].sex);
printf("%d%s%c",stu[i].number,stu[i].name,stu[i].sex);
}
return 0;
}

这是怎么回事

你漏写了取地址符“&”,加上后就好了:

#include<stdio.h>
struct student2
{
    int number;
    char name[10];
    char sex;
float score[3];//3科成绩
};
int main()
{
    int i,j;
    struct student2 stu[4];//结构体数组

    printf("input\n");
    for(i=0;i<4;i++)
    {
scanf("%d %s %c", &stu[i].number,&stu[i].name,&stu[i].sex);
        printf("%d, %s, %c,",stu[i].number,stu[i].name,stu[i].sex);
    }

    return 0;
}

输出如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-30
scanf("%d%s%c",stu[i].number,stu[i].name,stu[i].sex);把这句分成三句输入试一下

scanf("%d",stu[i].number);
scanf("%s",stu[i].name);
scanf("%c",stu[i].sex);