#include<stdio.h>
#include<string.h>
struct information{
char name[200];
int old;
int great;
};
int greats(struct information *pr,int n);
int main(void)
{
int n,i,j;
while(~scanf("%d",&n))
{
struct information mes[1005];
for(i=0;i<n;i++)
scanf("%s%d%d",&mes[i].name,&mes[i].old,&mes[i].great);
greats(mes,n);
for(i=0;i<n;i++)
printf("%s %d %d\n",mes[i].name,mes[i].old,mes[i].great);
}
return 0;
}
int greats(struct information *pr,int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(pr[i].great>pr[j].great)
{
temp=pr[i].great;
pr[i].great=pr[j].great;
pr[j].great=temp;
}
if(pr[i].great==pr[j].great)
{
int h=strcmp(pr[i].name,pr[j].name);
char temp[100];
if(h==1)
{
strcpy(temp,pr[i].name);
strcpy(pr[i].name,pr[j].name);
strcpy(pr[j].name,temp);
}
if(h==0)
{
if(pr[i].old>pr[j].old)
{
int temp;
temp=pr[i].old;
pr[i].old=pr[j].old;
pr[j].old=pr[i].old;
}
}
}
}
}
return 0;
}
c语言,运行错误,各位看看
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
信仰869 2021-11-09 15:01关注试一试吧
#include<stdio.h> #include<string.h> struct information { char name[200]; int old; int great; }; int greats(struct information *pr, int n); int main(void) { int n, i, j; while (scanf("%d", &n)) { struct information mes[1005]; for (i = 0; i<n; i++) scanf("%s%d%d", &mes[i].name, &mes[i].old, &mes[i].great); greats(mes, n); for (i = 0; i<n; i++) printf("%s %d %d\n", mes[i].name, mes[i].old, mes[i].great); } return 0; } int greats(struct information *pr, int n) { int i, j; information temp; for (i = 0; i<n-1; i++) { for (j = i + 1; j<n; j++) { if (pr[i].great>pr[j].great) { temp = pr[i]; pr[i] = pr[j]; pr[j] = temp; } if (pr[i].great == pr[j].great) { int h = strcmp(pr[i].name, pr[j].name); //char temp[100]; if (h == 1) { temp = pr[i]; pr[i] = pr[j]; pr[j] = temp; } if (h == 0) { if (pr[i].old>pr[j].old) { temp = pr[i]; pr[i] = pr[j]; pr[j] = temp; } } } } } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报