来源谭c语言switch和if应用的一个很好的例子!(没想到自己比谭教授写的还精简一些)特来分享一下!

abc罗大侠 2016-03-23 12:05:49
题目:给一个不多于5位数的正整数,要求:
1.求出它是几位数;
2.分别输出每一位数;
3.按逆序输出各位数字。


#include<stdio.h>
int main()
{
int x,indiv,t,h,th,t_th,place;
scanf("%d",&x);
if(x>99999)
printf("It is error.\n");
else if(x>9999)
place=5;
else if(x>999)
place=4;
else if(x>99)
place=3;
else if(x>9)
place=2;
else if(x>=0)
place=1;
else
printf("It is error.\n");//如题按步进行编码,先完成(1)的要求。

t_th=x/10000;
th=(x-t_th*10000)/1000;
h=(x-t_th*10000-th*1000)/100;
t=(x-t_th*10000-th*1000-h*100)/10;
indiv=(x-t_th*10000-th*1000-h*100-t*10);//谭教授的方法



/*indiv=x%10;
t=x/10%10;
h=x/100%10;
th=x/1000%10;
t_th=x/10000;//我的方法*/



switch(place)
{case 1 : printf("它是1位数%d\n",indiv);
break;
case 2 : printf("第2位数是%d\n第1位数是%d\n",t,indiv);
printf("反序数字为");
printf("%d%d\n",indiv,t);
break;
case 3 : printf("第3位数是%d\n第2位数是%d\n第1位数是%d\n",h,t,indiv);
printf("反序数字为");
printf("%d%d%d\n",indiv,t,h);
break;
case 4 : printf("第4位数是%d\n第3位数是%d\n第2位数是%d\n第1位数是%d\n",th,h,t,indiv);
printf("反序数字为");
printf("%d%d%d%d\n",indiv,t,h,th);
break;
case 5 : printf("第5位数是%d\n第4位数是%d\n第3位数是%d\n第2位数是%d\n第1位数是%d\n",t_th,th,h,t,indiv);
printf("反序数字为");
printf("%d%d%d%d%d\n",indiv,t,h,th,t_th);
break;
}//进行第2、3步
return 0;
}



#include<stdio.h>
int main()
{
int x=54321,indiv,t,h,th,t_th;
indiv=x%10;
t=x/10%10;
h=x/100%10;
th=x/1000%10;
t_th=x/10000;
printf("第5位数是%d\n第4位数是%d\n第3位数是%d\n第2位数是%d\n第1位数是%d\n",t_th,th,h,t,indiv);
printf("反序数字为");
printf("%d%d%d%d%d\n",indiv,t,h,th,t_th);
return 0;
}



#include<stdio.h>
int main()
{
int x=54321,indiv,t,h,th,t_th;
t_th=x/10000;
th=(x-t_th*10000)/1000;
h=(x-t_th*10000-th*1000)/100;
t=(x-t_th*10000-th*1000-h*100)/10;
indiv=(x-t_th*10000-th*1000-h*100-t*10);
printf("第5位数是%d\n第4位数是%d\n第3位数是%d\n第2位数是%d\n第1位数是%d\n",t_th,th,h,t,indiv);
printf("反序数字为");
printf("%d%d%d%d%d\n",indiv,t,h,th,t_th);
return 0;
}

以上就是全部部分,我都只用54321试验过,新手水平有限,有什么错误,麻烦指出,谢谢!!!!!!!!!!!!!!!
...全文
282 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-03-24
  • 打赏
  • 举报
回复
4楼的代码好靓!
小灸舞 版主 2016-03-23
  • 打赏
  • 举报
回复
encoderlee 2016-03-23
  • 打赏
  • 举报
回复
wang0635 2016-03-23
  • 打赏
  • 举报
回复
谭的代码好丑
ooolinux 2016-03-23
  • 打赏
  • 举报
回复
不错,多思考,书上的很多例子可以优化和改进,也可以添加新的功能。
abc罗大侠 2016-03-23
  • 打赏
  • 举报
回复
嗯嗯,学到了,但是谭c的这道题在前面,还没讲到数组。
赵4老师 2016-03-23
  • 打赏
  • 举报
回复
#include<stdio.h>
int main() {
    int x,L,i;
    char s[6];
    scanf("%d",&x);
    if(x<0 || 99999<x) {
        printf("0<=x<=99999\n");
        return 1;
    }
    L=sprintf(s,"%d",x);
    printf("它是%d位数\n",L);
    for (i=0;i<L;i++) printf("第%d位数是%c\n",i+1,s[i]);
    printf("反序数字为");
    for (i=L-1;i>=0;i--) printf("%c",s[i]);
    printf("\n");
    return 0;
}
abc罗大侠 2016-03-23
  • 打赏
  • 举报
回复
第一次发有技术性的帖子,感谢!
一、C语言自我YY1)、C语言是许多高级计算机语言的基础,学好C语言能更好的学习其他高级语言,为以后的学习打基础;往深学C语言的话那就是学到C在Linux里的应用,Linux十分强大。2)、C语言是一种计算机程序设计语言。具有高级语言的特点,又具有汇编语言的特点。C语言可作为工作系统设计语言,编系统应用程序,也可以作为应用程序设计语言,编不依赖计算机硬件的应用程序。3)、应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。4)、C语言是面向过程语言,C语言通过windows/linux平台下编译的,是直接运行在windows/linux平台下的,而XX始终是运行在他的虚拟机之上的;所以理论上C语言能做一些相对于比较底层的工作,像XX就不能编Windows病毒。5)、如果要利用编程来做一些windows优化工作的话,建议还是利用C语言C语言是目前世界上流行、使用最广泛的高级程序设计语言6、很多编译器,几乎所有操作系统Windows,Linux,Unix的大部分代码都是C,C在背后做了很多东西的,也许开发游戏用C++,安卓用XX更为合适,图形界面的用其他语言开发效率更高一些(因为他们封装了很多东西),但同样的原因导致略微接近底层的功能其他语言根本干不了!Windows的API都是按照C语言的格式给的,这也很能说明问题!嵌入式开发更是离不了C语言!纵观电脑发展几十年,C语无所不能呀!

69,369

社区成员

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

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