从高位输出数字
/*程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个整数,从高位开始逐位输出它的各位数字。
输出语句:printf("%-2d", digit); /*有这么几个问题,首先是我这个代码运行的时候一直会有0开头,然后是输入600,只能输出6。
我感觉很多地方还不懂,请大家见谅。提出改进意见,或者是您自己想出来的简单易懂的代码*/
例:括号内是说明
输入
3 (repeat=3)
23456
-600
8
输出
2 3 4 5 6
6 0 0
8
*/
#include <stdio.h>
#include<stdlib.h>
int main(void)
{
int digit, in, power, temp;
int repeat, ri;
int count;
int fact(int n);
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &in);
if(in<0) in=-in;
power=in;count=0;
do{
power=power/10;
count++;}while(power!=0);
temp=in;
while(temp!=0){
digit=temp/fact(count);
printf("%-2d", digit);
temp=temp-digit*fact(count);
count--;
}
}
system("pause");
}
int fact(int n)
{
int i,k;
k=1;
for(i=1;i<=n;i++){
k=k*10;
}
return k;
}