c语言 结构体问题,第一个printf执行之后就程序崩溃了,把错误指出并改正,然后发源代码即可谢谢

c语言 结构体问题,第一个printf执行之后就程序崩溃了,把错误指出并改正,然后发源代码即可谢谢,第1张

#include<stdioh>

#include<stringh>

struct Student{

int Student_ID;

char name[12];

int score;

};

int main(void){

int i,j;

struct Student s[10];

void sort(struct Student p);

for(i=0;i<10;i++){

printf("请输入第%d位学生的学号:\n",i+1);

scanf("%d",&s[i]Student_ID);//这里接收标准输入要取地址

while(getchar()!='\n');//这里释放掉输入学号带来的冗余字符。

printf("请输入第%d位学生的姓名:\n",i+1);

j=0;

while((s[i]name[j]=getchar())!='\n')

j++;

s[i]name[j]='\0';//这里溢出了。设置最后一位是'\0'就可以了。

printf("请输入第%d位学生的成绩:\n",i+1);

scanf("%d",&s[i]score);//这里接收标准输入要取地址

}

sort(s);//你要排序啊,不然题目白做了。

for(i=0;i<10;i++)

printf("%-6d%s\t%-6d\n",s[i]Student_ID,s[i]name,s[i]score);//字符串输出用指针,然后格式弄好一点

return 0;

}

void sort(struct Student p){//题目要求选择排序 代码逻辑自己研究

int i,j,flag;

struct Student temp;

for(i=0;i<10;i++){

flag = i;

temp=p[i];

for(j=i+1;j<10;j++){

if(p[j]score<p[i]score){

flag = j;

}

}

temp=p[flag];

p[flag]=p[i];

p[i]=temp;

}

}

#include <stdioh>

void main()

{int a[5],n;

for(n=0;n<5;n++)

scanf("%d",&a[n]);

for(n=0;n<5;n++)

printf("%d\n",a[n]);

}

以上就是关于c语言 结构体问题,第一个printf执行之后就程序崩溃了,把错误指出并改正,然后发源代码即可谢谢全部的内容,包括:c语言 结构体问题,第一个printf执行之后就程序崩溃了,把错误指出并改正,然后发源代码即可谢谢、2. 程序改错 (l) 阅读下面的程序,修改以下程序中的错误并上机运行。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9709941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存