按下面程序计算,若开始输入x的值-2,则输出的结果是______

按下面程序计算,若开始输入x的值-2,则输出的结果是______,第1张

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=6,

解得: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、按下面的程序计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9470250.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存