我正面臨一個問題,即數組中的最高值正在被隨機垃圾負值替換。我無法找到問題。這裏是該程序的完整源代碼 -在氣泡排序中獲得最大值的垃圾值C
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
int num[10],i,choice,counter=1;
printf("\n\n=====Program To Sort Integer Array=====\n\n");
printf("\nPlease Enter 10 Array Elements = \n");
for (i = 0; i < 10; i++)
{
printf("\nPlease Enter The %d Element Of The Array\n", i);
scanf("%d", &num[i]);
}
printf("\n\nHow Would You Like To Sort The Entered Array?\n1. Bubble Sort\n2. Selection Sort\n3. Insertion Sort\n\n");
scanf("%d", &choice);
switch (choice)
{
case 1:{
printf("\nYou Have Selected Bubble Sort\n");
while (counter != 0)
{
counter = 0;
for (i = 0; i < 10; i++)
{
if (num[i]>num[i + 1])
{
int temp=0;
temp = num[i];
num[i] = num[i + 1];
num[i + 1] = temp;
counter++;
break;
}
}
}
printf("\n\nThe Array In Ascending Order Is =\n");
for (i = 0; i < 10; i++)
{
printf("\n%d", num[i]);
}
break;
}
default:
break;
}
_getch();
}
該數組正在部分排序,但最高的數字正在被替換。另外,我正在使用Visual Studio。
在此先感謝
''''''是'9'時,'num [i + 1]'出界了,因爲u循環從0到9 –
在gcc中,它編譯和運行正常 –
@SakthiKumar這是答案,但是你應該將它形成爲OP接受它的答案。 – ThunderGr