蜗牛 发表于 2005-5-30 13:29

学过c语言的大虾帮帮忙咯

我想由自定义函数输出结构数组,程序如下:
#include<stdio.h>
#define FORMAT "%-5d%-15s%4c%4d%4d%4d%4d\n"
#define N 5
struct student
{int num;
char name;
char sex;
int age;
int score;
}stu={{1001,"Li Ming",'M',22,66,88,56},{1002,"WJian",'M',21,76,98,70},{1003,"Zhang Xiaoli",'F',23,78,68,60},{1004,"YU Xin",'M',20,87,100,80},{1005,"Zhao Fen",'F',21,86,76,72}};
void print(struct student stu[])
{int i;
for(i=0;i<N;i++)
{printf(FORMAT,stu.num,stu.name,stu.sex,stu.age,
        stu.score,stu.score,stu.score);
   printf("\n");}
}
main()
{clrscr();
print(stu[]);
}

当总是运行时总是显示Expression syntax。有哪位大虾懂的,指点一下,谢咯。

hjack 发表于 2005-5-30 16:24

语法错误。。

stu是一个结构体数组,在printf里却没有数组下标。
主函数里调用print时参数用数组名就行了。

void print(struct student stu[])
{int i;
for(i=0;i<N;i++)
{printf(FORMAT,stu.num,stu.name,stu.sex,stu.age,
      stu.score,stu.score,stu.score); //modify here stu. change to stu.
   printf(\"\\n\");}
}
main()
{clrscr();
print(stu); //modify here stu[] change to stu
}

[ Last edited by hjack on 2005-5-30 at 16:31 ]

蜗牛 发表于 2005-6-2 23:06

多谢hjack的支点哦
页: [1]
查看完整版本: 学过c语言的大虾帮帮忙咯