#include<stdio.h>
void main()
{
int x[10], i, *p, *py;
char ss;
void sort(int a[],int *px);
printf("Please input 10 numbers:\n");
for( i=0; i < 10; i++)
{
scanf("%d", &x[i]);
}
p = x;
sort( x, p );
printf("Please input a or d:\n");
ss = getch();
if( ss == 'a' )
{
for( p=x; p < &x[10]; p++)
{
printf("%d", *p);
}
}
printf("\n");
if( ss == 'd' )
{
for( py=&x[9]; py >= &x[0]; py--)
{
printf("%d", *py);
}
}
printf("\n");
}
void sort(int a[],int *px)
{
int i, j, temp;
for( i=0; i < 10; i++)
{
for( j=i; j < 10; j++)
{
if( a[j] < *px)
{
temp = *px;
*px = a[j];
a[j] = temp;
}
}
px++;
}
}
帮你整理格式花了不少时间,下次注意点格式哦~
getchar()是从键盘缓冲区读取字符,并作为返回值返回的,这里因为前边输入的干扰,键盘缓冲区不正常。
所以if( getchar() == 'a' )读入的是缓冲区里边的内容,当提示输入a或者d的时候程序是停留在if( getchar() == 'd' )的判断上。
因此,会产生输入a不显示任何东西的情况,而输入d正常。
这样我们就不能使用读取缓冲区的函数,改成getch()就可以。 |