#include?<stdio.h>
#include?<string.h>
char?name[10][20];//職工姓名
char?num[10][20];//職工編號
char?number[10]={0,1,2,3,4,5,6,7,8,9};//職工輸出序號
void?input()//輸入職工姓名和職工號。
{
int?i;
printf("\n\n\t請輸入職工的姓名和職工號:\n");
for(i=0;i<10;i++)
{
gets(name[i]);
gets(num[i]);
}
}
void?print()//排序后進(jìn)行輸出
{
int?i,j;
char?t[20];
//排序
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(strcmp(num[j],num[j+1])>0)
{
printf("\ni=%d???,j=%d",i,j);
//排序職工號
strcpy(t,num[j]);
strcpy(num[j],num[j+1]);
strcpy(num[j+1],t);
//排序職工號對應(yīng)的序號
strcpy(t,number[j]);
strcpy(number[j],number[j+1]);
strcpy(number[j+1],t);
}
}
}
//排序后輸出
for(i=0;i<10;i++)
{
printf("\n\t%s\t%s",name[number[i]],num[i]);
}
}
void?scan()//折半法查找
{
}
void?main()
{
input();
print();
scan();
system("pause");
}
3 回答

喬巴之無所不能
TA貢獻(xiàn)4條經(jīng)驗 獲得超1個贊
找到錯誤的地方了,在進(jìn)行定義字符時,
char?number[10]={0,1,2,3,4,5,6,7,8,9};//職工輸出序號
這里和后面不匹配。因為strcpy是進(jìn)行的字符串復(fù)制,復(fù)制時,需要復(fù)制"\0",
如果按照上面的定義,number[10]是表示10個字符,不能表示字符串,所以出現(xiàn)了錯誤。
c語言學(xué)習(xí)路漫漫!
- 3 回答
- 0 關(guān)注
- 1988 瀏覽
添加回答
舉報
0/150
提交
取消