用C语言: 编写一个函数print,打印一个学生的成绩信息。C语言新手,求大神帮助呀,程序不知道哪里错了。

用C语言: 编写一个函数print,打印一个学生的成绩信息,该组中有五个学生的数据记录,每个记录包含num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。
#include <stdio.h>
struct Sudent
{
int num[6];
char name[8];
char score[4];
}stu[5];
void main()
{
int i,j;
char stu[5];
char print(char stu);
for(i=0;i<5;i++)
{
scanf("%s",stu[i].num);
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
scanf("%d",&stu[i].score[j]);
}
print(stu);
}
print(stu)
struct student stu[6];
{
printf("%s%s",stu[i].num,stu[i].name,stu[i].score);
for(j=0;j<3;j++)
printf("%d",stu[i].score[j]);
printf("\n");
}

#include <stdio.h>
struct Sudent
{
 char num[6]; //改类型
 char name[8];
 char score[4];
}stu[5];
// print 定义可以放前面
void print( struct Sudent stu[],int count)  //加上函数类型,参数类型声明
// struct student stu[6];//这句不要
{
int i,j; //增加
for(i = 0;i< count;i++) //增加
{
 printf("%s%s",stu[i].num,stu[i].name/*,stu[i].score*/);//
 for(j=0;j<3;j++)
   printf("%d",stu[i].score[j]);
  printf("\n");
 }
}
//
void main()
{
 int i,j;
 //char stu[5]; //已经声明stu为全局结构体数组了,这句不要
// char print(char stu); // 
 for(i=0;i<5;i++)
 {
  scanf("%s",stu[i].num);
  scanf("%s",stu[i].name);
  for(j=0;j<3;j++)
   scanf("%d",&stu[i].score[j]);
 }
 print(stu,5);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-15
for(i=0;i<5;i++)
{
scanf("%s",stu[i].num);
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
scanf("%d",&stu[i].score[j]);
}

num这个是int数组,不能用%s。只能循环一个一个输入
score这个是字符型,用%c
第2个回答  2014-12-15
结构声明使用有点乱,和题目也不符合。
print函数定义也有问题。这个编译时就会报错的。
建议先想清楚结构内容,print函数,主函数内输入问题。
相似回答