我做了一个多达8位的数字,但我失去了如何使用循环制作一个表。 所以,如果数字是12345678,它应该垂直显示 1 2 3 4 五 6 7 8
这就是我所拥有的一些我只想使用列而不是printf \ n来强制它看起来那样
enter code here
int main(int argc, char *argv[]) {
int num, d1, d2, d3, d4, d5, d6, d7, d8, row, col;
do{
printf("enter a number");
scanf("%d", &num);
printf("%d\n", num);
}while (num<0);
d1 =(num/10000000)%10;
printf("%d\n", d1);
d2 =(num/1000000)%10;
printf("%d\n", d2);
d3 =(num/100000)%10;
printf("%d\n", d3);
d4 =(num/10000)%10;
printf("%d\n", d4);
d5 =(num/1000)%10;
printf("%d\n", d5);
d6 =(num/100)%10;
printf("%d\n", d6);
d7 =(num/10)%10;
printf("%d\n", d7);
d8 =num%10;
printf("%d\n", d8);}
return 0;
}
答案 0 :(得分:1)
这是一种方法。你可以使用递归或其他方法,但在我看来这是最简单的。此外,由于您的号码应为8位数,因此您应检查num&gt; = 10000000&amp;&amp; num&lt; 100000000
int d,x=10000000;
while(x>0)
{
d=num/x;
num=num%x;
if(d!=0)
printf("%d\n", d);
x=x/10;
}