匈魔剑kemono roster:请高手帮忙改下这个c程序

来源:百度文库 编辑:高校问答 时间:2024/04/27 16:16:48
题目:从键盘输入一个三位数n,如果存在a,b使得n=ab*ba(其中0〈a〈b〈=9)成立则输出ab。否则显示no answer!
例如:输入976 则输出16 (16*61=976)
输入975 则输出no answer!

main()
{
int n,a,b;
printf("\nInput n:\n");
scanf("%d",&n);
for(a=1;a<9;a++)
for(b=9;b>a;b--)
{
if(n==(a*10+b)*(b*10+a)) printf("%d%d\n",a,b);
}
if(n!=(a*10+b)*(b*10+a))
printf("no answer!\n");
}
现在的问题是:当输入的三位数n有解时也会在后边输出no answer!比如
输入:976
输出:16
no answer!
怎么样改下可以使得符合题目要求,有解时去掉no answer!则有当无解时才执行no answer!的输出……
请自己先运行符合要求时再回!谢谢!

main()
{
int n,a,b;
bool IsYes=false;
printf("\nInput n:\n");
scanf("%d",&n);
for(a=1;a<9;a++)
for(b=9;b>a;b--)
{
if(n==(a*10+b)*(b*10+a)) IsYes=true;
}
if(IsYes) printf("%d%d\n",a,b);
else printf("no answer!\n");
}

强烈支持楼上的!