学校oj上的问题 实在不知道哪里错了 大佬们能帮我解决一下吗?
#include<stdio.h>int main()
{
int a,b,c,i,r=1,x,y,z,p,k,m[10];
int t=0,q=0;
scanf("%d%d%d",&x,&y,&z);
for(i=1;i<978;i++)
{
a=x*i;b=y*i;c=z*i;
m[0]=a%10;m[1]=a/10%10;m[2]=a/100;m[3]=b%10;m[4]=b/10%10;m[5]=b/100;m[6]=c%10;m[7]=c/10%10;m[8]=c/100;
for(int j=0;j<9;j++)
{ if( m[j]==0 ) {q=1;} } //第一次筛选:m数组存放三个三位数的数字,检查是否有0
if(q==1) continue;
if(q==0) //第二次筛选:没有零的情况下,检查九个数字中有无重复的数字
{
for(p=0;p<8;p++)
{
for(k=p+1;k<9;k++)
{
if(m[k]==m[p]) { r=0;} //有重复的数字,那么r=0
}
}
if(r==0) continue; //如果r=0进行下一轮重复
else { t=1;printf("%d %d %d\n",a,b,c); } // 有符合标准的三个数,t=1
}
}
if(t==0) printf("No!!!");//最后t=0说明一直没有符合标准的三个数
return 0;
}
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。
输入格式
三个数,A B C
输出格式
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
输入 #1
1 2 3
输出 #1
192 384 576
219 438 657
273 546 819
327 654 981
[此贴子已经被作者于2019-11-11 18:22编辑过]