任意给定一个整数x(位数不确定),请编写printNum函数,打印出x的每一个数位上的数字。如923,则打印出 3 2 9

谢谢各位学神
#include <stdio.h>
#include <math.h>

void printNum (int y)

{

//完善此处程序

}

int main()
{
int x;
scanf("%d",&x);
printNum(x);
return 0;
}
输入格式:
scanf("%d",&x);

输出格式:
printf("%2d",num);
输入样例:
923
输出样例:
3 2 9
输入样例:
-100
输出样例:
0 0 1

代码如下:

#include <stdio.h>
#include <math.h>

void printNum(int y)
{
    //完善此处程序
    if (y < 0)
        y = -y;
    do
    {
        printf("%2d", y % 10);
        y /= 10;
    } while (y > 0);
}

int main()
{
    int x;
    scanf("%d", &x);
    printNum(x);
    return 0;
}

直接填就可以?


#include <stdio.h>
#include <math.h>

void printNum (int y)
{
    //完善此处程序
    if (y < 0) y = -y;
    while(y)
    {
        printf("%d\t", y % 10);
        y /= 10;
    }
}

int main()
{
    int x;
    scanf("%d",&x);
    printNum(x);
    return 0;
}

你题目的解答代码如下:

#include <stdio.h>
#include <math.h>

void printNum (int y)
{
    y = abs(y);
    do {
        printf("%d ", y%10);
        y /= 10;
    } while (y>0);
}
int main()
{
int x;
scanf("%d",&x);
printNum(x);
return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

解答如下

img

#include <stdio.h>
#include <math.h>

void printNum (int y)

{
//完善此处程序

while(y) 
{
    printf("%d ",y%10);
    y/=10;
}

}

int main()
{
int x;
scanf("%d",&x);
printNum(x);
return 0;
}

没有通过的原因估计是因为末尾是否有多的空格或者说分隔符,或者对输入0的处理,假定空格为分隔符:

#include <stdio.h>
 
void printNum (int y)
{
/*完善此处程序*/
  if (y<0) y=-y;
  do {  /* 其它人其实都没有注意还可以直接输入0,按while循环输入0就会没有输出,当然不符合条件。*/
     printf("%d",y%10);
     y=y/10;
     if(y>0) printf(" "); /* 表明后续还有数,所以需要间隔。*/
  } while(y>0);
}
 
int main()
{
    int x;
    scanf("%d",&x);
    printNum(x);
    return 0;
}