用C语言编程 程序功能:输入长整数 n,从高位开始逐位分离并输出。
时间: 2024-03-01 19:49:43 浏览: 142
好的,以下是用C语言编写的程序:
```c
#include <stdio.h>
int main() {
long long n;
printf("请输入一个长整数:");
scanf("%lld", &n);
int digit_count = 0;
long long temp = n;
while (temp > 0) {
digit_count++;
temp /= 10;
}
printf("分离结果为:");
for (int i = digit_count - 1; i >= 0; i--) {
int digit = n / (long long)pow(10, i) % 10;
printf("%d ", digit);
}
return 0;
}
```
程序中,我们首先要求用户输入一个长整数n,然后计算该数字的位数,以便逐位进行输出。在计算位数时,我们可以使用一个临时变量temp来存储n的值,并不断将temp除以10,直到temp小于等于0为止,每次除法操作都表示去掉了n的最低位。
接下来,我们使用for循环从高位到低位依次分离每一位数字,并输出。为了分离每一位数字,我们可以通过计算n除以10的幂次方的余数来得到当前位的数字,同时需要注意n的类型要为long long,否则可能会出现计算错误。
最终输出分离结果即可。
相关问题
C编程实现编程序实现:输入一个不超过9位的非负整数,将其每一位数分离出来,并按照先低位后高位的顺序输出,要求各位数字之间以空格分隔。
下面是C语言的实现代码:
```c
#include <stdio.h>
int main()
{
int num, temp, i, j, k;
int digit[10]; // 数字最多为9位,定义一个长度为10的数组来存储每一位数字
printf("请输入一个不超过9位的非负整数:");
scanf("%d", &num);
temp = num;
i = 0;
while(temp > 0) // 将每一位数字分离出来并存储到数组中
{
digit[i] = temp % 10;
temp = temp / 10;
i++;
}
printf("按照先低位后高位的顺序输出:");
for(j = i - 1; j >= 0; j--) // 倒序输出每一位数字
{
printf("%d ", digit[j]);
}
return 0;
}
```
程序首先提示用户输入一个不超过9位的非负整数,然后通过循环将每一位数字分离出来并存储到数组中。最后,倒序输出数组中的每一位数字。注意,倒序输出时需要从数组的最后一位开始往前遍历。
阅读全文