c语言新手编程错误求解
问题1为什麽无法输出No Answer?/*已知xyz+yzz=n,其中n是一个正整数,x、y、z都是数字(0-9),编写一个程序求出x、y、z分别代表什么数字。如果无解,则输出“No Answer”
注意:xyz和yzz表示一个三位数,而不是表示x*y*z和y*z*z。*/
#include<stdio.h>
int main()
{
int x,y,z,n,flag;
flag=0;
scanf("%d",&n);
for(x=0;x<=9;x++)
{
for(y=0;y<=9;y++)
{
for(z=0;z<=9;z++)
if(12*z+110*y+100*x==n)
{
printf("%4d%4d%4d\n",x,y,z);
flag=1;
}
}
}
if(flag=0)
printf("No Answer\n");
}
问题二
/*在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各n响。已知A舰每个a秒放一次,B舰每隔b秒放一次,C舰每隔c秒放一次。假设各炮手对事件的掌握非常准确,请编程计算观众总共可以听到几次炮声*/
#include<stdio.h>
int main()
{
int n,a,b,c,sum1,sum2,sum3,i,j,k,sum0=0,A,B,C,D,E;
scanf("%d%d%d%d",&n,&a,&b,&c);
for(i=0;i<n;i++)
{
sum1=a*i;
for(j=0;j<n;j++)
{
sum2=b*j;
for(k=0;k<n;k++)
{
sum3=c*k;
}
}
if(sum1==sum2)
{
A++;
{
if(sum2==sum3)
B++;
}
}
if(sum1!=sum2)
{
if(sum3==sum1||sum3==sum1)
C++;
if(sum3!=sum1&&sum3==sum2)
D++;
if(sum3!=sum2&&sum3==sum1)
E++;
}
}
printf("%d",3*n-(A+B+C+D+E));
return 0;
}