我有一項任務,需要我排序任何隨機數。下面的代碼很奇怪。原因是在點擊運行程序後,如果我在開始時輸入5,它不能正常工作,但是,它可以正確地與其他數字一起工作。請幫我解決這個錯誤。我還附上了照片,以證明我上面所說的。它是代碼塊錯誤嗎?
#include <stdio.h>
int main(){
int howmany,i,temp,swap;
printf("Enter how many numbers you want to sort: \n");
scanf(" %d",&howmany);
int number[howmany];
printf("*** The original numbers *** \n");
for (i=0;i<howmany-1 ;i++){
number[i]=(rand()% 25)+1;
printf("Random number is: %d\n",number[i]);
}
while(1){
swap = 0;
for (i=0;i<howmany-1;i++){
if(number[i]>number[i+1]){
temp = number[i];
number[i]=number[i+1];
number[i+1] = temp;
swap = 1;
}
}
if (swap == 0){
break;
}
}
printf("*** The sorted numbers ***\n");
for (i=0;i<howmany-1;i++){
printf("The sorted number: %d\n",number[i]);
}
}
'
Lundin
@Lundin但只在第一和第三個循環中。第二個是可以的(訪問'number [i + 1]')。 – mch
我只用howmany(而不是howmany-1)試過它,然而,它遇到了同樣的問題,但是,編號爲4. @ –