用C语言做一个简单的计算器

#include <stdio.h>
#include <math.h>
#include <stdlib.h> 
void fengmian();
void xuanze();
int select;
int main()
{
    char b;
    fengmian();
    xuanze();
    do{
        printf("是否继续?(请输入y or n)\n");
        getchar();
        scanf("%c",&b);
        if(b=='y'){
                system("cls");
                fengmian();
                xuanze();
        }
        else break;
    
    }while(1==1); 
    return 0;
}
void xuanze()
{
    scanf("%d",&select);
    switch (select)
    {
    case 1:
        {
            float num1,num2,b;
            int a;
            a=0;
            b=0;
            printf("做加法。\n");
            printf("输入两个数,加号分隔。\n");
            scanf("%f+%f",&num1,&num2);
            b=num1+num2-(int(num1+num2));
            if(b!=0)
            {
                printf("结果为:%.3f\n",num1+num2);
            }
            else
            {
                a=(int)(num1+num2);
                printf("结果为:%d\n",a);
            }
            break;
        }
    case 2:
        {
            float num1,num2,b;
            int a;
            printf("做减法。\n");
            printf("输入两个数,减号分隔。\n");
            scanf("%f-%f",&num1,&num2);
            b=num1+num2-(int(num1+num2));
            if(b!=0)
            {
                printf("结果为:%.3f\n",num1-num2);
            }
            else
            {
                a=(int)(num1-num2);
                printf("结果为:%d\n",a);
            }
            break;
        }
    case 3:
        {
            float num1,num2,b;
            int a;
            printf("做乘法。\n");
            printf("输入两个数,乘号分隔。\n");
            scanf("%f*%f",&num1,&num2);
            b=num1*num2-(int(num1*num2));
            if(b!=0)
            {
                printf("结果为:%.3f\n",num1*num2);
            }
            else
            {
                a=(int)(num1*num2);
                printf("结果为:%d\n",a);
            }
            break;
        }
    case 4:
        {
            float num1,num2,b;
            int a;
            printf("做除法。\n");
            printf("输入两个数,除号分隔。\n");
            scanf("%f/%f",&num1,&num2);
            b=num1/num2-(int(num1/num2));
            if(b!=0)
            {
                printf("结果为:%.3f\n",num1/num2);
            }
            else
            {
                a=(int)(num1/num2);
                printf("结果为:%d\n",a);
            }
            break;
        }
    case 5:
        {
            float r;
            double s;
            printf("计算圆面积。\n");
            printf("请输入半径:\n");
            scanf("%f",&r);
            if  (r >= 0)
            {
                s=3.14*r*r;
                printf("圆面积是:%lf\n",s);
            }
            else
                printf  ("半径输入错误!\n");
            break;
        }
    case 6:
        {
            int year,leap;
            printf("判断闰年。\n");
            printf("enter year");
            scanf("%d",&year);
            if((year%4==0&&year%100!=0)||(year%400==0))
                leap=1;
            else
                leap=0;
            if(leap)
                printf("%d is",year);
            else
                printf("%d is not",year);
            printf(" a leap year\n");
            break;
        }

    case 7:
        {
            long int num,num_t;
            int digits=0,i=1;
            printf("判断数字位数。\n");
            printf("输入待判断数字:");
            scanf("%ld",&num);
            num_t=num;
            do
            digits++;
            while((num_t/=10)>0);
            printf("%ld是%d位数。\n",num,digits);
            while(digits>=i);
            {
                printf("%ld的第%d位数是:%d\n",num,i,(num/(long)pow(10,(digits-i)))%10);
                i++;
            }
            break;
        }
    case 8:
        {
            int n,sum=0,i;
            printf("输入一个整数:\n");
            scanf("%d",&n);
            for(i=1;i<=n;i++)
                if(i%2!=0)
                    sum+=i;
                printf("从1到输入数之间的奇数和是:%d\n",sum);
                break;
        }
    case 9:
        {
            int sum,i,n;
            i=1;
            sum=0;
            printf("输入一个整数:\n");
            scanf("%d",&n);
            while(i<=n)
            {
                if(i%2==0)
                    sum+=i;
                i++;
            }
            printf("从1到输入数之间的偶数和是:%d\n",sum);
            break;
        }
    case 10:
        {
            int n,i,m;
            printf("输入两个整数:\n");
            scanf("%d,%d",&n,&m);
            for(i=n;i<=m;i++)
                if(i%3==0&&i%5==0)
                {
                    printf("既能被3整除又能被5整除的数:%d\n",i);
                }
                break;
        }
    case 11:
        {
            int sum,i,m;
            i=1;
            sum=0;
            printf("输入一个整数:\n");
            scanf("%d",&m);    
            do
            {
                if(i%3==0)
                    sum+=i;
                i++;
            }
            while(i<=m);
            printf("从1到输入数之间所有3的倍数:%d\n",sum);
            break;
        }
    case 12:
        {
            int i=100;
            int a,b,c;
            for(i=100;i<1000;i++)
            {
                a=i/100;
                b=(i-a*100)/10;
                c=(i-a*100-b*10);
                if(a*a*a+b*b*b+c*c*c==i)
                {
                    printf("水仙花数:%d\n",i);
                }
            }
            break;
        }
    case 13:
        {
            float a,b;            
            printf("请输入一个数:"); 
            scanf("%f",&a);
            b=sqrt(a);
            printf("它的算数平方根:%.3f\n",b);
            break;
        }
    }
}
void fengmian()
{
    printf("-------------------------------------------------------------\n");
    printf("-   小小计算器  Design By qiancute                -\n");
    printf("-           1 加法                                                 -\n");
    printf("-        2 减法                                                    -\n");
    printf("-        3 乘法                                                    -\n");
    printf("-        4 除法                                                    -\n");
    printf("-        5 圆的面积                                             -\n");
    printf("-        6 判断闰年                                             -\n");
    printf("-        7 计算从1到输入数之间的奇数和          -\n");
    printf("-        8 计算从1到输入数之间的偶数和          -\n");
    printf("         9 输出从1到输入数之间所有3的倍数     -\n");
    printf("-       10 求即被3整除又被5整除的数              -\n");
    printf("-       11 判断数字位数                                    -\n");
    printf("-       12 求水仙花数                                       -\n");
    printf("-       13 求一个数的算数平方根                     -\n");
    printf("-   输入任意非功能选项序号退出小小计算器 -\n");
    printf("-------------------------------------------------\n");
    printf("输入菜单项:\n");
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值