急求急急急急急求,急求用C语言编写一个计算器程序,代码量为三百行左右!!!!!在线等

作者&投稿:尤磊 (若有异议请与网页底部的电邮联系)
急求急急急急急求,急求用C语言编写一个计算器程序,代码量为三百行左右!!!!!~

不难,搞个矩阵按键,然后对按键进行编号,然后根据输入的信号来判断加减乘除,进行运算就好了!

#include
#include
#include
float add(float x,float y)
{
x=x+y;return x;
}
float sub(float x,float y)
{
x=x-y;return x;
}
float mul(float x,float y)
{
x=x*y;return x;
}
float div(float x,float y)
{x=x/y;return x;}
void print()
{ printf(" /********欢迎使用精益计算机 ********/
");
printf(" /******输入模式a+-*/b*****/
");
printf(" /******输入字符c清屏*****/
");
printf("请输入数据:");
}
void main()
{char i;
float a,b,c,d;
print();
loop: cin>>a;//scanf("%f",&a);
while(1)
{cin>>i;if(i!='c')cin>>b;//scanf("%c%f",&i,&b);
{switch(i)
{ case '+':{c=add(a,b);a=c;printf("=%0.1f",c);}break;
case '-':{c=sub(a,b);a=c;printf("=%0.1f",c);}break;
case '*':c=mul(a,b);a=c;printf("=%0.1f",c);break;
case '/':c=div(a,b);a=c;printf("=%0.1f",c);break;
case 'c' : system("cls");print();goto loop;break;

}
}
}
}

#include <stdlib.h>#include <stdio.h>#include <string.h>#define MAXOP 100#define NUMBER '0' //标识读入的是数字#define NAME 'n' //标识读入的是字符串(函数名或非法字符串)#define ALPHA 26 int getop(char []);
void push (double); //压栈double pop(void); //出栈void clear(void); //清空栈void mathfnc(char []); //执行相应的数学函数sin、cos、exp等int main(void)
{ int type; int i, var = 0; double op1, op2,v; char s[MAXOP]; double variable[ALPHA]; for (i = 0; i < ALPHA; i++) //初始化用于保存数值的变量数组
variable[i] = 0.0; while ((type = getop(s)) != EOF) //读取输入
{ switch (type)
{ case NUMBER:
push (atof(s)); break; case NAME:
mathfnc(s); break; case '+':
push (pop() + pop()); break; case '*':
push (pop() * pop()); break; case '-':
op2 = pop();
push (pop() - op2); break; case '/':
op2 = pop(); if (op2 != 0.0)
push (pop() / op2); else
printf ("error: zero divisor\n"); break; case '%':
op2 = pop(); if (op2 != 0.0)
push (fmod(pop(), op2)); else
printf ("error: zero divisor\n"); break; case '?': //打印栈顶元素
op2 = pop(); printf ("\t%.8g\n", op2);
push (op2); break; case '=': //保存数值
pop(); if (var >= 'A' && var <= 'Z')
variable[var - 'A'] = pop(); else
printf ("error: no variable name\n"); break; case 'c':
clear(); break; case 'd': //复制栈顶元素
op2 = pop();
push(op2);
push(op2); break; case 's': //交换栈元素
op1 = pop();
op2 = pop();
push(op1);
push(op2); case '\n':
v = pop(); //v保存最后的一次结果
printf ("\t%.8g\n", v); break; default: if (type >= 'A' && type <= 'Z')
push(variable[type - 'A']); else if (type == '@') //输入的字符@表示最近一次结果值
push(v); else
printf ("error: unknown command %s\n", s); break;
}
var = type;
} return 0;
}/* ----------------------------------------------------------- */#define MAXVAL 100int sp = 0; //标识栈顶double val[MAXVAL];void push(double f)
{ if (sp < MAXVAL)
val[sp++] = f; else
printf ("error: stack full, can't push %g\n", f);
}double pop(void)
{ if (sp > 0) return val[--sp]; else
{ printf ("error: statck empty\n"); return 0.0;
}
}void clear(void)
{
sp = 0;
}void mathfnc (char s[])
{ double op2; if (strcmp (s, "sin") == 0)
push(sin(pop())); else if(strcmp (s, "cos") == 0)
push(cos(pop())); else if(strcmp (s, "exp") == 0)
push(exp(pop())); else if(strcmp (s, "pow") == 0)
{
op2 = pop();
push (pow(pop(), op2));
} else
printf ("error: %s not supported\n", s);
}/* ----------------------------------------------------------- */#include <ctype.h>int getch(void);void ungetch(int);int getop(char s[])
{ int i, c; while ((s[0] = c = getch()) == ' ' || c == '\t') //过滤开头的空白字符
;
s[1] = '\0';

i = 0; if (islower(c)) //判断是否为小写字母,也即读取由小写字母组成的字符串
{ while (islower(s[++i] = c = getch()))
;
s[i] = '\0'; if (c != EOF)
ungetch(c); if (strlen (s) > 1) return NAME; else
return c;
} if (!isdigit(c) && c != '.' && c != '-') return c; if (c == '-') //用于判断是负数还是减操作
{
if (isdigit(c = getch()) || c == '.')
s[++i] = c; else
{ if (c != EOF)
ungetch(c); return '-';
}
} if (isdigit(c)) //收集整数部分
while (isdigit(s[++i] = c = getch()))
; if (c == '.') //收集小数部分
while (isdigit(s[++i] = c = getch()))
;

s[i] = '\0'; if (c != EOF)
ungetch(c); return NUMBER;
}/* ----------------------------------------------------------- *//*
* 引用以下两个函数是因为:程序不能确定它已经读入的输入是否足够 *
* 除非超前多读入一些输入,在本程序中,读入一些字符合成一个数字 *
* 所以在看到第一个非数字字符之前,已经读入的数的完整性是不能确定的
* 由于程序要超前读入一个字符,这样就导致最后又一个字符不属于当前所要读入的数
*/#define BUFSIZE 100char buf[BUFSIZE];int bufp = 0;int getch(void)
{ return (bufp > 0) ? buf[--bufp] : getchar();
}void ungetch (int c)
{ if (bufp >= BUFSIZE) printf ("ungetch: too many characters\n"); else
buf[bufp++] = c;
}


急求急求急求解答~十万火急啊……帮帮忙啊 在线等待~快快快快
1\/4的倒数与它本身的最简整数比是(16:1 ),比值是(16 )。一个数的3\/8是45,那么它的5\/6是( 125 )。六年级有学生90人,男生与女生人数的比是5:4,女生有( 40 )人 5立方分米80立方厘米=( 5080 )立方厘米 3\/8升=( 375 )毫升 0.5除以1.5=(1 )\/...

求一部电影,急!!
故事梗概是,几个潜水员进入到一个博士发现的水下的深洞,结果发现里面有一只类似大鼹鼠之类的变异怪物,被咬的人的神经系统会被这只怪物身上的寄生虫感染也会发生变异,就只看到这个地方,结局好像是只有两个人还是几个人逃出来,这部电影叫什么名字啊?急急急急急急急!!! 展开  我来答 3个回答 #国庆必看# ...

初二数学,急急!!已知一个直角三角形的斜边于一条直角边的和为8,差为2...
设斜边长x,直角边长y,则x+y=8,x-y=2;解方程组得x=5,y=3,由勾股定理得,另一直角边长为4.

求动画,急求~!急!(动漫中毒)
青空下的约定 岛的另一个高台上是以前学校的旧校舍,现在被改造成了学生宿舍。宿舍里的人已经很少了,现在几乎只有主人公和女主角们住在这个宿舍中。岛上的住民们戏称那里是主人公的后宫。就在这种时候宿舍来却来了一个转校生,于是平常普通的日子发生了改变,他们将快乐的度过每一天 H2O沙中足迹 描...

急!!!一个角的补角比它的余角的3倍小10度,求这个角的度数
这个可以用一元一次方程来解答.设所求的角为X度 那么X角的补角等于(180-X), X角的余角等于(90-X)列出方程 3(90-X)-(180-X)=10 简化后得出 X=40 所以这个角等于40度

知道一个圆柱的底面积,怎么求底面周长?急!!!坐等答案中。。。
答:底面积=πR²R²=底面积÷3.14 开平方得到R 底面周长=2πR

急,已知a+b=-2,ab=-2.5,求a(a+b)(a-b)-a(a+b)^2的值
a(a+b)(a-b)-a(a+b)^2 =a(a+b)[(a-b)-(a+b)]=a(a+b)(-2b)=-2ab(x+b)=-2×(-2.5)×(-2)=-10

求个祝生日快乐的藏头诗,祝杜晓艳生日快乐。急~~~谢谢各位大人啦...
祝融声里芙蕖开 杜宇轻啼燕归来 晓月清风拂玉貌 艳若桃李赛花娇 生逢盛世迎华诞 日影西斜客云集 快哉相识对饮酒 乐海无涯情悠悠

...黑色的,好像是眼镜蛇,不过没有花纹,应该不是眼镜王蛇,求,是...
首先,眼镜蛇通常具有明显的眼镜状花纹,没有花纹的蛇很可能不是眼镜蛇。但是,不能排除某些眼镜蛇品种可能没有明显的花纹,或者花纹可能因为某种原因不明显。如果不能确定蛇的品种,最好不要试图直接处理它。可以采取以下步骤:1. 保持冷静:尽量保持冷静,不要惊慌失措。蛇通常不会主动攻击人类,除非感到...

急死人了急死人了 个长八米宽五米的长方形,画一个最大的圆,圆的面积...
解:s圆=3.14*2.5²=19.625m²;s剩余=5*8-19.625=20.375m²

滨湖区13443803963: 急求急急急急急求,急求用C语言编写一个计算器程序,代码量为三百行左右!!!!!在线等 -
阳孔安塞: #include #include #define MAXOP 100#define NUMBER '0' //标识读入的是数字#define NAME 'n' //标识读入的是字符串(函数名或非法字符串)#define ALPHA 26 int getop(char []); void push (double); //压栈double pop(void); //出栈void clear(...

滨湖区13443803963: 求C语言程序如何编写,急求,在线等 -
阳孔安塞: #include <stdio.h> int main() { char ch; static int m,n; while(1) { scanf("%c",&ch); if(ch == '#') break; if( ch == ' ') m++; else if( ch == '\n') n++; } printf("%d\n%d",m,n); return 0; }

滨湖区13443803963: 急求 用c语言编写一个程序, -
阳孔安塞: void main() { int iSum1 = 0; int iSum2 = 0; int iSum3 = 0; int i=1; for(i=1; i<=10; i++) { 1653if(i%2 == 0) { iSum2 += i; } else { iSum1 += i; } if(i>5) { iSum3 += i; } } printf("奇数和内:%d,偶数和:%d,大于5的数之容和:%d", iSum1, iSum2, iSum3); }

滨湖区13443803963: C语言编程!急求
阳孔安塞: #include&lt;stdio.h&gt; #define N 20 void main() { int intarray[N]; int i,sum=0,max=0; double average=0; printf("输入20个整数:\n"); for(i=0;i&lt;N;i++) { scanf("%d",&amp;intarray[i]); sum=sum+intarray[i]; if(max&lt;intarray[i]) max=intarray[i]; } ...

滨湖区13443803963: 急求一个C语言程序
阳孔安塞: #include<stdio.h> void main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a; if(max<b) max=b; if(max<c) max=c; printf("max=%d\n",max); }

滨湖区13443803963: 急求用C语言编程 -
阳孔安塞: #include <stdio.h> double mypow(double x,int y) { double a=1.0; int i; for(i=1;i<=y;i++) a=a*x; return a; } void main() { double a=5.0,b; int n=3; b=mypow(a,n); printf("%.2f\n",b); } 这是你需要的,有不明白的地方我可以在线回答

滨湖区13443803963: 急求:用C语言编写一个程序,计算一个整数的三次方,并输出计算结果 -
阳孔安塞: 我刚刚编的,可以.不知道是不是你所要的. #include void main() {int n;printf("欢迎来到计算整数的三次方的程序!\n");printf("请输入您要计算的数:");scanf("%d",&n);printf("您要计算的%d三次方为:%d\n",n,n*n*n); }

滨湖区13443803963: 急求c语言程序代码! -
阳孔安塞: 写法一:#include"stdio.h"main(){ int a[5]={8,5,6,1,4}; int i,j,t; printf("由小到大的顺序为:"); for(i=0;i<5;i++) for(j=i;j<5;j++) if(a[i]>a[j]) { ...

滨湖区13443803963: 急急急急需C语言程序!!!!
阳孔安塞: #include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>int scan(){ char s[100]; int i,t,z=0; do { z=0; gets(s); for(i=0;s[i]!='\0';i++) if(s[i]<'0' || s[i]>'9') break; if(i>=strlen(s)) for(t=0;s[t]!='\0';t++) z=z*10+((int)s[t]-48); else printf("您的输入有...

滨湖区13443803963: C语言编程求助!急急急
阳孔安塞: #include"stdio.h" main() { char a[3],b[100]; int k=0,i; printf("please input two char\n"); gets(a); printf("please input char(<100)\n"); gets(b); for(i=0;i<100;i++) { if(a[0]==b[i]&&a[1]==b[i+1]) k++; } printf("%d",k); } 就这样吧 如果用指针会更好写 但是 可能考虑到你可能没有学 就没有用了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网