这段代码应该怎么修改,才能实现不管用户输入几个整数都能实现升序排列的功能
这样写,供参考:
#include <stdio.h>
#define N 50
int Getint(int a[]);
void Sortint(int a[], int n);
void Printint(int a[], int n);
int main()
{
int a[N], n;
printf("请输入数组元素,元素间以空格间隔,回车键结束输入:\n");
n = Getint(a);
Sortint(a, n);
Printint(a, n);
return 0;
}
int Getint(int a[])
{
int i = 0;
while (scanf("%d", &a[i++]) == 1 && (getchar()) != '\n');
return i;
}
void Sortint(int a[], int n)
{
int i, j, tmp;
for (i = 0;i < n - 1;i++)
{
for (j = i + 1;j < n;j++)
if (a[i] > a[j])
{
tmp = a[i];
a[i]= a[j];
a[j]= tmp;
}
}
}
void Printint(int a[], int n)
{
int i;
for (i = 0;i < n;i++)
printf(i ? " %d" : "%d", a[i]);
printf("\n");
}
排序代码写错了
void Sortint(int a[])
{ int k, p;
int temp;
printf("升序排列:\n");
for (k = 0; k < 9; k++)
for (p = 0; p < 9 - k; p++)
{ if (a[p] > a[p + 1])
{ temp = a[p];
a[p] = a[p + 1];
a[p + 1] = temp;
}
}
for (k = 0; k < 10; k++)
printf("%d ", a[k]);
}