有大佬明白为什么错吗?
c语言吧
全部回复
仅看楼主
level 5
永雏呱呱 楼主
已经不知道哪里错了[泪]
#include<stdio.h>
#include<string.h>
typedef struct
{
char id[11];
int year;
}p;
p a[101];
int main()
{
int n,i,j,swap;
char arr[11];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s %d",&a[i].id,&a[i].year);
for(i=0;i<n;i++)
{
for(j=i;j!=0&&a[j].year>60&&a[j].year!=a[j-1].year;j--)
{
swap=a[j-1].year;
a[j-1].year=a[j].year;
a[j].year=swap;
strcpy(arr,a[j-1].id);
strcpy(a[j-1].id,a[j].id);
strcpy(a[j].id,arr);
}
}
for(i=0;i<n;i++)
printf("%s\n",a[i].id);
return 0;
}
2022年11月24日 13点11分 1
吧务
level 14
你的代码里甚至没有if语句,那你怎么排序呢?
2022年11月24日 14点11分 2
哦哦,我说哪里错了,忘掉了条件了
2022年11月24日 15点11分
加了if,还是错了,不过错的少了点,接下来怎么办啊?
2022年11月24日 23点11分
OK了我发现自己哪里错了,谢谢你啦
2022年11月24日 23点11分
level 5
永雏呱呱 楼主
#include<stdio.h>
#include<string.h>
typedef struct
{
char id[11];
int year;
}p;
p a[101];
int main()
{
int n,i,j,swap;
char arr[11];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s %d",&a[i].id,&a[i].year);
for(i=0;i<n;i++)
{
for(j=i;j!=0&&a[j].year>60&&a[j].year!=a[j-1].year;j--)
{
if(a[j].year>a[j-1].year)
{ swap=a[j-1].year;
a[j-1].year=a[j].year;
a[j].year=swap;
strcpy(arr,a[j-1].id);
strcpy(a[j-1].id,a[j].id);
strcpy(a[j].id,arr);}
}
}
for(i=0;i<n;i++)
printf("%s\n",a[i].id);
return 0;
}
2022年11月24日 23点11分 3
level 13
scanf的%s前加个空格试试
2022年11月25日 00点11分 4
1