发布网友 发布时间:2023-08-08 00:26
共5个回答
热心网友 时间:2023-09-18 02:49
凑合看吧,你那个哪有问题我还没看出来,我也比较水,你看看我改这个,能用追答已改,整体思路是,先是得到1:2:3的三个数,然后两次循环判断各位数不相等且不得零,相等的话,goto语句回到L1.下面输出的部分,做了一个判定,第三个数的上限设定为987。之后进行判定若第三个数小于987则利用goto语句回到L1,否则程序结束。答案只有四组
a:192 b:384 c:576
a:219 b:438 c:657
a:273 b:546 c:819
a:327 b:654 c:981
程序如下:
#include
void main()
{
int x,y,z;
int str[10];
int s,j=0;//用于冒泡法排序
int a,b,c,d,e,f,g,h,i;
int count,num=0,o=0;//用于计数
x=122;
L1:x++;
y=2*x;z=3*x;
a=x/100;b=(x/10)%10;c=x%10; //把三位数的每一位数字截下来,a,b,c分别为百,十,个位
d=y/100;e=(y/10)%10;f=y%10;
g=z/100;h=(z/10)%10;i=z%10;
str[0]=a;str[1]=b;str[2]=c;str[3]=d;str[4]=e;str[5]=f;str[6]=g;str[7]=h;str[8]=i;
count=9;
for(s=0;s<9;s++)
{
for(j=1;j<9;j++)
{
if(s!=j){
if(str[s]==str[j]||str[s]==0)
{
goto L1;
}
}
}
}
int Num=100*str[6]+10*str[7]+str[8];
int sum=a+b+c+d+e+f+g+h+i;
for(i=0;i<9;i++)
{
if(sum==45){
if(Num<=987)
{
cout<<str[i];
}
if((i+1)%3==0)
{
cout<<" ";
}
}
}
cout<<endl;
if(Num<987){
goto L1;
}
}
热心网友 时间:2023-09-18 02:50
你要先对排序的过程有很清楚的理解,再写代码实现,思维不清晰的情况下写不出什么好东西的。热心网友 时间:2023-09-18 02:50
运行是对的啊
热心网友 时间:2023-09-18 02:51
你的数组定义有问题追问没吧int str[10];怎么会有问题
热心网友 时间:2023-09-18 02:51
算法还需优化追问求高手指导追答不想看