多组输入!!!!!!!输入10个数,根据提示进行从小到大输出或从大到小输出

从键盘输入一个字符和10个整数,若输入字符是'A',将这10个数按从小到大的顺序输出;若输入字符是'D',则按从大到小输出;若输入其他字符,就结束。
Input
多组测试数据,每组输入10个整数和一个字符
Output
输出排序数列
Sample Input
A 15 2 3 0 4 8 9 1 20 10
D 15 2 3 0 4 8 9 1 20 10
Sample Output
0 1 2 3 4 8 9 10 15 20
20 15 10 9 8 4 3 2 1 0

我的代码
#include
int main()
{
int a[10],i,j,t;
char b;
while(1)
{
b=getchar();
for(i=0;i<10;i++)
scanf("%d",&a[i]);

for (j=0;j<9;j++)
{
for(i=0;i<10-j;i++)
if (a[i]>a[i+1])
{
   t=a[i];
   a[i]=a[i+1];
   a[i+1]=t;
       }

    }
    if(b=='A')  
    {
        for(i=0;i<10;i++)
         printf("%d ",a[i]);
         printf("\n");
     }
     else if(b=='D')
     {
         for(i=9;i>=0;i--)
         printf("%d ",a[i]);
          printf("\n");
     }

}

return 0;
}
怎么多组输入字符和数字一起

这不就是用键盘事件来控制数组的升序还是降序啊!

这样的输入数据应该是不对的,无法检测它是否读取完。所以在结尾应该再加一个回车:

A 15 2 3 0 4 8 9 1 20 10
D 15 2 3 0 4 8 9 1 20 10
(这一行是一个回车或一个字符)

 #include<stdio.h>
int main()
{
    int a[11],i,j,t;
    char b;
    while(scanf("%c",&b)!=EOF)
    {
        if(b!='A'&&b!='D') break;
        for(i=1;i<=10;i++)
            scanf("%d",&a[i]);
        for (j=10;j>=2;j--)
        {
            for(i=1;i<=j-1;i++)
            if (a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }

        }
        if(b=='A')
        {
            for(i=1;i<=10;i++)
                printf("%d ",a[i]);
            printf("\n");
        }
        else if(b=='D')
        {
            for(i=10;i>=1;i--)
                printf("%d ",a[i]);
            printf("\n");
        }
        getchar();
    }
    return 0;
}