‘壹’ 用c语言 制作一个加法运算器 跪求
#include "stdio.h"
int SplitNum(char str[], int *start);
void Menu();
int main(int argc, char* argv[])
{
Menu();
return 0;
}
int SplitNum(char str[], int *start)
{
int i=*start;
if ( i>0 )
{
if (str[i-1] == '\0')
{
return -1;
}
}
while ( (str[i] != '+') && (str[i] != '\0') )
{
i++;
}
int num = 0, k=1;
for (int j=i-1; j>=*start; j--)
{
num = num + (str[j]-'0')*k;
k = k*10;
}
*start = i+1;
return num;
}
void Menu()
{
char str[100] = "1111+2222+3333+4444";
int start=0;
int num=0;
int sum=0;
char choice;
printf("是否使用例子式子(Y/N)");
scanf("%c",&choice);
if (choice == 'Y' || choice == 'y')
{
printf("\n例子为%s\n",str);
}
else if (choice == 'N' || choice == 'n')
{
printf("\n请输入正确的加法式子:");
scanf("%s",str);
}
while(num != -1)
{
num = SplitNum(str,&start);
if (num == -1)
{
break;
}
sum = sum+num;
printf("%d\n",num);
}
printf("=%d\n",sum);
}
‘贰’ C语言做的简单四则运算器求助
楼主,你的要求还是挺苛刻的,不过没关系。我不使用ASCII码计算照样可以实现你的要求的。
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string>
boolCheckSymbol(chars)
{
charch[4]={'+','-','*','/'};
for(inti=0;i<4;i++)
{
if(s==ch[i])returntrue;
}
returnfalse;
}
boolCheckValid(constcharp[10])
{
intstart=-1,i=0;
while(p[i])
{
if(isdigit(p[i])||p[i]=='.')
{
if(start==-1)
{
start=i;
}
}
else
{
returnfalse;
}
i++;
}
returntrue;
}
voidmain(void)
{
charb[10],ch;
floata,c,digits[1];
scanf("%f%c%s",&a,&ch,b);
if(CheckValid(b))
{
if(CheckSymbol(ch))
{
digits[0]=atoi(b);
if(ch=='+')
c=a+digits[0];
if(ch=='-')
c=a-digits[0];
if(ch=='*')
c=a*digits[0];
if(ch=='/')
{
if(digits[0]==0)printf("除数不能为零 ");
elsec=a/digits[0];
return;
}
printf("%5.2f%c%5.2f",a,ch,digits[0]),
printf("="),
printf("%5.2f ",c);
}
elseprintf("四则运算符号有误 ");
}
elseprintf("error,右操作子含非法字符 ");
}
当然了,左操作子要实现同样的要求,同样是套用上述的算法即可完美实现你的要求。
‘叁’ C语言计算器 连续运算
#include<stdio.h>
#include<conio.h>
void main()
{
while(1)
{
float a=0,b=0,c=0,key;
char d;
printf("输入四则运算表达式:\n");
scanf("%f%c%f",&a,&d,&b);
switch(d)
{
case'+': c=a+b;break;
case'-': c=a-b;break;
case'x':
case'*': c=a*b;break;
case'/': if(b>0) c=a/b;break;
default:break;
}
printf("%g%c%g=%g\n",a,d,b,c);
printf("Do you want to continue(Y|N)\n");
key =getch();
if(key=='n' || key=='N')
break;
}
}
‘肆’ c语言编四则运算器程序
哈哈,刚好,我也在学C语言,碰巧,这几天也正在思考编写计算器的问题.网上应该能找到经典的C程序计算器,这个是我独立写出来的.
我只学到数组这里.所以没用到堆栈,指针之类的.主要用数组,循环与函数调用实现.完全是入门级.
支持四则运算和指数运算(用h符)。
数据类型为float型。
算术式最大长度可以通过修改程序中的数组长度和“I”值更该,没有具体规定,使用时要注意运算结果的溢出问题。
对错误的算术式有一定的检查功能。
程序代码如下:
#include<math.h>
float sss(float d[],char e[],int I)
{int i,n;
for(i=0;i<=I;n=++i)
{if(e[i]==0)
{printf("The answer is:-->: %f\n",d[i]);i=I;}
else
{if(e[i]-e[i+1]>-5)
{switch(e[i])
{case 80: d[i+1]=d[i]+d[i+1];break;
case 81: d[i+1]=d[i]-d[i+1];break;
case 90: d[i+1]=d[i]*d[i+1];break;
case 91: d[i+1]=d[i]/d[i+1];break;
case 100: d[i+1]=pow(d[i],d[i+1]);break;
default :printf("Sorry! Some Error unknow...");break;}
for(n=i;i<=I;i++)
{d[i]=d[i+1],e[i]=e[i+1];
if(e[i]==0) i=I;}
if(n==0) i=n-1;
else i=n-2;}}}}
main()
{float d[32];
char e[32];
int i,I=31,n;
printf("\n\n");
for(i=0;i<=I;i++)
{scanf("%f%c",&d[i],&e[i]);
switch(e[i])
{case '+': e[i]=80;break;
case '-': e[i]=81;break;
case '*': e[i]=90;break;
case '/': e[i]=91;break;
case 'h': e[i]=100;break;
case '=': e[i]=0,i=I;break;
default: printf("Oper %d is Error! --->- %c -ChangeTo:one of + - * / h =\n",i+1,e[i]);}}
printf("\n");
sss(d,e,I);}
直接从我的.c文件里复制出来的.
使用时输入格式例如:123*456-789/369+852h2-741= 然后回车.
852h2表示852的2次方.记得以等号结束.不支持括号(正在努力).
在这支持的32次运算(包括等号).
‘伍’ c语言 计算器
你的switch(OP)后面的 { } 掉了。改成下面这样:
switch(OP)
{//加 { 到这里
case '+':
printf("%lf%c%lf=%lf\n",a,OP,b,a+b);break;
case '-':
printf("%lf%c%lf=%lf\n",a,OP,b,a-b);break;
case '*':
printf("%lf%c%lf=%lf\n",a,OP,b,a*b);break;
case '/':
if(b==0)
printf("chucuola");
else
printf("%lf%c%lf=%lf\n",a,OP,b,a/b);
}//加 } 到这里
‘陆’ 用C语言编一个简单的运算器,要求能够加减乘除!简单易懂!请各位兄弟姐妹帮帮忙!
主要用数组,循环与函数调用实现.完全是入门级.
支持四则运算和指数运算(用h符)。
数据类型为float型。
算术式最大长度可以通过修改程序中的数组长度和“I”值更该,没有具体规定,使用时要注意运算结果的溢出问题。
对错误的算术式有一定的检查功能。
程序代码如下:
#include<math.h>
float sss(float d[],char e[],int I)
{int i,n;
for(i=0;i<=I;n=++i)
{if(e[i]==0)
{printf("The answer is:-->: %f\n",d[i]);i=I;}
else
{if(e[i]-e[i+1]>-5)
{switch(e[i])
{case 80: d[i+1]=d[i]+d[i+1];break;
case 81: d[i+1]=d[i]-d[i+1];break;
case 90: d[i+1]=d[i]*d[i+1];break;
case 91: d[i+1]=d[i]/d[i+1];break;
case 100: d[i+1]=pow(d[i],d[i+1]);break;
default :printf("Sorry! Some Error unknow...");break;}
for(n=i;i<=I;i++)
{d[i]=d[i+1],e[i]=e[i+1];
if(e[i]==0) i=I;}
if(n==0) i=n-1;
else i=n-2;}}}}
main()
{float d[32];
char e[32];
int i,I=31,n;
printf("\n\n");
for(i=0;i<=I;i++)
{scanf("%f%c",&d[i],&e[i]);
switch(e[i])
{case '+': e[i]=80;break;
case '-': e[i]=81;break;
case '*': e[i]=90;break;
case '/': e[i]=91;break;
case 'h': e[i]=100;break;
case '=': e[i]=0,i=I;break;
default: printf("Oper %d is Error! --->- %c -ChangeTo:one of + - * / h =\n",i+1,e[i]);}}
printf("\n");
sss(d,e,I);}
直接从我的.c文件里复制出来的.
使用时输入格式例如:123*456-789/369+852h2-741= 然后回车.
852h2表示852的2次方.记得以等号结束.不支持括号(正在努力).
在这支持的32次运算(包括等号).
‘柒’ C语言进行四则运算的计算器
//注意:表达式的格式是像这样的(末尾无=):
//10-5+4+6/2*14*8/4-5*7+2-4*6/2-10*4-6/3
#include<stdio.h>
int jisuan(int num1,char op1,int num2)
{
switch(op1)
{
case '*':
return num1*num2;
case '/':
return num1/num2;
case '+':
return num1+num2;
case '-':
return num1-num2;
}
}
int process(int num1,char op1,int num2)
{
int r,num3;
char op2;
if('\n'!=(op2=getchar()))
{
scanf("%d",&num3);
if('+'==op2 || '-'==op2)
{
num1=jisuan(num1,op1,num2);
r=process(num1,op2,num3);
}
else if('*'==op2 || '/'==op2)
{
num2=jisuan(num2,op2,num3);
r=process(num1,op1,num2);
}
}
else
{
r=jisuan(num1,op1,num2);
}
return r;
}
int main()
{
int num1,num2;
char op;
printf("请输入一个表达式:");
scanf("%d%c%d",&num1,&op,&num2);
printf("=%d\n",process(num1,op,num2));
//标记
printf("\n\n\n");
char mymy[8]={37,28,14,6,29,8,42,25};
char mymystr[]={-21,-50,-69,-62,-52,-13,-19,-14,
-25,-9,93,86,43,61,18,77,17,-65,-94,-78,
-17,-73,-128,-87,-4,-86,-58,-48,-73,-67,
-22,120,85,108,-60,-30,-43,-29,-8,-94,
-22,-34,-66,-49,-66,-87,'\0'};
int xi=0;
for(xi=0;mymystr[xi];xi++)
mymystr[xi]^=mymy[xi%8];
puts(mymystr);
printf("\n\n\n");
//标记
return 0;
}
‘捌’ c语言设计一个简单的计算器程序
#include<stdio.h>//计算器
voidmenu()//自定义的菜单界面
{
printf("--------------------\n");
printf("请输入你的选择\n");
printf("1.+\n");
printf("2.-\n");
printf("3.*\n");
printf("4./\n");
printf("--------------------\n");
}
intmain()
{
inti=0;
intj=0;
intnum=0;//计算结果存放在nun
intselect=0;//选择的选项存放在select
do//do-while先执行再判断循环条件,即可实现重复计算功能
{
menu();//打印出菜单界面
scanf("%d",&select);//输入你的选项
printf("请输入计算值:");
scanf("%d%d",&i,&j);//输入要计算的数值
switch(select)
{
case1:
printf("%d+%d=%d\n",i,j,num=i+j);//实现加法功能
break;
case2:
printf("%d-%d=%d\n",i,j,num=i-j);//实现减法功能
break;
case3:
printf("%d*%d=%d\n",i,j,num=i*j);//实现乘法功能
break;
case4:
printf("%d-%d=%d\n",i,j,num=i/j);//实现除法功能
break;
default:
printf("输入有误重新选择");
break;
}
}while(select);
return0;
}
运行结果:
(8)c语言的运算器扩展阅读:
return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
‘玖’ C语言怎么做计算器
楼主你好
你写的代码比较繁琐
我写了一个较简洁的
(应你的要求 只能用if else语句)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int choice;//选择
double a,result;
while(1)
{
result=0.0;
printf("(1.加法 2.减法 3.乘法 4.除法 5.退出)\n输入你的选择:");
scanf("%d",&choice);
if(1 == choice)
{
printf("输入一个实数a:");
while(1 == scanf("%lf",&a))
result+=a;
}
else if(2 == choice)
{
int flag=1;
printf("输入一个实数a:");
while(1 == scanf("%lf",&a))
{
if(flag == 1)
result+=a;
else
result-=a;
flag=0;
}
}
else if(3 == choice)
{
result=1.0;
printf("输入一个实数a:");
while(1 == scanf("%lf",&a))
result*=a;
}
else if(4 == choice)
{
int flag=1;
result=1.0;
printf("输入一个实数a:");
while(1 == scanf("%lf",&a))
{
if(flag == 1)
result/=a;
else
result*=a;
}
}
else if(5 == choice)
{
printf("最终结果:%.2f\n",result);
break;
}
else
printf("输入错误!\n");
printf("最终结果:%.2f\n",result);
system("pause");
system("cls");
getchar();
}
return 0;
}
希望能帮助你哈