当前位置:首页 >> IT/计算机 >>

转---输入4个数求24点C语言源代码


转---输入 4 个数求 24 点 C 语言源代码
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> char op[3], o[5]="+-*/"; float n[4], on[10]; int used[4] = {0}, top=0, tp=0, x; void chk(float k); int search24(int d); float calc(float n1, float n2, char o); void make(int i, float p, float q, char o, int d); int main( void ) { printf("请输入 4 个整数:\n"); printf("第 1 个数位:"); scanf("%f", &n[0]); printf("第 2 个数位:"); scanf("%f", &n[1]); printf("第 3 个数位:"); scanf("%f", &n[2]); printf("第 4 个数位:"); scanf("%f", &n[3]); search24(0); printf("No answer.\n"); getch( ); return 0; } void chk(float k) { if( (tp != 3) || ( fabs(k-24.0) > 0.001 )) return; for(x=0; x<5; x+=2) printf("%g %c %g = %g\n", on[x], op[x/2], on[x+1], calc(on[x], on[x+1], op[x/2])); getch(); exit(0); } float calc(float n1, float n2, char o) { switch(o) {

case '+': return (n1+n2); case '-': return (n1-n2); case '*': return (n1*n2); case '/': return (n1/n2); } } void make(int i, float p, float q, char o, int d) { if(fabs(q)>0.001 || o!='/') n[i] = calc(p, q, o); op[tp++] = o; chk(n[i]); search24(d+1); tp--; } int search24(int d) { int i, j, k; float p, q; if(d>=3) return 0; for(i=0; i<4; i++) for(j=0; j<4; j++) if( (i!=j)&& (used[i]+used[j] == 0) ) { used[j] = 1; p=n[i]; q=n[j]; on[top++] = p; on[top++] = q; for(k=0; k<4; k++) make(i, p, q, o[k], d); n[i] = p; used[j] = 0; top -= 2; } }


赞助商链接
相关文章:
c语言课程设计 24点
C/C++高级语言程序设计课程设计 设计题目 用数字利用加减乘除计算二十四 ...第三模块 实现输入任意数字的全排列。 2、源代码 2 //=== #include <...
c语言解24点问题课程设计
3. 4. 掌握在该系统上如何编辑、编译、连接和运行一个 C 程序; 24 点穷举...24点游戏C语言源代码 5页 2下载券 ---输入4个数求24点C语... 2页 免费...
C语言基础之24点算法
程序流程框图】输入数据不 符合 判断数 据是否 符合要 求 符合 运行计算 ...24点所有算法 6页 免费 ---输入4个数求24点C语... 2页 免费 C语言基础...
c语言课程设计24点
程序编码、测试等基本方 法和技能; 3) 提高综合运用所学的理论知识和方法独立...---输入4个数求24点C语... 2页 免费 24点游戏C语言源代码 5页 2下载...
更多相关标签: