c语言编写程序,输入一个3位整数,打印输出其个位数、十位数和百位数。

如题所述

补充一下 likehei 的,篮圈的地方应该是 > 0 

追问

#include

int main(void) {
int ia;
scanf("%d",&ia);
while(ia>100 && ia1)
{
printf("%d\n",ia%10);
ia=ia/10;
}
}
return 0;
}

这样子行不行

追答

这样也可以的,限定输入是100 ~1000 直接
while(ia>1) 这一句,把 1 改成 0 ,while(ia>0)

追问

那个位数十位数和百位数分别用什么表示?

不是有变量x或y之类的吗

追答

这个并没有将结果赋给变量,直接采用 printf 输出了,ia%10这个就是每位的值

追问

嗯~

谢谢你*^_^* *^_^*

追答

还有什么问题吗

追问

暂时没有了~谢谢咯

追答

如果想将数值存入变量,要在下面语句里面做处理:

while(ia>1)
   {
        printf("%d\n",ia%10);
        ia=ia/10;
   }

追问

怎么处理?

追答

这样的操作,就是保存下每位的数字了,存入了 wei[i] = ia%10;:

#include <stdio.h>
 
int main(void) 
{
   int i[10]={ 0 };  // 存每一位的数字
   int ia;    // 输入的一个数 
   int i=0;            // 数字的位数 
   int ii=0;
   scanf("%d",&ia);
   while(ia>100 && ia<1000)
   {
    while(ia>0)
    {
        wei[i] = ia%10;
    printf("%d\n",ia%10);
        ia=ia/10;
        i++;
    }
   }
   for(ii=0;ii<i;ii++)
    printf("第 %d 位 %d\n",i-ii,wei[ii]);
   
   return 0;
}

追问

回答得很详细~谢谢

追答

不要客气,满意请采纳

追问

我……

我之前已经采纳了likehei的

不好意思

能采纳两个吗?

追答

我也不知道,你试试吧

追问

没有选项了T_T

追答

没关系的,解决问题重要

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-07
#include<stdio.h>
int main()
{int x,g,b,s,b;
printf("请输入一个三位整数\n");

scanf("%d",&x);
b=x/100;
s=(x-b*100)\10;
g=(x-b*100-s*10);
printf("个位数是%d\n十位数是%d\n百位数是%d\n",g,s,b);
return 0;
}追问

怎么会有中文?

追答

中文全部都在printf中,原样输出

追问

不要原样输出

本回答被网友采纳
第2个回答  2013-10-07
#include<stdio.h>
void main(void)
{
int n;
printf("输入一个三位的正整数: ");
scanf("%d",&n);
if((n>999)||(n<100))
{
printf("%d 不是一个三位数\n",n);
return;
}
printf("输入在数 %d,其个位是%d,十位是%d,百位是%d\n",n,n%100,(n/10)%10,n/100);
return ;
}追问

为什么有中文??

追答

不让使用汉字吗,这个没注意,我英文不行,表达不出来啊

追问

不能用中文的

追答

乱改一气,希望不是很乱

#include
void main(void)
{
int n;
printf("Input a three-digit number: ");
scanf("%d",&n);
if((n>999)||(n<100))
{
printf("%d is not a three-digit number\n",n);
return;
}
printf("The number you input: %d\nones digit: %d\ntens digit: %d\nhundreds digit: %d\n",n,n%10,(n/10)%10,n/100);
return ;
}

追问

你好像理解错了……是输出数字不是输出句子~不过还是谢谢你^_^^_^

追答

用while是对任意位数数字的,看这个意思是用scanf输入,取模的计算和printf输出,其它的不需要考虑,用 南京财经大学66 的答案是最合理的,汉字不用考虑,可以用,没关系的

追问

谢谢~我已经找到答案了

辛苦你啦^_^*^_^*

第3个回答  2013-10-07
#include <stdio.h>
 
int main(void) {
int ia;
scanf("%d",&ia);
while(ia>1)
{
printf("%d\n",ia%10);
ia=ia/10;
}
 
return 0;
}

追问

是三位数啊亲

追答

你输入几位就是几位,你可以判断下嘛,或者给个提示

追问

可是老师好像说要用if语句

不是~说错了

好像是要while(x>100∥x<999)

这样子的……

你的方法好像有点高级……我看不懂……

追答

呃,这样吧

#include <stdio.h>
 
int main(void) {
   int ia;
   scanf("%d",&ia);
   while(ia>100 && ia<1000)
   {
    while(ia>1)
    {
        printf("%d\n",ia%10);
        ia=ia/10;
    }
   }
   return 0;
}

追问

为什么还用return0呢?

追答

不喜欢,去掉就是

追问

谢谢^_^*^_^*

追答

我就是为了好看才写的,可以去掉,int main(void)可以直接main()

追问

追答

还有疑问吗?

追问

暂时没有啦

谢谢

第4个回答  2013-10-07
循环%10,/10追问

T_T

???

追答

自己多思考,然后就能理解了

追问

谢谢^_^

相似回答