把主函数的输出部分,移出主函数,做成自定义函数方式,主函数完成调用。(可以给完整的过程吗🥺,之前有试过可以运行但是没有结果,所以可以求一个解题全过程吗🥺)

#include <stdio.h>
#define M 1024
struct student
{
int id;
char name[20];
int score;
};
main()
{
int i,n;
struct student s[M];
printf("input n:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("input s[%d].id:",i);
scanf("%d",&s[i].id);
printf("input s[%s].name:",i);
scanf("%s",s[i].name);
printf("input s[%d].score:",i);
scanf("%d",&s[i].score);
}
for(i=0;i<n;i++)
printf("%d\t%s\t%d\n",s[i].id,s[i].name,s[i].score);
}

修改如下,供参考:

#include <stdio.h>
#define M 1024
struct student
{
    int  id;
    char name[20];
    int  score;
};
void print(struct student *p,int n)
{
    int i;
    for(i=0;i<n;i++)
       printf("%d\t%s\t%d\n",p[i].id,p[i].name,p[i].score);
}
int main()
{
    int i,n;
    struct student s[M];
    printf("input n:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
       printf("input s[%d].id:",i);
       scanf("%d",&s[i].id);
       printf("input s[%d].name:",i); //printf("input s[%s].name:",i);
       scanf("%s",s[i].name);
       printf("input s[%d].score:",i);
       scanf("%d",&s[i].score);
    }
    print(s,n);//for(i=0;i<n;i++)输出改为函数
               //   printf("%d\t%s\t%d\n",s[i].id,s[i].name,s[i].score);

    return 0;
}