当前位置:首页 >> 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语言基础之24点算法_计算机软件及应用_IT/计算机_专业资料。【任务描述】任意输入四个整数,数值范围(1~10) ,只能够用加、减、乘、除以及 适当的括号来进行连接...
c语言课程设计 24点
第三模块 实现输入任意数字的全排列。 2、源代码 2 //=== #include <...%1.0f*%1.0f=24\n",a,b,c,d);} if(a+(b+c)*d==24) {printf("%...
c语言解24点问题课程设计
24 点穷举法的运用 用 C 语言解决 24 点的计算问题 课题进程: 11-12 周:...编一程序,判断对任意给定的 4 张牌(四个数字由玩家输入) ,能 否在进行加、...
用C语言实现24点的算法程序
C语言实现24点的算法程序_IT认证_资格考试/认证_教育专区。南航金城学院数据...T 表示),J,Q,K,A 统一按 1 计算 要求通过加减乘除则运算得到数字 24。...
c语言24点数学运算
c语言24点数学运算_IT/计算机_专业资料。c语言课程...只要我能编程实现四个数加上运算符号所构成的表达式...强制类型转换等都作为运算符处理.从而使 C 的运算类型...
c语言课程设计24点
c语言课程设计24点_演讲/主持_工作范文_实用文档。...其中算式中的四个数字只能是 程序所给的四个数字。...将输入求解的算术表达式转换成后缀表达式的流程图: ...
更多相关标签: