
题目一:用C语言设计一个简单计算器
要求:在功能上尽量模拟windows操作系统中的计算器,系统界面不做强求可以实现加减乘除混合运算,意思就是可以实现任意几位数字的加减乘除混合运算。...
要求: 在功能上尽量模拟windows操作系统中的计算器,系统界面不做强求
可以实现加减乘除混合运算,意思就是可以实现任意几位数字的加减乘除混合运算。 展开
可以实现加减乘除混合运算,意思就是可以实现任意几位数字的加减乘除混合运算。 展开
2个回答
展开全部
#include<stdio.h>
int sum(int n);
int main(){
int s;
int n=100;
s=sum(n);
printf("%d",s);
}
int sum(int n){
if(n==0)
return 0;
else {
n=n+sum(n-1);
return n;
}
}
int sum(int n);
int main(){
int s;
int n=100;
s=sum(n);
printf("%d",s);
}
int sum(int n){
if(n==0)
return 0;
else {
n=n+sum(n-1);
return n;
}
}
追问
在功能上尽量模拟windows操作系统中的计算器,系统界面不做强求
可以实现加减乘除混合运算,意思就是可以实现任意几位数字的加减乘除混合运算
就是可以随便输几个数字用加减乘除都可以运算出结果
追答
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
int n=0;
char record[20];
float product();
float change();
float muli()
{
float summ;
summ=product();
while(record[n]=='-'||record[n]=='+')
{
switch(record[n])
{
case '+':n++;summ+=product();break;
case '-':n++;summ-=product();break;
}
}
return summ;
}
float product()
{
float sump;
sump=change();
while(record[n]=='*'||record[n]=='/')
{
switch(record[n])
{
case '*':n++;sump*=change();break;
case '/':n++;sump/=change();break;
}
}
return sump;
}
float change()
{
float sumc;
char rec[20],i=0;
if(record[n]=='(')
{
n++;
sumc=muli();
}
if(record[n]==')')
n++;
while(isdigit(record[n])||record[n]=='.')
{
while(isdigit(record[n])||record[n]=='.')
rec[i++]=record[n++];
rec[i]='\0';
sumc=atof(rec);
}
return sumc;
}
void main()
{
while(1)
{
n=0;
scanf("%s",record);
printf("%s=%g\n",record,muli());
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询