| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 752 人关注过本帖
标题:请高手帮忙看看我这个关于ASCII码排序的程序哪里有错误 ,改怎么改?
取消只看楼主 加入收藏
budaicidewei
Rank: 1
等 级:新手上路
帖 子:9
专家分:9
注 册:2011-4-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
请高手帮忙看看我这个关于ASCII码排序的程序哪里有错误 ,改怎么改?
请高手帮忙看看我这个关于ASCII码排序的程序哪里有错误 ,改怎么改?我运行了,结果总是每行输出一个或者两个字母,不是三个,如果有重大错误,请给个好的答案。
题目如下:
ASCII码排序
描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
3
qwe
asd
zxc
样例输出
e q w
a d s
c x z
我写的程序是:
#include<stdio.h>
#include<malloc.h>
void main()
{
 int i,n;
 char *p,t;
 void compare(char a[3]);
 printf(" please input n=");
 scanf("%d",&n);
 p=(char *)malloc(3*n*sizeof(char));
 printf("Please input the nums:\n");
 for(i=1;i<=(3*n);i++)
   {
    scanf("%c",p++);
    if(i%3==0)
      scanf("\n",&t);
   }
 p=p-i;
 for(i=0;i<n;)
   {
    compare(p);
    ++i;
    p=p+3*i;
   }
}
void compare(char a[3])
{
 char t;
 int i,j;
 for(i=0;i<3;i++)
   for(j=0;j<3-i;j++)
     if(a[j]>a[j+1])
       {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
       }
 for(i=0;i<3;i++)
   printf("%c",a[i]);
 printf("\n");
}
搜索更多相关主题的帖子: 答案 
2011-04-09 23:37
快速回复:请高手帮忙看看我这个关于ASCII码排序的程序哪里有错误 ,改怎么改?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044698 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved