【发布时间】:2020-12-26 07:46:08
【问题描述】:
在接收到一定数量的学生及其姓名后,程序在将其传递给另一个函数进行打印后停止。我该如何更改?
#include <stdio.h>
#define MAX_STUDENT 1024
void print_name(char* surname,char* first_name,int n_students)
{
int i,b=1;
for(int i=0;i<n_students;i++)
{
printf("%d. %s, %s\n",b,first_name[i],surname[i]);
b++;
}
}
int main()
{
int n_students,i,b=1;
char surname[MAX_STUDENT][20],first_name[MAX_STUDENT][20];
printf("number of students:");
scanf("%d",&n_students);
for(i=0;i<n_students;i++)
{
printf("%d. ",b);
scanf("%19s %19s",&surname[i],&first_name[i]);
b++;
}
print_name(surname,first_name,n_students);
return 0;
}
【问题讨论】:
-
稍微偏离主题:你应该了解结构。
-
mopheadkim,1) 为什么不使用 1 小时前问题的所有好答案? 2) 节省时间,启用所有编译器警告。
-
@Jabberwocky 我知道,但我只使用我们的教授教给我们的东西,结构还不是其中之一。
-
@chux-ReinstateMonica 我实际上忘了用函数发布它,所以我又问了一遍
-
mopheadkim,前一个和这个有同样的未解决问题。当 1) 启用所有警告,2) 使用良好的编译器时,您的许多代码问题都会发出警告。比在 SO 上发布更快。