魅族m2note手机多少钱:结构体数组的初始化(我写的代码有问题,帮我看以下哪儿错了?)

来源:百度文库 编辑:高校问答 时间:2024/05/12 13:41:39
#include<string.h>
void main()
{
struct student
{

long int num;
char name[20];
char sex;
char addr[20];
}
struct student stu[]={{89031,"Li Lin",'M',"123 Beijing Road"},{89023,"wi yin",'f',"110 Beijing Road"},{85654,"yy yin",'f',"123 Beijing Road"}};
printf("No:%d\nname:%s\nsex:%c\naddress:%s\n",stu[].num,stu[].name,stu[].sex,stu[].addr);
}

用下面方法可以输出数组中元素的全部数据:
#include<string.h>
void main()
{
struct student
{
long int num;
char name[20];
char sex;
char addr[20];
}; /*你的程序中少了一个分号*/
int i; /*定义一个循环变量i */
struct student stu[]=
{
{89031,\"Li Lin\",\'M\',\"123 Beijing Road\"},
{89023,\"wi yin\",\'f\',\"110 Beijing Road\"},
{85654,\"yy yin\",\'f\',\"123 Beijing Road\"}};
for(i=0;i<3;i++) /* 用for循环将其输出*/

printf(\"No:%ld\\nname:%s\\nsex:%c\\naddress:%s\\n\",
stu[i].num,stu[i].name,stu[i].sex,stu[i].addr);
} /* 输出学号的格式符应该是%ld */


stu[].num没有指出是第几个结构体数组。例如应该输出stu[1].num 其他的也一样,如果你想输出全部结构体的话应该用循环语句
for(i=0;i<3;i++)
printf("No:%d\nname:%s\nsex:%c\naddress:%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].addr);
//i应该在前面先定义