| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 752 人关注过本帖
标题:请高手帮忙看看我这个关于ASCII码排序的程序哪里有错误 ,改怎么改?
只看楼主 加入收藏
budaicidewei
Rank: 1
等 级:新手上路
帖 子:9
专家分:9
注 册:2011-4-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
请高手帮忙看看我这个关于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
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
#include<stdio.h>
#include<malloc.h>
void main()
{
int i,n;
char *p,t;
void compare(char *p);
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)
      getchar();
   }
p=p-(i-2);
for(i=0;i<n;i++)
   {
    compare(p);
    p=p+3*i;
   }
}
void compare(char *p)
{
char t,*q=p;
int i,j;
for(i=0;i<3;i++)
   for(j=0;j<3-i;j++)
     if(*(p+j)>*(p+j+1))
       {
        t=*(p+j);
        *(p+j)=*(p+j+1);
        *(p+j+1)=t;
       }
for(i=0;i<3;i++)
   printf("%c ",*(q+i));
printf("\n");
}

   唯实惟新 至诚致志
2011-04-10 08:47
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:10 
int i,m,n,h;
scanf("%d",&i);
char a[i][i],x;
for(m=0;m<i;m++)
{getchar();
for(n=0;n<i;n++)
scanf("%c",&a[m][n]);}
for(h=0;h<i;h++)
for(m=0;m<i;m++)
for(n=0;n<i-1;n++)
{if(a[m][n]>a[m][n+1])
{x=a[m][n];
a[m][n]=a[m][n+1];
a[m][n+1]=x;}}
for(m=0;m<i;m++)
{for(n=0;n<i;n++)
printf("%5c",a[m][n]);
printf("\n");}
2011-04-10 10:25
快速回复:请高手帮忙看看我这个关于ASCII码排序的程序哪里有错误 ,改怎么改?
数据加载中...
 
   



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

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