大佬我哪里错了,要让字母从小到大输出。


执行不了。

#include<stdio.h>
 char a[10];
int main()
{
 void y();
 printf("请输入一串字符:");
 scanf("%s",a);
 y();
 printf("%s",a);
 return 0;
 } 
 
void y()
 {
  int i,j;
  char x;
  for(i=9;i>=1;i--)//9ci
  for(j=1;j<=i;j++)
   if(a[j-1]>a[j])
   {
    a[j-1]=x;a[j-1]=a[j];a[j]=x;
    } 
 }


Anmaster
浏览 1311回答 1
1回答

习惯受伤

大致有四个问题,1,void y();是函数声明语句,应该放在main函数外边。2,y这个函数内的排序算法有问题,你可以将数字带入程序做个测试。3,循环的起始值应该是0,而不是1,因为c语言的下标是从零开始。4,i=9那一句,逻辑有问题,你确定你输入的字符串长度正好是9个吗?如果不是就改成len(a)。
打开App,查看更多内容
随时随地看视频慕课网APP