C语言改进
输入职工姓名和工号;
按工号大小排序。
我的程序有点乱,谁帮我修改下,美化下··才能看懂··
#include <stdio.h>
#include <string.h>
main()
{
char name[10][10],a[10][10];
int num[10],i,j,min,t;
printf("输入职工姓名和工号\n",i+1);
for(i=0;i<10;i++)
{ scanf("%s",&name[i]);
scanf("%d",&num[i]);
}
for(i=0;i<=9;i++)
{min=num[i];
strcpy(a[i],name[i]);
for(j=i;j<=9;j++)
{
if(num[j]<min)
{
min=num[j];
num[j]=num[i];
num[i]=min;
strcpy(a[i],name[j]);
strcpy(name[j],name[i]);
strcpy(name[i],a[i]);
}
}
}
for(i=0;i<10;i++)
{
printf("%s,%d\n",name[i],num[i]);
}
}
答案:#include <stdio.h>
#include <string.h>
main()
{
char name[10][10],a[10];//[10];a的作用只是用作交换
int num[10],i,j,min,t;
printf("输入职工姓名和工号\n",i+1);
for(i=0; i<10; i++)
//{
scanf("%s%d",&name[i],&num[i]);
//scanf("%d",&num[i]);
//}可以合成一行
for(i=0; i<9; i++)//
{
//min=num[i];
//strcpy(a[i],name[i]);这一行都没起到作用
for(j=i+1; j<=9; j++)//
{
if(num[j]<num[i])//
{
min=num[j];
num[j]=num[i];
num[i]=min;
strcpy(a,name[j]);//
strcpy(name[j],name[i]);
strcpy(name[i],a);//
}
}
}
for(i=0; i<10; i++)
{
printf("%s,%d\n",name[i],num[i]);
}
}
上一个:C语言的问题: 文本读取 写入 结构体比较 30QB奖励
下一个:用C编写对排序问题的计时程序(计时有错误)求帮助,谢谢!