C语言初学者-计算器(不奥深,基础,嘿嘿)

C语言计算器(上)

接下来对代码由浅入深

No.1

简易计算器,具有加减乘除,平方,立方和退出功能:

*计算保留两位小数

a--加法 b--减法 
c--乘法 d--除法
e--开放  f--平方
g--立方 q--退出

运行示例:

&欢迎使用简易计算机&
请输入以下字母:
a:加法 b:减法 c:乘方 d:除法
e:开方 f:平方 g:立方 q:退出
请输入你的选项:e
请输入数值:5
2.00的开方等于2.24

代码示例:
示例
代码:

#include<stdio.h>
#include <math.h>

float num1,num2;
float *p1=&num1,*p2=&num2;

void input1(){
 printf("请输入数值:");
 scanf("%f",p1);
}
void input2(){
 printf("请输入两个数值,中间用空格隔开:");
 scanf("%f %f",p1,p2);
 }
 void add(){
 input2();
 printf("%.2f加%.2f等于%.2f",*p1,*p2,*p1+*p2);
}
void sub(){
 input2();
 printf("%.2f减%.2f%等于%.2f",*p1,*p2,*p1-*p2);
}
void mul(){
 input2();
 printf("%.2f乘与%.2f等于%.2f",*p1,*p2,*p1*(*p2));
}
void count_d(){
 input2();
 printf("%.2f除于%.2f等于%.2f",*p1,*p2,*p1/(*p2));
}
void count_e(){
 input1();
 printf("%.2f的开方等于%.2f",*p1,sqrt(*p1));
}
void count_f(){
 input1();
 printf("%.2f的平方等于%.2f",*p1,*p1*(*p1));
}
void count_g(){
 input1();
 printf("%.2f的立方等于%.2f",*p1,pow(*p1,3));
}
int main(){
 char in;
 printf("***欢迎使用简易计算机***\n");
 printf("--------------------------------");
 printf("a. 加法\t\t b.减法 ");
 printf("c. 乘法                  d. 除法 ");
 printf("e. 开方\t\t f.平方 ");
 printf("g. 立方\t\t q.退出 ");
 printf("--------------------------------");
 printf("请输入你的选项:");
 scanf("%c",&in);
 switch(in){
 case 'a' :
  add();break;
 case 'b' :
  sub();break;
 case 'c' :
  mul();break;
 case 'd' :
  count_d();break;
 case 'e':
  count_e();break;
 case 'f':
  count_f();break;
 case 'g' :
  count_g();break;
 case 'q' :
  break}
  }

代码分析:在运行代码是必须先要输入特定字母,接下来进行此次算法;此外对加减乘除只限于两个数之间的运算,此代码没有实用性(微笑)。

No.2

进阶计算器

*本计算器可进行加减乘除,开方,乘方;
*可对数累计运算

a->加法   b->减法 
c->乘法   d->除法
e->开放   f->乘方
o->当前值     p->清零   q--退出

运行代码

#include<stdio.h>
#include <math.h>

float num1,num2,sum=0;
float *p1=&num1,*p2=&num2,*ps=&sum;
char in,*pc=&in;
int ojbk=0,*pi=&ojbk;

void input1(){
 printf("亲!请输入数值:");
 scanf("%f",p1);
}
void input2(){
 printf("亲!请输入两个数值,中间用空格隔开:");
 scanf("%f %f",p1,p2);
}
void input3(){
 printf("请再次输入数值:");
 scanf("%f",p2);
}
void add(){
 if(*pi==0){
  input2();
  *ps=*p1+*p2;
  *pi=1;
 }
 else{
  input3();
  *ps+=*p2;
 }
 printf("=%.2f\n",*ps);
}
void sub(){
 if(*pi==0){
  input2();
  *ps=*p1-*p2;
  *pi=1;
 }
 else{
  input3();
  *ps-=*p2;
 }
 printf("=%.2f\n",*ps);
}
void mul(){
 if(*pi==0){
  input2();
  *ps=*p1*(*p2);
  *pi=1;
 }
 else{
  input3();
  *ps*=*p2;
 }
 printf("=%.2f\n",*ps);
}
void count_d(){
 if(*pi==0){
  input2();
  *ps=*p1/(*p2);
  *pi=1;
 }
 else{
  input3();
  *ps/=*p2;
 }
 printf("=%.2f\n",*ps);
}
void count_e(){
 if(*pi==0){
  input1();
  *ps=sqrt(*p1);
  *pi=1;
 }
 else{
  *p1=*ps;
  *ps=sqrt(*ps);
 }
 printf("%.2f的开方等于%f\n",*p1,*ps);
 *p1=*ps;
}
void count_f(){
 if(*pi==0){
  input2();
  *ps=pow(*p1,*p2);
  *pi=1;
 }
 else{
  *p1=*ps;
  input3();
  *ps=pow(*ps,*p2);
 }
 printf("%.2f的%.2f次方等于%f\n",*p1,*p2,*ps);
 *p1=*ps;
}
void count_o(){
 printf("值:%.2f\n",*ps);
}
void part()
{
 printf("请输入你的选项:");
 switch(*pc=getchar()){
 case 'a' :
  add();
  break;
 case 'b' :
  sub();break;
 case 'c' :
  mul();break;
 case 'd' :
  count_d();break;
 case 'e':
  count_e();break;
 case 'f':
  count_f();break;
 case 'o' :
  count_o();break;
 case 'p':
  *pi=0;
  *ps=0;
  printf("已清零\n");
  break;
 }
}
int main()
{
  printf("&欢迎使用进阶计算机&\n");
  printf("请输入以下字母:\na:加法 b:减法 c:乘法 d:除法\ne:开方 f:乘方\np:清零 q:退出\n"); 
  do{
   part();
  }while(*pc!='q');
  return 0}

代码示例:
在这里插入图片描述这个代码有个小bug,就是在输入选项的时候会多打出来一个“请输入你的选项”。
此毛病没看出来咋回事,应该是多循环了一次。
此次计算器代码就这两个,后续还会再编一个高级的,嘿嘿!

原创文章 1 获赞 2 访问量 46

猜你喜欢

转载自blog.csdn.net/weixin_45788069/article/details/106093061