给出一个不超过4位数的正整数,判断它是几位数,并按逆向输出各位数字。
时间: 2023-04-01 18:02:29 浏览: 157
这是一个不超过4位数的正整数,可以通过除以10的余数来判断它是几位数,如果余数为,则是4位数,如果余数不为且商小于10,则是3位数,如果商小于100,则是2位数,否则是1位数。按逆向输出各位数字可以通过不断取余和除以10来实现。
相关问题
C语言输入一个正整数求出它是几位数分别输出每一位数按逆序输出各位数字
这是一个C语言程序,目的是输入一个正整数,然后求出它是几位数,分别输出每一位数,最后按逆序输出各位数字。程序首先通过scanf()函数获取用户输入的数字,然后使用while循环和取模运算符%来逆序输出每一位数字,同时使用计数器i来记录数字的位数。接着,程序使用pow()函数计算出10的i-1次方,然后使用while循环和除法运算符/来正序输出每一位数字。
代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
long long num;
printf("请输入数字:");
scanf("%lld", &num);
long long m;
m = num;//保存num数据用于后面正序输出
int i=0;
int temp = 0;
int sum = 0;
if (num == 0) {
printf("位数为:1\n");
printf("逆序为:0");
printf("正序为:0");
return 0;
}
printf("逆序输出为:");
if (num < 0) {
printf("-");
num = -num;
}
while (num!=0) {
temp = num % 10;
printf("%d", temp);
num/=10;
i++;
}
printf("\n位数为:%d", i);//走完num为0
num = m;
int power = (int)pow(10, i - 1);
printf("\n正序输出为:");
if (num < 0) {
printf("-");
num = -num;
}
while (num != 0) {
sum = num /power;
printf("%3d",sum);
num %= power;
power /= 10;
}
return 0;
}
```
用Switch编写程序,从键盘输入一个不超过+位数的正整数,求出他是几位数,并逆序输出各位数字
您好,这是一个关于编程的问题。可以使用Switch编写程序,从键盘输入一个不超过9位数的正整数,求出它是几位数,并逆序输出各位数字。以下是示例代码:
#include <stdio.h>
int main() {
int num, digit = ;
printf("请输入一个不超过9位数的正整数:");
scanf("%d", &num);
switch(num) {
case ... 9:
digit = 1;
break;
case 10 ... 99:
digit = 2;
break;
case 100 ... 999:
digit = 3;
break;
case 100 ... 9999:
digit = 4;
break;
case 10000 ... 99999:
digit = 5;
break;
case 100000 ... 999999:
digit = 6;
break;
case 100000 ... 9999999:
digit = 7;
break;
case 10000000 ... 99999999:
digit = 8;
break;
case 100000000 ... 999999999:
digit = 9;
break;
default:
printf("输入的数字超过9位数!\n");
return ;
}
printf("输入的数字是%d位数,逆序输出各位数字为:", digit);
while(num > ) {
printf("%d", num % 10);
num /= 10;
}
printf("\n");
return ;
}