(2)请从键盘输入一个整数,从个位逆序输出各个位上的数字,要求输出时保证每一位间隔两位
逆序输出就是除10取余数输出就可以,n=n/10更新迭代,直到n==0为止,间隔2位用两个空格或者%3d输出就可以了。
写了两种情况代码:
第一种情况(个位数前面没有空格):
代码如下:
#include <stdio.h>
int main()
{
int n, t;
int flag = 1;
scanf("%d", &n);
if (n == 0)
printf("0");
else
{
while (n)
{
t = n % 10;
if (flag == 1)
{
printf("%d", t); //如果个位输出时也需要间隔2位,这个if语句删掉即可
flag = 2;
}
else
{
printf(" %d", t);//%d前面两个空格
}
n /= 10;
}
}
return 0;
}
第二种情况(都有空格间隔)
代码:
#include <stdio.h>
int main()
{
int n, t;
scanf("%d", &n);
if (n == 0)
printf("0");
else
{
while (n)
{
t = n % 10;
printf(" %d", t);//%d前面两个空格
n /= 10;
}
}
return 0;
}
【以下回答由 GPT 生成】
首先,我们可以使用一个循环将整数的每一位数字分离出来,并存储在一个数组中。然后,我们可以逆序遍历该数组,将每一位数字按照要求输出。
下面是一个实现此功能的C代码示例:
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
// 统计整数的位数
int numDigits = 0;
int tempNum = num;
while (tempNum != 0) {
numDigits++;
tempNum /= 10;
}
// 创建一个足够大的数组存储每一位数字
int digits[numDigits];
// 将每一位数字存储在数组中
tempNum = num;
for (int i = 0; i < numDigits; i++) {
digits[i] = tempNum % 10;
tempNum /= 10;
}
// 逆序遍历数组并输出每一位数字
for (int i = numDigits - 1; i >= 0; i--) {
printf("%02d ", digits[i]);
}
return 0;
}
这段代码首先从键盘输入一个整数,然后通过循环统计整数的位数,并将每一位数字存储在数组中。最后,通过逆序遍历数组,并使用printf
函数按照要求输出每一位数字(使用%02d
来保持每一位数字两位间隔)。
你可以将以上代码复制到一个C文件中,编译并运行,然后输入一个整数,程序就会按照要求输出每一位数字的逆序结果。
【相关推荐】