读取一行整数串进行然后排序,为什么这样写有时可以读取一行就截止,有时能够读到两行才截止呢?
本帖最后由 abclovem 于 2013-09-09 18:19:47 编辑
#include<stdio.h>
int *bubble_sort (int *a, int len);
int main()
{
char ch;
int a[100];
int len, i = 0;
while (scanf("%d", &a[i++]))//(1)
if ((ch = getchar()) == '\n')
break;
else
ungetc(ch, stdin);
len = i;
bubble_sort(a, len);
for (i = 0; i < len; i++)
printf("%d ", a[i]);
}
int *bubble_sort(int *a, int len)
{
int i, j;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++)
if (a[j] > a[j + 1])
a[j] ^= a[j + 1] ^= a[j] ^= a[j + 1];
}
return a;
}