题目:输入任意四个整数(0到10),运算符只有加减乘除,还有括号每个数只能且必须用一次。要求判断这些表达的结果中是否有24。如果有,输出计算表达式:如输入4,6,1,1 输出 4611 =24 (允许有括号)。
源程序:
现在加注释如下:其中 不显示“can not get 24!” 已经更改,试试吧
#include"stdioh"
#include"iostream"
using namespace std;
int number(int a,int b,int c,int d );
char m[]={'+','-','','/'};//运算符
int main(){
// int a,b,c,d,e,i,n;//定义变量,n没有初始化,应定义为0改为如下
int a,b,c,d,e,i,n=0;//定义变量,n初始化为0
cout<<"please input 4 numbers(1~9):"<<endl;//输出提示信息。
cin>>a>>b>>c>>d;//输入四个数
for(i=0;i<4;i++){//轮换四次,所有可能的运算都包括在内了。
if(i==0)//第一次
{//不交换数值。
if(number(a,b,c,d))
n++;//成功计数加1
}
else //否则交换数值
{ e=a;a=b;b=c;c=d;d=e;
if(number(a,b,c,d))
n++;
}}
if(!n)//没有一次成功
printf("can not get 24!\n");//显示不能构成24点
return 0;
}
//运算子类
class sum{
public:
sum():c('+'){};
double operator() (double x,double y);函数运算符 operator()
char c;//运算符
};
////////////////////////////////////////////////
//计算函数的实现
// C++的函数运算符 operator()可以带任意多个参数,这里带两个参数。
double sum::operator() (double x,double y){
switch(c){ 根据 运算符c ,来实现加减乘除等,不同的运算
case '+':
return x+y;
case '-':
return x-y;
case '':
return xy;
case '/':
if(y==0) return 0xFFFFFFFF;
return x/y;
default:
return 0;
}
}sum f,g,h;//定义三个算子,四个数用完,只要计算三次。
int number(int a,int b,int c,int d ){
(double)a;(double)b;(double)c;(double)d;
int t; t=0;
for(int i=0;i<4;i++)
{
fc=m[i]; //算子f遍历+-/:
for(int j=0;j<4;j++)
{
gc=m[j];//算子f遍历+-/:
for(int k=0;k<4;k++)
{
hc=m[k];//算子f遍历+-/:
if ((int)h(g(f(a,b),c),d)==24) // ((a,b),c),d计算顺序,成功t加1
{ cout<<"(("<<a<<fc<<b<<")"<<gc<<c<<")"<<hc<<d<<"=24"<<endl;++t;}
if ((int)g(f(a,b),h(c,d))==24) // ((a,b) (c,d))计算顺序,成功t加1
{ cout<<"("<<a<<fc<<b<<")"<<gc<<"("<<c<<hc<<d<<")=24"<<endl;++t;}
if ((int)h(f(a,g(b,c)),d)==24) // ((a,(b,c)),d 计算顺序,成功t加1
{ cout<<"("<<a<<fc<<"("<<b<<gc<<c<<"))"<<hc<<d<<"=24"<<endl;++t;}
if ((int)f(a,h(g(b,c),d))==24) // a,((b,c),d)计算顺序,成功t加1
{ cout<<a<<fc<<"(("<<b<<gc<<c<<")"<<hc<<d<<")=24"<<endl;++t;}
}
}
} if(t)
return 1;//t!=0即t>0 至少成功一次
else
return 0;;//t==0即一次也没有成功。
}
因为n没有初始化为0
所以不能计算出24的数字后,不显示“can not get 24!”
#include<stdioh>
float fun(float r,float h,float s)
{s=231416r(r+h);
return 31416rrh;
}
int main()
{float r,h,s,v;
scanf("%f%f",&r,&h);
v=fun(r,h,&s);
printf("表面积=%3f\n体积=%3f\n",s,v);
return 0;
}
源程序量是指在编写某个软件或系统时编写的源代码的行数,它可以用来衡量项目的大小。源程序量可以通过查看源代码文件的行数来测量,也可以使用工具来计算源程序量,如SLOCCount,它可以根据某种语言(如C)来统计源代码文件的行数。源程序量的大小可以用来比较不同项目的大小,可以用来估算项目完成的时间,也可以用来估算项目的成本。
以上就是关于求此C++源程序的详细解读!题目是输入4个数用四则运算计算出24!急!全部的内容,包括:求此C++源程序的详细解读!题目是输入4个数用四则运算计算出24!急!、求完整C程序源代码:使用指针自定义一个函数完成圆柱体表面积及体积的计算,要求表面积由形参带回主函数...、源程序量怎么填写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)