用C语言设计一个可以连续加减乘除的程序

用C语言设计一个可以连续加减乘除的程序,第1张

#include<stdio.h>

void

main()

{

int

ls/*定义整形

结合字符判断*/

float

as,ss/*定义浮点数*/

char

bs[2],c/*定义字符用于收符号*/

for(int

i=0i++)

/*定察拍携义i=0

建立死循环

每次循环自加1*/

{

printf("请输入数字\n:")

scanf("%f",&as)/*得到一个数*/

if(i!=0&&ls==1)

{as=as+ssprintf("=%f\n",as)}/*判断并非输入的第一个数

并由ls的值判断进行何种运算*/

if(i!=0&&ls==2)

{as=ss-asprintf("=%f\n",as)}

if(i!=0&&ls==3)

{as=as*ssprintf("=%f\n",as)}

if(i!=0&&ls==4)

{as=ss/asprintf("=%f\n",as)}

getchar(c)/*收scanf的回车*/

for()

{

printf("请输入运算符号\n:")

gets(bs)/*得到一个符号*/

if(bs[0]=='=')

printf("%f\n",as)/*如果bs所得是等号

输出as

并要求用户重新输入符号败伏*/

if(bs[0]!='=')

break/*如果不是

跳出死循环*/

}

if(bs[0]=='+')

{ls=1ss=as}/*对符号贺液进行判断

并对ls赋值

新循环会用到*/

if(bs[0]=='-')

{ls=2ss=as}

if(bs[0]=='*')

{ls=3ss=as}

if(bs[0]=='/')

{ls=4ss=as}

}

}

#include<stdio.h>

void main() { int a,n,s,t,i

scanf("%d%d",&a,&n)s=0t=0

for ( i=0i<ni++ ) {

t*=10t+=as-=t

}

s+=ts+=tprintf("%d\n",s)

}

首先这是一个累和的题目,完成方法就是循环做握粗n次,向求和变量s上边加n项,一般循环变量i

其次,观察每项取值之间的关系,这题是每项都是前一项乘以10再加a得到

这题纯镇也没有项顺序关系,每项都是减法,因此可以简化成求累减

每项用一个变量t来算,一开始初值为0,当前项就是t乘以10然后加a,于是第1项为a,第2项为a*10+a=aa,...,循环n次得到最大那个数

具皮迟体到程序,为简单起见,求累减,得到的是-aaa...aaa-...-aaa-aa-a,因此加上两次最大值得到aaa...aaa-...-aaa-aa-a的值输出.

这种多项式求和,一般是要分析每项与前项的关系,或者与循环变量取值之间的关系,每项的符号如果需要的话可以单用一个变量来控制,比较关键的是各变量的初值要赋值正确.

#include <stdio.h>

main (void)

{

int a,b,c

char op

scanf ("%d%c%d",&a,&op,&b)//最好空格去掉,这样就可以直接写成a+b或者a-b。如果有空格的话要记得空格也要打a + b。要不会出现错误 ,而且输入的时候需要用地址枯野唯符&····

if(op=='+')

{c=a+b}

if(op=='-')

{c=a-b}

printf("%d%c%d=%d\n",a,op,b,c)//楼主这句应该放在脊厅数据处理完后。。要不你输出的a,op,b都是在没处理过的数,也就是原来的值,而且最好是把,去掉,这样更美观 ,而且printf后面不需要&。没培。。切记。而且没必要那样输出。请楼主看我的printf```

}

还不清楚 来hi我


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

原文地址:https://54852.com/yw/12360845.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存