跪求高人指点c语言课程设计题目。输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。

输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。

第1个回答  2013-10-22
百度上有很多!去查查吧!#include <iostream> #include <string> #include <cmath> using namespace std; const double PRECISION = 1E-6; const int COUNT_OF_NUMBER = 4; const int NUMBER_TO_BE_CAL = 24; double number[COUNT_OF_NUMBER]; string expression[COUNT_OF_NUMBER]; bool Search(int n) { if (n == 1) { if ( fabs(number[0] - NUMBER_TO_BE_CAL) < PRECISION ) { cout << expression[0] << endl; return true; } else { return false; } } for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { double a, b; string expa, expb; a = number[i]; b = number[j]; number[j] = number[n - 1]; expa = expression[i]; expb = expression[j]; expression[j] = expression[n - 1]; expression[i] = '(' + expa + '+' + expb + ')'; number[i] = a + b; if ( Search(n - 1) ) return true; expression[i] = '(' + expa + '-' + expb + ')'; number[i] = a - b; if ( Search(n - 1) ) return true; expression[i] = '(' + expb + '-' + expa + ')'; number[i] = b - a; if ( Search(n - 1) ) return true; expression[i] = '(' + expa + '*' + expb + ')'; number[i] = a * b; if ( Search(n - 1) ) return true; if (b != 0) { expression[i] = '(' + expa + '/' + expb + ')'; number[i] = a / b; if ( Search(n - 1) ) return true; } if (a != 0) { expression[i] = '(' + expb + '/' + expa + ')'; number[i] = b / a; if ( Search(n - 1) ) return true; } number[i] = a; number[j] = b; expression[i] = expa; expression[j] = expb; } } return false; } void main() { for (int i = 0; i < COUNT_OF_NUMBER; i++) { char buffer[20]; int x; cin >> x; number[i] = x; itoa(x, buffer, 10); expression[i] = buffer; } if ( Search(COUNT_OF_NUMBER) ) { cout << "Success." << endl; } else { cout << "Fail." << endl; } }
参考资料:msdn
第2个回答  2013-10-22
用11.2.9.3这四个数加减乘除计算的数是24

c 输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。
float fs[24][4];\/\/all possible permutaions of f float tmp[4]; \/\/used for buf int g_number=0; \/\/number of permutations float RES[4];char op[3];void p(int idx){\/\/求全排列的函数 if(idx==4){ for(int i=0;i<4;++i){tmp[i]=f[sub[i]];} for(int g=0;g...

跪求输入四个数通过 加减乘除计算出24,并显示出计算过程的C语言程序
else if(tem3==1.0\/24.0)printf("%d%c{(%d%c%d)%c%d}=24\\n",save[l],sign[r],save[i],sign[n],save[j],sign[m],save[k]);else if(tem3==-1.0\/24.0)printf("%d%c{%d%c(%d%c%d)}=24\\n",save[l],sign[r],save[k],sign[n],save[i],sign[m],save[j]);el...

...输入4个数,通过加减乘除计算出24,显示计算过程,并提示成功信息...
include "string.h" typedef struct D_NODE { int data;struct D_NODE *left,*right;} NODE24;NODE24 head;int res=24;int maketree(int *src,int *i, NODE24 *p){ int d=src[*i];(*i)++;switch (d){ case '+':case '-':case '*':case '\/':p->left=new NODE24;p->...

...乘除运算计算24,输出这四个数字是否能计算出24,如果能则输出其计算...
for(int k=0;k<4;k++){ cout<<"("<<a<<f.c<<b<<")"<<g.c<<"("<<c<<h.c<<d<<")=24"<<endl;++t;} if ((int)h(f(a,g(b,c)),d)==24)

跪求c++计算24点的程序,要退学啦,求求啦..5555,帮帮小妹
计算24点:任意输入4位自然数,利用+、-、*、\/四则运算使之得到结果24。输出所有不同算法的计算表达式,可为运算优先级而使用括号。注意不要多次输出相同的计算表达式,例如:满足交换... 计算24点:任意输入4位自然数,利用 +、-、*、\/ 四则运算使之得到结果 24 。输出所有不同算法的计算表达式,可为运算优先级而...

...是做一个24点游戏,但是需要用到用户输入加减乘除的运算,谢谢帮忙...
printf("%d %d %d %d\\n",my_rand(),my_rand(),my_rand(),my_rand());}int main(){ char a[128]; char c; char exp[128]; while(1){ my_output(); printf("请使用以上数字及运算符号 +、-、*、\/及括号(和)组成一个计算表达式\\n")...

二十四点算法 原理(比如:3,7,-5,-13用加减乘除每个数只能用一次=24)
2、 有一个括号的简单表达式。3、 有两个括号的较复4、 杂表达式。穷举的开始我对给出的四个数进行排列,其可能的种数为4*3*2*1=24。我利用一个嵌套函数实现四个数的排列,算法如下:\/* ans[] 用来存放各种排列组合的数组 *\/ \/* c[] 存放四张牌的数组 *\/ \/* k[] c[]种四张牌的代号...

怎样用三个数配合四则运算算得24?
利用计算程序来完成这个计算二十四点的程序 方法如下: 首先穷举的可行性问题。我把表达式如下分成三类—— 1、 无括号的简单表达式。 2、 有一个括号的简单表达式。 3、 有两个括号的较复4、 杂表达式。 穷举的开始我对给出的四个数进行排列,其可能的种数为4*3*2*1=24。我利用一个嵌套函数实现四个数的排...

如何利用vb判断四个数字能否计算得出24
Private Function Cal3(a As Integer, i As Integer, b As Integer, j As Integer, c As Integer, k As Integer, d As Integer) As Double Dim rz1 As Double Cal3 = op(a, i, b)rz1 = op(c, k, d)Cal3 = op(Cal3, j, rz1)End Function Private Function Cal4(a As ...

如何学好C语言
学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。 那么,我们如何学好《C程序设计》呢? 一.学好C语言的运算符和运算顺序 这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算...

相似回答