【发布时间】:2014-03-05 16:23:24
【问题描述】:
我正在尝试制作一个简单的人员 ID 及其姓名的排名列表。该列表按 Id 升序排序。
我输入的输入是:
Enter: Id Name (5 time)
9 Ace
5 Bob
6 Cindy
7 Dean
2 Erik
我期望得到的输出是
Sorted id is...
2 Erik
5 Bob
6 Cindy
7 Dean
9 Ace
我目前得到的结果是
Sorted id is...
2 ABCDErik
5 BCDErik
6 CDErik
7 DErik
9 Erik
下面是我目前正在使用的代码。这是一个冒泡排序函数:
int sorting(int n, int *array)
{
int temp;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < (n - i - 1); j++)
{
if (array[j] > array[j + 1])
{
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
还有我的主程序:
int main()
{
int i, j, temp;
int num = 5;
int *id = (int *) malloc(sizeof(int) * 5);
char *name = malloc(sizeof(char) * 10);
printf("Enter: Id Name (5 time) \n");
for (i = 0; i < num; i++)
{
scanf("%d %s", &id[i], &name[i]);
}
sorting(num, id);
printf("Sorted id is...\n");
for (i = 0; i < num; i++)
{
printf("%d \t %s \n", id[i], &name[i]);
}
free(id);
free(name);
return 0;
}
有没有办法让正确的名称与它的 id “链接”?
【问题讨论】: