用c语言写程序,定义一个5位的正整数98423,应输出32489,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字
时间: 2024-06-13 22:07:01 浏览: 16
以下是C语言实现的程序,可以满足您的需求:
```c
#include <stdio.h>
int main() {
int n = 98423, number, daoxu = 0, i;
printf("从个位到最高位依次为:");
for (i = 0; n > 0; i++) {
number = n % 10;
printf("%d ", number);
n /= 10;
daoxu = daoxu * 10 + number;
}
printf("\n它是%d位数\n", i);
printf("倒序输出为%d\n", daoxu);
return 0;
}
```
输出结果为:
```
从个位到最高位依次为:3 2 4 8 9
它是5位数
倒序输出为32489
```
相关问题
给一个不多于5位的正整数,要求使用c语言编程: (1)求出它是几位数; (2)分别输出每一位数字; (3)按逆序输出各位数字,例如原数为321,应输出123.
### 回答1:
答:#include<stdio.h>
int main(){
int a,b,c,d,e;
scanf("%d",&a);
if(a<10)printf("1位数, 分别输出:%d, 逆序输出:%d\n",a,a);
else if(a<100)printf("2位数, 分别输出:%d %d, 逆序输出:%d %d\n",a/10,a%10,a%10,a/10);
else if(a<1000)printf("3位数, 分别输出:%d %d %d, 逆序输出:%d %d %d\n",a/100,a/10%10,a%10,a%10,a/10%10,a/100);
else if(a<10000)printf("4位数, 分别输出:%d %d %d %d, 逆序输出:%d %d %d %d\n",a/1000,a/100%10,a/10%10,a%10,a%10,a/10%10,a/100%10,a/1000);
else printf("5位数, 分别输出:%d %d %d %d %d, 逆序输出:%d %d %d %d %d\n",a/10000,a/1000%10,a/100%10,a/10%10,a%10,a%10,a/10%10,a/100%10,a/1000%10,a/10000);
return 0;
}
### 回答2:
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
// 判断位数
if(num < 10) {
count = 1;
} else if(num < 100) {
count = 2;
} else if(num < 1000) {
count = 3;
} else if(num < 10000) {
count = 4;
} else {
count = 5;
}
printf("这个数是%d位数\n", count);
printf("每一位数字分别是:");
int i;
for(i = 1; i <= count; i++) {
digit = (num % (int)pow(10, i)) / (int)pow(10, i-1);
printf("%d ", digit);
}
printf("\n逆序输出各位数字为:");
for(i = count; i >= 1; i--) {
digit = (num % (int)pow(10, i)) / (int)pow(10, i-1);
printf("%d", digit);
}
return 0;
}
### 回答3:
题目要求使用C语言编程,以下为300字中文回答:
首先,我们需要定义一个整型变量来存储输入的正整数。然后,我们可以使用循环和取余运算来逐位地获取该数的每一位数字。根据题目要求,我们可以定义一个整型数组来存储每一位数字。
在开始之前,我们需要引入stdio.h头文件,以使用输入输出函数。
在程序中,我们可以首先提示用户输入一个不多于5位的正整数,并使用scanf函数将输入的值存储到之前创建的整型变量中。
接下来,我们可以用一个循环来判断该数是几位数。我们可以用一个整型变量count来记录位数,并在每一次循环中进行自增操作。我们可以使用一个while循环,判断该数是否大于10的count次方,如果是,则继续循环,否则,跳出循环。
然后,我们可以用一个for循环来分别输出每一位数字。由于题目要求需要倒序输出每一位数字,所以我们可以从count-1开始循环,直到循环变量i小于0为止。在每一次循环中,我们可以使用取余运算和除法运算,来获取当前位的数字。通过打印输出,我们就可以逐位地输出每一个数字。
最后,我们可以用一个for循环来按逆序输出各位数字。同样,我们从count-1开始循环,直到循环变量i小于0为止。在每一次循环中,我们可以使用取余运算和除法运算,来获取当前位倒序的数字。通过打印输出,我们就可以按逆序输出各位数字。
整个程序的C语言代码如下所示:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
int count = 0;
int temp = num;
while (temp) {
count++;
temp /= 10;
}
printf("该数是%d位数\n", count);
int digits[count];
temp = num;
for (int i = count - 1; i >= 0; i--) {
digits[i] = temp % 10;
temp /= 10;
printf("第%d位数字为:%d\n", count - i, digits[i]);
}
printf("按逆序输出各位数字:");
for (int i = count - 1; i >= 0; i--) {
printf("%d", digits[i]);
}
return 0;
}
```
上述代码使用了整型数组来存储每一位数字,并按逆序输出。根据输入的正整数不同,可以得到不同的结果。通过这个程序,我们可以实现求得正整数的位数,逐位输出和按逆序输出的功能。
5) 给一个不多于5位的正整数 要求:1.求它是几位数 2.分别打印出每一位数字 3.按逆序打印出各位数字. 例如原数为321,应输出123.
这道题目要求我们对一个不多于5位的正整数进行处理,具体要求如下:
1. 求出它是几位数
2. 分别打印出每一位数字
3. 按逆序打印出各位数字
我们可以通过以下步骤来解决这个问题:
```C
// C语言代码
#include <stdio.h>
int main() {
int num, digit, count = 0;
int arr[5];
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
while (num > 0) {
digit = num % 10;
arr[count] = digit;
count++;
num /= 10;
}
printf("它是%d位数\n", count);
printf("每一位数字分别为:");
for (int i = count - 1; i >= 0; i--) {
printf("%d ", arr[i]);
}
printf("\n按逆序输出为:");
for (int i = 0; i < count; i++) {
printf("%d", arr[i]);
}
return 0;
}
```
以上代码中,我们首先定义了变量num、digit和count,其中num用于存储用户输入的数字,digit用于存储每一位数字,count用于记录数字的位数。我们还定义了一个数组arr,用于存储每一位数字。
接下来,我们通过while循环将num的每一位数字存储到数组arr中,并且记录数字的位数。然后,我们分别使用for循环按照逆序和顺序输出数组arr中的数字,从而实现了题目要求的功能。