将数字转换为数字然后在Colum中显示它们从MSD到LSD

时间:2017-03-26 15:01:44

标签: c

我做了一个多达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;
}

1 个答案:

答案 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;
}