1、编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。(20分) a12 b8 c5 12 0 0 * * * ( “*”表示当前状态下每个容器的盛水量) ...... 6 6 0
答案是:
#include "stdio.h"
void main() { int a[3] = {12,0,0}; printf("a12\ta8\ta5\n"); while(a[2]!=6) { if(a[2]==0) { a[2] = 8; a[0] = a[0]-8; a[1] = 12-a[0]-a[2]; } else { if(a[1]!=5) { if(a[2]<5) { a[1] = a[2]; a[2] = 0; } else { a[2] = a[2] - (5 - a[1]); a[1] = 5; } } else { a[1] = 0; a[0] = a[0] + 5; } }
printf("%d\t%d\t%d\n",a[0],a[2],a[1]); } a[0]=a[0]+a[1]; a[1]=0;
printf("%d\t%d\t%d\n",a[0],a[2],a[1]); getch();
}
好久没做C语言题目,突然碰到这道题时,想了好久,都没啥思路后来参考了别人的例子才懂了。不经常做这种题,就没啥思路,所以就会感到无从入手。现在明白了,对于这种问题首先是需要建模,根据跟定的条件进行思考,总结出一些条件,然后再根据这些条件用C语言实现。