免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3191 | 回复: 3
打印 上一主题 下一主题

[C] C程序改错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-11 12:21 |只看该作者 |倒序浏览
请教一个关于c的问题,希望可以帮帮忙。
我想重新排列一个四位数,按照由小到大的顺序。如3972变成2379。
我写了一段代码如下,可是不能实现要求:
#include <stdio.h>
int main()
{
        int a[4];
        int i,j,tmp;
        printf("请输入一个四位数:\n");
        scanf("%d",&a[4]);
    for(i=0;i<3;i++)
        {
                for(j=0;j<3-i;j++)
                {
                        if(a[j]>a[j+1])
                        {
                                tmp=a[j+1];
                                a[j+1]=a[j];
                                a[j]=tmp;
                        }
                }
        }
    printf("%d",a[4]);
    return 0;
}

论坛徽章:
0
2 [报告]
发表于 2013-09-12 10:32 |只看该作者
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int b,a[4];
  5.         int i,j,tmp;
  6.         printf("请输入一个四位数:\n");
  7.         scanf("%d", &b);
  8.                 for (i=0;i<4;i++)
  9.                 {
  10.                         a[i] = b % 10;
  11.                         b /= 10;
  12.                 }
  13.            for(i=0;i<4;i++)
  14.         {
  15.                 for(j=0;j<3-i;j++)
  16.                 {
  17.                         if(a[j]>a[j+1])
  18.                         {
  19.                                 tmp=a[j+1];
  20.                                 a[j+1]=a[j];
  21.                                 a[j]=tmp;
  22.                         }
  23.                 }
  24.         }
  25.     //printf("%d",a[4]);
  26.         b = 0;
  27.         for (i=0;i<4;i++){
  28.                 b = b*10 + a[i];
  29.         }
  30.         printf("%d\n", b);
  31.     return 0;
  32. }
复制代码
新手吧,鼓励下。。。

论坛徽章:
0
3 [报告]
发表于 2013-09-12 14:57 |只看该作者
终于弄懂了,非常感谢你。
但注释处的语句还没弄明白,那是对有零的数的处理吧,但为什么会这样呢,为什么呢。。。回复 2# flyingeagle1015


   

论坛徽章:
0
4 [报告]
发表于 2013-09-12 15:09 |只看该作者
实现的方法
1、将数字的每一位拆分到数组
2、对数组排序
3、将数组中的数组装成一个数字(组装时肯定要恢复一下啊)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP