c语言 急救

来源:百度知道 编辑:UC知道 时间:2024/06/17 14:24:32
#include <stdio.h>
void main( )
{ int digit, number, power, t;
printf("Enter an integer:");
scanf("%d", &number);
number = number < 0 ? -number : number;
power = 1;
t=number;
while( t>=10 ){
power *= 10;
t /= 10;
};
printf("The digits are:");
while( power >= 1 ){
digit = number / power;
printf("%d " , digit);
number %= power;
power /= 10;
}
}
我输进去1988 则程序输出1 9 8 8
我有点看不懂这个代码:这里的空格是是怎么实现的?
大家随便说说(当然越详细越好) 看看我的大脑哪里短路了~~~

printf("%d " , digit);
%d后面有空格

#include <stdio.h>
void main( )
{ int digit, number, power, t;
printf("Enter an integer:");
scanf("%d", &number);
number = number < 0 ? -number : number; /*取绝对值*/
power = 1;
t=number;
while( t>=10 ){ /*连除10,比如t=1988/10=198 t=198/10=19 t=19/10=1直到最高位这里t=1,power=1000*/
power *= 10;
t /= 10;
};
printf("The digits are:");
while( power >= 1 ){/*反过来一直循环*/
digit = number / power; /*digit=1988/(1000)=1,digit=988/100=9 digit=88/10=8 digit=8/1=8*/
printf("%d " , digit);
number %= power;
power /= 10;
}
}

case 后面是常量表达式,建议你多看下课本.

真给你雷死
printf("%d " , digit); %d后面不就是空格吗?原样输出啊!
要不,你给它删除试试看!

"%d "
这里多了一个空格
应该是"%d"