大神们帮个忙,用C语言解决

从键盘输入十个正整数,并且在屏幕显示该十个数。要求:当键盘输入A的时候,该十个数从大到小排列,当键盘输入B的时候,该十个数从小到大排列

自己编的,不知道哪里错了。总是有一个数字被0给替了

#include<stdio.h>
int main()
{ void sortA(int array[],int n);
  void sortB(int array[],int n);
  int a[10],i;
  char letter;
  printf("请输入10个正整数 :\n");
  for(i=0;i<10;i++)
   scanf("%d,",&a[i]);
   printf("\n");
   printf("请输入字母A或者B :\n");
   scanf("%s",&letter);
   switch(letter)
   { case 'A':sortA(a,10);break;
     case 'B':sortB(a,10);break;
   }
   for(i=0;i<10;i++)
     printf("%d,",a[i]);
     printf("\n");
     return 0;
}
void sortA(int array[],int n)
{ int i,j,k,t;
  for(i=0;i<n-1;i++)
  { k=i;
    for(j=i+1;j<n;j++)
     if(array[j]>array[k])
      k=j;
    t=array[k];array[k]=array[i];array[i]=t; 
  } 
  printf("10个数从大到小的顺序 :\n");
}  
void sortB(int array[],int n)
{ int i,j,k,t;
  for(i=0;i<n-1;i++)
  { k=i;
    for(j=i+1;j<n;j++)
     if(array[j]<array[k])
      k=j;
    t=array[k];array[k]=array[i];array[i]=t; 
  }
  printf("10个数从小到大的顺序 :\n");
}

scanf("%s",&letter);应该用%c

 t=array[k];array[k]=array[i];array[i]=t; 这一堆要放在 if(array[j]>array[k])内部,只有满足这个条件才需要交换

#include<stdio.h>
int main()
{ void sortA(int array[],int n);
  void sortB(int array[],int n);
  int a[10],i;
  char letter;
  printf("请输入10个正整数 :\n");
  for(i=0;i<10;i++)
   scanf("%d,",&a[i]);
   getchar();
   printf("\n");
   printf("请输入字母A或者B :\n");
   scanf("%c",&letter);
   switch(letter)
   { case 'A':sortA(a,10);break;
     case 'B':sortB(a,10);break;
   }
   for(i=0;i<10;i++)
     printf("%d,",a[i]);
     printf("\n");
     return 0;
}
void sortA(int array[],int n)
{ int i,j,k,t;
  for(i=0;i<n-1;i++)
  { 
    for(j=0;j<n-i-1;j++)
     if(array[j]<array[j+1])
     {
        t=array[j];
        array[j]=array[j+1];
        array[j+1]=t; 
    }
  } 
  printf("10个数从大到小的顺序 :\n");
}  
void sortB(int array[],int n)
{ int i,j,t;
  for(i=0;i<n-1;i++)
  { 
    for(j=0;j<n-i-1;j++)
     if(array[j]>array[j+1])
     {
        t=array[j];
        array[j]=array[j+1];
        array[j+1]=t; 
    }
  }
  printf("10个数从小到大的顺序 :\n");
}

 

我测试了没什么问题,题主遇到什么问题,欢迎交流

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m