输入循环提前结束,之后的代码也不运行了
#include<stdio.h>
struct px
{
char name[20];
int fen;
};
int main()
{
int n,i,j;
struct px cj[n];
struct px t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s,%d",cj[i].name,cj[i].fen);
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(cj[j].fen<cj[j+1].fen)
{
t=cj[j];
cj[j]=cj[j+1];
cj[j+1]=t;
}
}
}
for(i=0;i<n;i++)
printf("%s,%d\n",cj[i].name,cj[i].fen);
return 0;
}
要清空缓存,加一条fflush(stdin);
#include<stdio.h>
struct px
{
char name[20];
int fen;
};
int main()
{
int n,i,j;
struct px cj[n];
struct px t;
scanf("%d",&n);
for(i=0;i<n;i++)
fflush(stdin);
scanf("%s",cj[i].name);
fflush(stdin);
scanf(%d",cj[i].fen);
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(cj[j].fen<cj[j+1].fen)
{
t=cj[j];
cj[j]=cj[j+1];
cj[j+1]=t;
}
}
}
for(i=0;i<n;i++)
printf("%s,%d\n",cj[i].name,cj[i].fen);
return 0;
}
#include<stdio.h>
struct px
{
char name[20];
int fen;
};
int main()
{
int n,i,j;
struct px cj[1000];
struct px t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s %d",cj[i].name,&cj[i].fen);
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(cj[j].fen<cj[j+1].fen)
{
t=cj[j];
cj[j]=cj[j+1];
cj[j+1]=t;
}
}
}
for(i=0;i<n;i++)
printf("%s,%d\n",cj[i].name,cj[i].fen);
return 0;
}
修改如下,供参考:
#include<stdio.h>
#define N 100
struct px
{
char name[20];
int fen;
};
int main()
{
int n, i, j;
struct px cj[N];//修改
struct px t;
scanf("%d", &n);
getchar(); //修改
for (i = 0; i < n; i++)
scanf("%s %d", cj[i].name, &cj[i].fen);//修改 输入以空格作为间隔
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (cj[j].fen < cj[j + 1].fen)
{
t = cj[j];
cj[j] = cj[j + 1];
cj[j + 1] = t;
}
}
}
for (i = 0; i < n; i++)
printf("%s,%d\n", cj[i].name, cj[i].fen);
return 0;
}