从键盘输入n(n<10)个整数,然后根据提示选择输入’A’或者’D’,如果输入为’A’,将这6个数按从小到大的顺序输出;如果输入为’D’,则按从大到小的顺序输出。
求大神看看我这个程序哪里错了,ch没赋上值,
如果把
printf("Input A or D: ");
scanf("%s",&ch);
放在char ch; 之后,就能赋上值 程序可以运行了,但不是题目要求的输入顺序了
我的程序:
#include<stdio.h>
void swap2(int*,int *);
void bubble(int a[],int n);
int main(void)
{
int a[10];
int i=0,n;
char ch;
printf("Input n: ");
scanf("%d",&n);
printf("Input %d integers: ",n);
while(i<n)
{
scanf("%d",&a[i]);
i++;
}
printf("Input A or D: ");
scanf("%s",&ch);
if(ch=='A'){
bubble(a,n);
printf("After sorted:");
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
else
{
bubble(a,n);
printf("After sorted:");
for(i=n-1;i>-1;i--)
printf("%d ",a[i]);
}
return 0;
}
void bubble(int a[],int n)
{
int i,j,t;
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1]){
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
运行结果: