【发布时间】:2019-05-15 12:17:59
【问题描述】:
我想对给定的unsortedArray 数组进行排序。在此之前,我需要执行以下步骤。但它总是取数字 9,然后重复数字 8
#include<stdio.h>
int main(){
int unsortedArray[] = {9,8,7,6,5,4,3,2,1};
int arr1[9];
int arr2[9];
int arr1Counter = 0;
int arr2Counter = 0;
int i;int n;
for(i=0; i<9; i++){
// n = unsortedArray[i];
int j;
for(j=0; j<9; j++){
if(unsortedArray[j] != unsortedArray[i]){
if(unsortedArray[j] > unsortedArray[i]){
arr2[arr2Counter] = unsortedArray[i];
arr2Counter++;
}else{
arr1[arr1Counter] = unsortedArray[i];
arr1Counter++;
}
}
}
}
int k;
for(k=0; k<9; k++){
printf("%d ", unsortedArray[k]);
}
return 0;
}
【问题讨论】:
-
最终一段时间后,您将拥有对
arr1和arr2的越界访问权限,这将导致未定义的行为,您会看到它的结果,即unsortedArray内容正在被修改. -
调试器是你最好的朋友。是的,我们可以帮助您,但学习调试是一项很棒的编程技能!