#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) 阅读下面的程序,修改以下程序中的错误并上机运行。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)