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

2025-03-11 05:24:50
推荐回答(3个)
回答1:

#include 
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);
}

回答2:

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

回答3:

结构声明使用有点乱,和题目也不符合。
print函数定义也有问题。这个编译时就会报错的。
建议先想清楚结构内容,print函数,主函数内输入问题。