将1到9这九个数分成3个三位数,a,b,c,要求 a 是 b 的2倍,a 是 c 的3倍,用C语言编写程序。

2024-11-28 23:48:54
推荐回答(4个)
回答1:

#include
main(void)
{
float a,b,c;
printf("请输入三个数");
scanf("%f %f %f",&a,&b,&c);
if(a/b==2&&a/c==3)
printf("这是b的2倍,C的3倍\n");
}

/*这里我建议用浮点型最合适了
我也是菜鸟误笑我,当你输入
a=9.0 b=4.5 c=3.0
条件都是符合的,也是他么的2倍和3倍
我这里是把数字短小化了,方便看程序
*/

回答2:

#include
#include
#include
void rad(int c[9])
{
srand(time(NULL));
int a[9]={0};
for(int i=0;i<9;i++)
{
a[i]=rand()%10;
loop: for(int j=0;j {
if(a[i]==0||a[i]==a[j])
{
a[i]=rand()%10;
goto loop;
}
}
}
for(int i=0;i<9;i++)
{
c[i]=a[i];
}
}
void main()
{
int a[9];
rad(a);
while(!((100*a[0]+10*a[1]+a[2])==2*(100*a[3]+10*a[4]+a[5])&&(100*a[0]+10*a[1]+a[2])==3*(100*a[6]+10*a[7]+a[8])))
{
rad(a);
}
printf("%d\n",100*a[0]+10*a[1]+a[2]);
printf("%d\n",100*a[3]+10*a[4]+a[5]);
printf("%d\n",100*a[6]+10*a[7]+a[8]);
}
我在运行,结果还没出来,算法是对的,情况太多了,算的时间长。。。

回答3:

这题没有满足的数据!是一个无解的题目!
312 156 104!
318 159 106!
324 162 108!
342 171 114!
348 174 116!
354 177 118!
372 186 124!
378 189 126!
384 192 128!
396 198 132!
426 213 142!
432 216 144!
438 219 146!
456 228 152!
462 231 154!
468 234 156!
486 243 162!
492 246 164!
498 249 166!
516 258 172!
528 264 176!
534 267 178!
546 273 182!
564 282 188!
576 288 192!
582 291 194!
594 297 198!
612 306 204!
618 309 206!
624 312 208!
642 321 214!
648 324 216!
654 327 218!
672 336 224!
678 339 226!
684 342 228!
714 357 238!
726 363 242!
732 366 244!
738 369 246!
756 378 252!
762 381 254!
768 384 256!
786 393 262!
792 396 264!
798 399 266!
816 408 272!
834 417 278!
846 423 282!
852 426 284!
864 432 288!
876 438 292!
894 447 298!
912 456 304!
918 459 306!
924 462 308!
936 468 312!
942 471 314!
948 474 316!
954 477 318!
972 486 324!
978 489 326!
984 492 328!

回答4:

这样试一下,三重循环穷举出所有符合条件的三元组。

#include

void main(void)
{
unsigned char a = 1, b = 1, c = 1;

for( ; a < 10; a++)
for(b = 1; b < 10; b++)
for(c = 1; c < 10; c++) if(2*b == a && 3*c == a)printf("a=%d, b=%d, c=%d\n", a, b, c);
}