写一个函数,用“起泡法”对输入的10个字符按由小到大顺序排序?

xiaoduirenshen 2009-07-19 02:40:10
俺编了这个程序:
#include<stdio.h>
void main()
{char a[10];
int i,j,temp;
printf("enter ten chars:\n");
for(i=0;i<10;i++)
scanf("%c",&a[i]);
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
printf("the sorted chars:\n");
for(i=0;i<10;i++)
printf("%c",a[i]);
printf("\n");
}
输入:a f w s d j h k y u
运行输出结果:adfsw
我明明是输入的10个字符,而输出的却是5个从小到大的字符,这是为什么呀??
请高手帮俺解答??
谢谢!!!
...全文
9055 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxdcxp 2009-07-20
  • 打赏
  • 举报
回复
结贴率为0牛哦,以后看还有谁回答
东大坡居士 2009-07-20
  • 打赏
  • 举报
回复
就是就是哈~
djj2007 2009-07-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xiaoduirenshen 的回复:]
一楼的楼主说得就是我犯的那个错,我在输入的时候,我没用空格了,结果输出正是题目的要求。
谢谢你们了哈!!!
[/Quote]

你都谢谢了,也不结贴就跑了啊。。。
crazy_long 2009-07-20
  • 打赏
  • 举报
回复
汗啊。。我运行的是对的啊。。。可能是编译器的问题?
xiaoduirenshen 2009-07-20
  • 打赏
  • 举报
回复
一楼的楼主说得就是我犯的那个错,我在输入的时候,我没用空格了,结果输出正是题目的要求。
谢谢你们了哈!!!
xiaoduirenshen 2009-07-20
  • 打赏
  • 举报
回复
一楼的楼主说得就是我犯的那个错,我在输入的时候,我没用空格了,结果输出正是题目的要求。
谢谢你们了哈!!!
xiaoduirenshen 2009-07-20
  • 打赏
  • 举报
回复
一楼的楼主说得就是我犯的那个错,我在输入的时候,我没用空格了,结果输出正是题目的要求。
谢谢你们了哈!!!
whatstheweather 2009-07-19
  • 打赏
  • 举报
回复
不好,我看错了
whatstheweather 2009-07-19
  • 打赏
  • 举报
回复
数组只能放9个数,你输十个干嘛
whatstheweather 2009-07-19
  • 打赏
  • 举报
回复
//for(i=0;i <10;i++)while((c =getchar())!=EOF)
a[i++] = c;

既然 for 了还用while : 双重循环呀
fx397993401 2009-07-19
  • 打赏
  • 举报
回复
当然 你不能弄空格在你的输入字符串中 原因 正如一楼所说
fx397993401 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiaoduirenshen 的回复:]
俺编了这个程序:
#include <stdio.h>
void main()
{char a[10];
int i,j,temp;
printf("enter ten chars:\n");
char c ;
i = 0;
//for(i=0;i <10;i++)while((c =getchar())!=EOF)
a[i++] = c;
//scanf("%c",&a[i]);
for(j=0;j <9;j++)
  for(i=0;i <9-j;i++)
  if(a[i]>a[i+1])
    { temp=a[i];
      a[i]=a[i+1];
      a[i+1]=temp;
      }
      printf("the sorted chars:\n");
  for(i=0;i <10;i++)
  printf("%c",a[i]);
  printf("\n");
  }
  输入:a f w s d j h k y u
  运行输出结果:adfsw
  我明明是输入的10个字符,而输出的却是5个从小到大的字符,这是为什么呀??
  请高手帮俺解答??
  谢谢!!!
[/Quote]

记住 输完是个字符厚 按 ctrl + z 输入结束符
usr_src 2009-07-19
  • 打赏
  • 举报
回复
根本不是那个事~~!!你自己试过没??
sencedong 2009-07-19
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{char a[10];
int i,j,temp;
printf("enter ten chars:\n");
for(i=0;i <10;i++)
scanf("%c",&a[i]);
for(j=0;j <9;j++)
for(i=0;i <=9-j;i++) //这里加个=
if(a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
printf("the sorted chars:\n");
for(i=0;i <10;i++)
printf("%c",a[i]);
printf("\n");
}

至于你那个问题,等别人修改。
huobing002 2009-07-19
  • 打赏
  • 举报
回复
tongtiloushang
usr_src 2009-07-19
  • 打赏
  • 举报
回复
空格算一个字符啊!!

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧