3.10前面的大综合,小计算器

一.代码示例

#include <stdio.h>
#include <stdlib.h>
//初始化界面
void  tips()
{
    printf("...........................\n");
    printf(".....请输入一种算法+-*/....\n");
    printf("............设计者:李健...\n");
    printf("...........................\n");
    printf("...........................\n");
    printf("...........................\n");
}
//基本算法调用模块
int add(int x,int y)
{
    int z;
    z=x+y;
    
    return z;
}
int min(int x,int y)
{
    int z;
    z=x-y;
    
    return z;
    
}
int mul(int x,int y)
{
    int z;
    z=x*y;
    
    return z;
}
float chufa(int x,int y)
{
    float z;
    z=(float)x/y;//不同类型数据做运算时,比如两个整数相处,必须将除数或者除数墙绘转化为小数,否则小数点后面的数据容易被忽略
    
    return z;
}
//封装选择算法模块
void calc(char suanfa)
{
   switch(suanfa)  
        {
            case '+':
            printf("你选择了加法\n");
            
                break;
            case '-':
            printf("你选择了减法\n");
            
                break;
            case '*':
            printf("你选择了乘法\n");
           
                break;
            case '/':
            printf("你选择了除法\n");
            
                break;
            default:
            printf("你不知道选择了什么算法,难道是胡扯引起的吗?\n");
                break;
        }
    
            printf("请输入第一个数据:\n");
            scanf("%d",&data1);
            printf("请输入第二个数据:\n");
            scanf("%d",&data2);
            
        switch(suanfa)  
        {
            case '+':
            printf("两数向加,结果:\n")add(data1,data2));
            
                break;
            case '-':
            min(data1,data2);
            printf("两数向减,结果:\n")min(data1,data2));
                break;
            case '*':
            mul(data1,data2);
           printf("两数向乘,结果:\n")mul(data1,data2));
                break;
            case '/':
            chufa(data1,data2);
            printf("两数向除,结果:\n")chufa(data1,data2));
                break;
            default:
            printf("你不知道选择了什么算法,难道是胡扯引起的吗?\n");
                break;
        } 
}


int main()
{
    int data1;
    int data2;
    int ret;
    float retchufa;
    char suanfa;
    
    int mark=0;
    
    
    while(1){
        tips();
        //在第2以至于n次次输入时,过滤掉回车的小技巧
        if(mark !=0)
           getchar(); 
        mark=1;
       
        scanf("%c",&suanfa);//先输入了+,后输入了回车符
        getchar();//回车符也是一种字符,getchar函数用来获取一个字符,在这里的作用是把回车吸收掉
        
        calc(sunfa);
    /*
        switch(suanfa)  
        {
            case '+':
            printf("你选择了加法\n");
            
            printf("请输入第一个数据:\n");
            scanf("%d",&data1);
            printf("请输入第二个数据:\n");
            scanf("%d",&data2);
            printf("结果:%d+%d=%d\n",data1,data2,data1+data2);
                break;
            case '-':
            printf("你选择了减法\n");
            
            printf("请输入第一个数据:\n");
            scanf("%d",&data1);
            printf("请输入第二个数据:\n");
            scanf("%d",&data2);
            printf("结果:%d-%d=%d\n",data1,data2,data1-data2);
                break;
            case '*':
            printf("你选择了乘法\n");
            
            printf("请输入第一个数据:\n");
            scanf("%d",&data1);
            printf("请输入第二个数据:\n");
            scanf("%d",&data2);
            printf("结果:%d*%d=%d\n",data1,data2,data1*data2);
                break;
            case '/':
            printf("你选择了除法\n");
            
            printf("请输入第一个数据:\n");
            scanf("%d",&data1);
            printf("请输入第二个数据:\n");
            scanf("%d",&data2);
            printf("结果:%d/%d=%f\n",data1,data2,(float)data1/data2);
                break;
            default:
            printf("你不知道选择了什么算法,难道是胡扯引起的吗?\n");
                break;
        }
        
*/        
/*       
        printf("请输入第一个数据:\n");
        scanf("%d",&data1);
        printf("请输入第二个数据:\n");
        scanf("%d",&data2);
        
        ret=add(data1,data2);
        printf("结果:%d+%d=%d\n",data1,data2,ret);
        
        ret=min(data1,data2);
        printf("结果:%d-%d=%d\n",data1,data2,ret);
        
        ret=mul(data1,data2);
        printf("结果:%d*%d=%d\n",data1,data2,ret);
        
        retchufa=chufa(data1,data2);
        printf("结果:%d/%d=%d\n",data1,data2,ret);
        */
    }
    
    return 0;
}

二.学习总结

1. getchar();//回车符也是一种字符,getchar函数用来获取一个字符,在这里的作用是把回车吸收掉。

2.如何在多个循环中吸收回车?

if(mark !=0)
           getchar(); 
        mark=1;

3.学习封装算法调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值