鸡兔同笼c语言编程答案_鸡兔同笼c语言编程

互联网   2023-04-15 03:52:15


(资料图片)

1、多次修改后面有个精减版的#include void main( ) { int ret = 0; // 表示最后一个printf的返回值 while(1) { int h,f,c,r; printf("请输入头的数目:"); scanf("%d",&h); printf("请输入脚的数目(必须为偶数):"); scanf("%d",&f); while(f%2!=0 && f != 0 ) //加上一个输入0值继续的条件,这里的while 循环可以不要了,后面的两个循环。

2、再加上if的判断条件,已经解决了这里不为偶数的问题(个人认为,验证过了) { printf("输入脚的数目为奇数。

3、请重新输入脚的数目(必须偶数):"); scanf("%d",&f); } while(f<2*h && h!= 0)//同上 { printf("输入脚的数目过小,请输入脚的数目(必须偶数):"); scanf("%d",&f); /* 在这里加上 if( f %2 != 0) continue; */ /*作用是输入的不是偶数,就要重新输入 */ } while(f>4*h&&h!=0)//同上 { printf("输入脚的数目过大。

4、请输入脚的数目(必须偶数):"); scanf("%d",&f); / * if( f % 2 != 0) continue; */ /*作用同上*/ } for(c=0;c<=h;c++) for(r=1;r<=h;r++) //这句改成:for(r=0; r <= h-c; r++)好点,减少的循环的次数,加了效率 { if(c+r==h&&2*c+4*r==f) ret = printf("鸡的数目为%d,兔子的数目为%d",c,r); } if( ret == 39) /*作用是输入一次成功后。

5、结束大循环, 可以不要*/ break; } } /***********************************************************************/#include void main( ) { int ret = 0; // 表示最后一个printf的返回值 while(1) { int h,f,c,r; printf("请输入头的数目:"); scanf("%d",&h); printf("请输入脚的数目(必须为偶数):"); scanf("%d",&f); while(f%2!=0 && f != 0 && h != 0) //这里的不等于的条件可以不加 { printf("输入脚的数目为奇数,请重新输入脚的数目(必须偶数):"); scanf("%d",&f); if( f > 4h || f < 2h) continue; } for(c=0;c<=h;c++) for(r=1;r<=h;r++) //这句改成:for(r=0; r <= h-c; r++)好点,减少的循环的次数。

6、加了效率 { if(c+r==h&&2*c+4*r==f) ret = printf("鸡的数目为%d,兔子的数目为%d",c,r); } if( ret == 39) /*作用是输入一次成功后,结束大循环, 可以不要*/ break; } }。

本文到此分享完毕,希望对大家有所帮助。

[ 最近更新 ]