C语言--正确分离一个三位整数的个位,十位,百位。看看这么做是否可以做出,不能请修改。及为什么?

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:03:22
#include<stdio.h>
void main()
{
int A,a,b,c;
printf("请输入一个三位整数A:");
scanf("%d",&A);
A=a*100+b*10+c*1;
if(a>=10||a==0||b>=10||c>=10);
printf("输入错误");
else
printf("%d,%d,%d\n",a,b,c);
}
我知道它有错
但是我要的就是这种理论解出来
如果这种理论成立可不可以把正确的写给我
我知道用取余值的方法可以解出来就不用告述我这种方法啦

谢谢啦

可以做出来,不过运算复杂多了。
就是尝试所有3位数组合。
#include<stdio.h>
void main()
{
int A,a,b,c;
int flag=0;//用来标记是否找到该数
printf("请输入一个三位整数A:");
scanf("%d",&A);
for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
if(A==a*100+b*10+c)
{ printf("%d,%d,%d\n",a,b,c);
flag=1;
break; }

if(flag==0)
printf("输入错误");

}

不对:修改后为
#include<stdio.h>
void main()
{int A,a,b,c;
printf("请输入一个三位整数A:");scanf("%d",&A);
for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
{if(A==a*100+b*10+c*1)
break;}只要条件满足就一定符合题意,不用再判断abc的值是否符合0-10
printf("%d,%d,%d\n",a,b,c);
}
你看这次的算法行不

不能
nt A,a,b,c;//没有认为初始化,默认初始化均为0.
scanf("%d",&A); //执行后A为你输入的数
A=a*100+b*10+c*1;//这里出现问题了,你这样是对A重