0
当我开始交换这段代码的一部分时,我一直有这个问题,所以这段代码做的是输入一个数组并使用冒泡排序方法对它进行排序。读取此文本文件有10个数字和名称。像这样:Bubble Sort in C array swapping
约翰1
标记2
马修2
路3
伊萨克4
凯恩5
瑞恩7
阿贝尔2
亚当9
伊芙10
然而当它打印出来时,它会显示:
约翰1
标记2
马修2
阿贝尔2
阿贝尔3
阿贝尔4
阿贝尔5
阿贝尔7
亚当9
伊芙10
对不起,问题是为什么它重复阿贝尔,我能做些什么来解决它?
void bubbleSort (Word q){
int last = 9;
int Swapped = 1;
int i = 0;
int m = 0;
char* temp = "Hello";
printf("Temp is: %s \n", temp);
int tempA;
while (Swapped == 1){
Swapped = 0;
i = 1;
while (i < last){
printf("%d \n", i);
if (q.data[i] > q.data[i+1]) {
printf("Hello: %d \n", i);
//Copy Name of Element
temp = q.name[i];
strcpy(q.name[i], q.name[i+1]);
strcpy(q.name[i+1] , temp);
//Copy Data of corresponding element
tempA = q.data[i];
q.data[i] = q.data[i+1];
q.data[i+1] = tempA;
Swapped = 1;
}
i = i + 1;
}
last = last - 1;
}
last = 9;
while (m <= last){
printf("Name: %s, Data: %d \n", q.name[m], q.data[m]);
m++;
}
}
要排序依据的'结构data'部件上。所以,你的输出是基于该成员进行排序的。你的问题是什么? – askmish 2015-02-10 07:54:23
@askmish:卢克3似乎从输出中缺失,但我同意这个问题不是很清楚。 – 2015-02-10 07:56:28