
x=-2,2x-5=2×(-2)-5=-9,
2×(-9)-5=-23,
2×(-23)-5=-51,
2×(-51)-5=-107,
∵-107<-100,
∴输出的结果是-107.
故答案为:-107.
根据题意得:若-
| 1 |
| 2 |
解得:x=-12;
若x+3=6,
解得:x=3,
则输入的数为3或-12.
故答案为:3或-12.
它是说 输入x 计算 若结果大于500则 输出
若不大于500 则将运算的结果作为x的值 再次带入计算
这是一个循环 学过编程的话就会好理解了
其他的三个都是带进去算
不满足再算…… 但满足时的输出结果都为656
可以试一下
例如085+1=5(不满足 所以再算一次)
55+1=26(还不满足 所以再算一次)
265+1=131(还不满足 所以再算一次)
1315+1=656(这次满足条件 所以08满足 )
又该过程可知 5 26 131 也满足
如果初值x是方程:
x = 2(xx)-10;
的解,则迭代将是死循环
x = 2 x^2 - 10
2 x^2 - x - 10 = 0
x1=25
x2=-2
改用 别的初值 或 用 别的迭代 法。
(a>b)b++:(++a>4)b++;a+++; //你写的最后一个+是不是没有呀
应该是下面这样的吧
(a>b)b++:( (++a>4) b++ : a++);
顺序很容易理解,C语言标准中明确规定,:为一个顺序点,上面的式子可以简化为:
if (a >b ) b++;
else if (++a > 4) b++;
else a++;
这估计就是二级考试里面的题。真正在写C程序时,: 一般不会嵌套。
欢迎到 0x30 帖吧讨论更多计算机相关的知识 。。
#include
"iostream"
#include
"mathh"
#include
"cstring"
using
namespace
std;
const
int
maxsize=300;
int
trans(char
exp,
char
postexp[]);
double
compvalue(char
postexp);
int
main(int
argc,
char
argv[])
{
char
exp[300],postexp[400];
cout<<"================================================================================";
cout<<"================================================================================";
cout<<"
欢迎你的到来"<<endl;
cout<<"
本程序为求复杂表达式的值的计算器"<<endl;
cout<<"================================================================================";
cout<<"================================================================================";
while
(1)
{
cout
<<"请输入一个表达式:(按0结束本程序)\n";
cin>>exp;
if
(strcmp(exp,"0")==0)
return
0;
if
(trans(exp,postexp)==1)
{
double
res=compvalue(postexp);
cout<<"="<<res<<endl;
}
}
return
0;
}
int
trans(char
exp,
char
postexp[])
/将算术表达式exp转换成后缀表达式postexp
/
{
struct
{
char
data[maxsize];
/存放运算符/
int
top;
/栈指针/
}
op;
/定义运算符栈/
int
i=0;
/
i作为postexp的下标/
int
dh=1;
/
dh==1表示是负号
/
optop=-1;
while
(exp!='\0')
/
exp表达式未扫描完时循环
/
{
switch(exp)
{
case
'(':
/判定为左括号/
optop++;opdata[optop]=exp;
dh=1;
exp++;break;
case
')':
/判定为右括号/
while
(opdata[optop]!='(')
{
postexp[i]=opdata[optop];
optop--;
i++;
}
optop--;
exp++;
dh=0;
break;
case
'+':
case
'-':
/判定为加或减号/
if
(dh==1)
/
+,-是正负号
/
{
if
(exp=='-')
optop++;opdata[optop]='@';
exp++;
break;
}
while
(optop!=-1
&&
opdata[optop]!='(')
{
postexp[i]=opdata[optop];
optop--;
i++;
}
optop++;opdata[optop]=exp;
exp++;
dh=0;
break;
case
'':
case
'/':
/判定为''或'/'号/
while
(opdata[optop]==''
||
opdata[optop]=='/'||
opdata[optop]=='s')
{
postexp[i]=opdata[optop];
optop--;
i++;
}
optop++;opdata[optop]=exp;
exp++;
dh=0;
break;
case
'^':
while
(opdata[optop]=='^')
{
postexp[i]=opdata[optop];
optop--;i++;
}
optop++;opdata[optop]=exp;exp++;dh=0;break;
case
'%':
while
(opdata[optop]=='%')
{
postexp[i]=opdata[optop];
optop--;i++;
}
optop++;opdata[optop]=exp;exp++;dh=0;break;
case
'
':
exp++;
break;
/过滤掉空格/
case
's':
case
's':
if(((exp+1)=='i'
||
(exp+1)=='i')&&((exp+2)=='n'
||
(exp+2)=='n'))
{
optop++;opdata[optop]='s';
exp+=3;
dh=0;
break;
}
else
if(((exp+1)=='q'||
(exp+1)=='q')&&((exp+2)=='r'
||
(exp+2)=='r')&&((exp+3)=='t'
||
(exp+3)=='t'))
{
optop++;opdata[optop]='q';
exp+=4;dh=0;
break;
}
else
{
printf("\n有错误符号s");
return
0;
}
case
'c':
case
'c':
if(((exp+1)=='o'
||
(exp+1)=='o')&&((exp+2)=='s'
||
(exp+2)=='s'))
{
optop++;opdata[optop]='c';
exp+=3;
dh=0;
break;
}
else
{
printf("\n有错误符号s");
return
0;
}
case
't':
case
't':
if(((exp+1)=='a'||
(exp+1)=='a')&&((exp+2)=='n'
||
(exp+2)=='n'))
{
optop++;opdata[optop]='t';
exp+=3;dh=0;
break;
}
else
{
printf("\n有错误符号s");
return
0;
}
case
'e':
case
'e':
if(((exp+1)=='x'||
(exp+1)=='x')&&((exp+2)=='p'
||
(exp+2)=='p'))
{
optop++;opdata[optop]='e';
exp+=3;dh=0;
break;
}
else
{
printf("\n有错误符号s");
return
0;
}
case
'a':
case
'a':
if(((exp+1)=='b'||
(exp+1)=='b')&&((exp+2)=='s'
||
(exp+2)=='s'))
{
optop++;opdata[optop]='a';
exp+=3;dh=0;
break;
}
else
{
printf("\n有错误符号s");
return
0;
}
case
'l':
case
'l':
if(((exp+1)=='o'||
(exp+1)=='o')&&((exp+2)=='g'
||
(exp+2)=='g'))
{
optop++;opdata[optop]='g';
exp+=3;dh=0;
break;
}
else
if(((exp+1)=='n'||
(exp+1)=='n'))
{
optop++;opdata[optop]='n';
exp+=2;dh=0;
break;
}
else
{
printf("\n有错误符号s");
return
0;
}
default:
while
(exp>='0'
&&
exp<='9')
/判定为数字/
{
postexp[i]=exp;i++;
exp++;
}
if
(exp=='')
{
postexp[i]='';
i++;
exp++;
while
(exp>='0'
&&
exp<='9')
/判定为数字/
{
postexp[i]=exp;i++;
exp++;
}
}
postexp[i]='#';
i++;
dh=0;/用#标识一个数值串结束/
}
}
while
(optop!=-1)
/此时exp扫描完毕,栈不空时循环/
{
postexp[i]=opdata[optop];
i++;
optop--;
}
postexp[i]='\0';
/给postexp表达式添加结束标识/
return
1;
}
double
compvalue(char
postexp)
/计算后缀表达式的值/
{
struct
{
float
data[maxsize];
/存放数值/
int
top;
/栈指针/
}
st;
/定义数值栈/
double
d,x;
sttop=-1;
while
(postexp!='\0')
/
postexp字符串未扫描完时循环/
{
switch
(postexp)
{
case
'+':stdata[sttop-1]=stdata[sttop-1]+stdata[sttop];
sttop--;break;
case
'-':stdata[sttop-1]=stdata[sttop-1]-stdata[sttop];
sttop--;break;
case
'':stdata[sttop-1]=stdata[sttop-1]stdata[sttop];
sttop--;break;
case
'/':
if
(stdata[sttop]!=0)
stdata[sttop-1]=stdata[sttop-1]/stdata[sttop];
else
{
printf("\n\t除数不能为零!\n");
return
0;
}
sttop--;break;
case
'^':stdata[sttop-1]=pow(stdata[sttop-1],stdata[sttop]);
sttop--;break;
case
'%':stdata[sttop-1]=fmod(stdata[sttop-1],stdata[sttop]);
sttop--;break;
case
'@':stdata[sttop]=-(stdata[sttop]);
break;
case
's':stdata[sttop]=sin(stdata[sttop]);
break;
case
'c':stdata[sttop]=cos(stdata[sttop]);
break;
case
'q':
if(stdata[sttop]>=0)
stdata[sttop]=sqrt(stdata[sttop]);
else
{
printf("\n\t开方内的数不能小于零!\n");
return
0;
}
break;
case
'e':stdata[sttop]=exp(stdata[sttop]);
break;
case
't':stdata[sttop]=tan(stdata[sttop]);
break;
case
'a':stdata[sttop]=abs(stdata[sttop]);
break;
case
'g':
if(stdata[sttop]>0)
stdata[sttop]=log10
(stdata[sttop]);
else
{
printf("\n\tlog10内的数不能小于等于零!\n");
return
0;
}
break;
case
'n':
if(stdata[sttop]>0)
stdata[sttop]=log(stdata[sttop]);
else
{
printf("\n\tln内的数不能小于等于零!\n");
return
0;
}
break;
default:
d=0;
/将数字字符转换成数值存放到d中/
while
(postexp>='0'
&&
postexp<='9')
/为数字字符/
{
d=10d+(postexp-'0');
postexp++;
}
x=01;
if
(postexp=='')
{
postexp++;
while
(postexp>='0'
&&
postexp<='9')
/为数字字符/
{
d=d+x(postexp-'0');
x=01;
postexp++;
}
}
sttop++;
stdata[sttop]=d;
}
postexp++;
}
return
stdata[sttop];
}
以上就是关于按下面程序计算,若开始输入x的值-2,则输出的结果是______全部的内容,包括:按下面程序计算,若开始输入x的值-2,则输出的结果是______、按如图所示的运算程序进行运算:则当输入的数为______时,运算后输出结果为6、按下面的程序计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)