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("--------------------------------\n");
    printf("a. 加法\t\t b.减法 \n");
    printf("c. 乘法                  d. 除法 \n");
    printf("e. 开方\t\t f.平方 \n");
    printf("g. 立方\t\t q.退出 \n");
    printf("--------------------------------\n");
    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,就是在输入选项的时候会多打出来一个“请输入你的选项”。
此毛病没看出来咋回事,应该是多循环了一次。
此次计算器代码就这两个,后续还会再编一个高级的,嘿嘿!

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值