为什么会出现乱码。我找不出哪里错,各位帮我看看!
//冒泡排序法(顺序)
#include
void main()
{
int i, j;
int arr[10];
int swap;
for (i = 0; i < 10; i++)
{
printf("arr[%d]=", i);
scanf("%d", &arr[i]);
}
for (i = 0; i <9; i++)
{
for (j =0; j < 10; j++)
{
if (arr[j]>arr[j+1])
{
swap = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = swap;
}
}
}
for (i = 0; i < 10; i++)
{
printf("%d\t", arr[i]);
if (i == 4)
printf("\n");
}
}
for (j =0; j < 10; j++)
改为j<9
否则j+1就越界了
如果j的取值范围不改,那么后面的判断就应该判断arr[i]>arr[j]而不是arr[j]>arr[j+1]
//冒泡排序法(顺序)
#include <stdio.h>
int main()
{
int i, j;
int arr[10];
int swap;
for (i = 0; i < 10; i++)
{
printf("arr[%d]=", i);
scanf("%d", &arr[i]);
}
for (i = 0; i <9; i++)
{
for (j =0; j < 9 -i; j++)
{
if (arr[j]>arr[j+1])
{
swap = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = swap;
}
}
}
for (i = 0; i < 10; i++)
{
printf("%d\t", arr[i]);
if (i == 4)
printf("\n");
}
return 0;
}