Anxiaoye


私信TA

用户名:Anxiaoye

访问量:20045

签 名:

我,,,又回来啦

等  级
排  名 2629
经  验 2220
参赛次数 0
文章发表 11
年  龄 22
在职情况 学生
学  校 anHui
专  业 计科

  自我简介:

keep keep keep

TA的其他文章

C语言复习(一)
浏览:2332
C语言复习(二)
浏览:237

原题链接:C语言程序设计教程课后习题5.7

大致思路:


  * 对输入的数据做取余运算,在所取对应位的余数不为零时,输出位数、每位数的数值,及反序的数。


  * 值得注意的是,要区分好逻辑关系,当输入的数大于5位时,就不符合题目条件,就得重新输入一个符合条件的数。

  * 如下是我参考别人的代码,然后改了部分逻辑关系,自己加了部分,总体还是符合逻辑要求,只是代码有很大部分重复,我想过用函数或者数组来简化重复的代码,只是暂时还没想好。

  * 如果大家有什么更好的想法,欢迎在评论区分享

   


参考代码:

#include<stdio.h>  
int main()  
{  
    int a,g,s,b,q,w,m;  
    scanf("%d",&a); 
    if(a<0||100000<=a)
        printf("请重新输入");
    else{
        w=a%100000/10000;  
        q=a%10000/1000;  
        b=a%1000/100;  
        s=a%100/10;  
        g=a%10; 
        if(w!=0){
            m=g*10000+s*1000+b*100+q*10+w;
            printf("5\n%d %d %d %d %d\n%d",w,q,b,s,g,m) ; 
        }
        else if(q!=0) {
            m=g*1000+s*100+b*10+1;
            printf("4\n%d %d %d %d\n%d",q,b,s,g,m) ;  
        }
        else if(b!=0) {
            m=g*100+s*10+b;
            printf("3\n%d %d %d\n%d",b,s,g,m) ;  
        }
        else if(s!=0){
            m=g*10+s;
            printf("2\n%d %d\n%d",s,g,m) ; 
        }
        else {
            m=g;
            printf("1\n%d\n%d",g,m) ; 
        }
    }
}


 

0.0分

1 人评分

  评论区

嗯嗯,学习了一下你的代码,我在想,它是默认整数是正整数吗?
2019-11-05 20:19:30
  • «
  • 1
  • »