C语言新人,在学指针与数组这一块,某段代码一直有问题,请教!
#include<stdio.h>#define number 5
void swap(int *px, int*py)
{
int temp = *px;
*px = *py;
*py = temp;
}
void bsort(int a[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
{
for (j = n - 1; j > i; j--)
{
if (a[j - 1]> a[j])
swap(&a[j], &a[j - 1]);
}
}
}
int main(void)
{
int i;
int point[number];
printf("input %d people's mark\n", number);
for (i = 0; i < number; i++);
{
printf("%d", i+1);
scanf("%d", &point[i]);
}
bsort(point, number);
for (i = 0; i < number; i++)
{
printf("no.%2d : %d\n", i + 1, point[i]);
}
return 0;
}
我想实现的功能是五个人的分数进行排序,第一个函数是调换值,第二个是冒泡排序。然后从a【0】开始输入,输入五个分数。可是我运行的时候,直接让我输入a【5】的分数了,我的循环明明是从0开始的,而且之后几个数自动变成乱码跳出来了。求教!!