“给一个不多于5位的正整数”那道题有点不明白!

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:47:05
输入一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

#include<stdio.h>
main()
{
int a,b,i;
printf("please input:\n");
scanf("%d",&a);
if(a<10)b=1;
else if(a<100)b=2;
else if(a<1000)b=3;
else if(a<10000)b=4;
else if(a<100000)b=5;
printf("length:%d\n",b);
switch(b)
{
case 1:printf("%d\n",a);printf("%d",a);break;
case 2:printf("%d%d\n",a/10,a%10);printf("%d%d",a%10,a/10);break;
case 3:printf("%d%d%d\n",a/100,a%100/10,a%10);
printf("%d%d%d",a%10,a%100/10,a/100);break;
case 4:printf("%d%d%d%d\n",a/1000,a%1000/100,a%100/10,a%10);
printf("%d%d%d%d",a%10,a%100/10,a%1000/100,a/1000);break;
case 5:
}
getch();
}

就是后面case的部分,看不明白。
额,谢谢大家的答案。这道题就是用C语言实现,就是谭浩强那本书呢。这是我在网上搜到的,我不懂,比如说case 3:printf("%d%d%d&

你的答案是错的。。。

举个例子吧 a=12345 b=5(5位数)
12345%10=5 a的个位=5
12345%100/10=45/10=4 a的十位=4
12345%1000/100=3 a的百位=3
12345/1000%10=2 a的千位=2
12345/10000=1 a的万位=1

printf("%d%d%d%d\n",a,b,c,d);
printf是格式化输出,括号中双引号部分表示输出内容,%d是输出一个整型变量,后面a,b,c,d是对应的变量值,即4个%d的值由4个变量a,b,c,d提供,最后“\n”表示换行,相当于输出一个回车

这是我现编的,用的c++。已经运行过了,没问题的。代码比较简单,而且五位数以上的也使用。

#include<iostream.h>
void main(){
int n,k;
k=0;
cout<<"请输入一个整数:";
cin>>n;
cout<<"逆序输出后为:";
while(n%10!=0){
cout<<n%10;
k=k+1;
n=(n-n%10)/10;
}
cout<<endl<<"此整数为"<<k<<"位数."<<endl;
}

其实这程序写得太麻烦了。用C语言就是繁琐在printf上了,其实用c++中的stack看上去就简单多了。
#include <iostream>
#include <stack>
using namespace std;
int main ()
{
stack <char> ch;

给一个不多于5位的正整数:分别输出他的每一位数字 给一个不多于3位的正整数,求他是几位数(c语言) c++程序设计:给一个不多于五位的正整数要求出它是几位数 用C语言编程:给出一个不多于5位的正整数,判断它是几位数 给一个不多于5位的正整数,求出它是几位数?分别打出每一位数字?按逆顺序打出各位数字?请用C语言编程。 给一个不多于5位的正整数,要求1,求出它是几位数!2分别打印出每一位数字!3按逆序打印出各数字!! 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 写一个程序 读取一个不多于5位数字的正整数 判断它是否为回文数 给一个不多于6位的正整数,要求1)按逆序输出各位数字,例如原数为321,应输出123。 给一个不多于5位的正整数,要求(2)分别打印出每一位数字(3)按逆序打印出各位数字,例原数为321,应输出123.