请看代码:就是不能正常排序。。
#define N 3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
struct item
{
char name[32];
int num;
int score;
};
struct item all[N];
int i,j;
printf("请输入%d组学生的信息:\n",N);
for(i=0;i<N;i++)
{
printf("请输入第%d组学生的姓名,学号,成绩:\n",i+1);
scanf("%s %d %d",&all[i].name,&all[i].num,&all[i].score);
}
for(i=0;i<N-1;i++)
{
for(j=i+1;i<N;j++)
{
if(strcmp(all[j].name,all[i].name)<0)
{
struct item temp;
temp=all[i];
all[i]=all[j];
all[j]=temp;
}
}
}
printf("按顺序排好的为:\n");
for(i=0;i<N;i++)
{
printf("%s %d %d\n",all[i].name,all[i].num,all[i].score);
}
return 0;
}
你好,运行起来还是“停止工作”啊,还是有点小问题,请问如果all是指针的话,all[i]代表什么意思,点号要不要改成->?帮忙看看其他地方还有什么错误
追答不好意思,刚才把N看成变量了,你定义的是宏,不用改这里,代码帮你调整好了,如下:谢谢谢谢啊!!!!因为写错了个字母调了一下午,谢谢了!!!
追答不客气,汗