四根羽毛i

导航

统计

小学期项目:简易计算器

2020年第一次小学期项目制作

项目描述:

实现科学计算器的基本功能。

项目需求:

做一个计算机能够完成四则混合运算,加入乘方和开方运算,并显示出正确的结果。
程序能够根据运算符等级的高低进行运算。
可以输入括号,并按照括号的等级进行优先计算。
可以求二进制、八进制、十六进制、阶乘。

部分源码:

double Power(double m,double n){//乘方运算
    double set=1.0;
    int i;
    double z,x;
    scanf("%lf^%lf",&z,&x);
    for(i=0;i<x;i++){
        set*=z;
    }
    printf("%.2f",set);
    return 0;
}

int Fact(int a,int b){//阶乘
    int i,n;
    long sum=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        sum=sum*i;
    printf("%d!=%ld",n,sum);
    printf("\n");
    return 0;
}

//实现四则混合运算

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
int AddMinu();
int MutipDiv();
int Factor();
int  main()
{    
    printf("%d",AddMinu());
    return 0;
}

int AddMinu()
//加减判断
{
    int t;
    
    t = MutipDiv();
    for(;;)
        if(*s=='+')
        { s++;
         t = t + MutipDiv();
        }
        else if(*s=='-')
        { s++;
         t = t - MutipDiv();
          }
        else
        break;
    return t;
}

int MutipDiv()//乘除判断
{
    int p;
    
    p = Factor();
    for(;;)
        if(*s=='*')
        { s++;
         p = p * Factor();
        }
        else if(*s=='/')
         { s++;
         p = p / Factor();
         }
        else
        break;
    return p;
}

int Factor()
//括号判断
{
    int f;
    if(*s=='(') {
        s++;
        f = AddMinu();
    if(*s==')')
        s++;
        return f;
    }
    f=0;
    while('0'<=*s && *s<='9') {
        f=f*10+(*s-'0');
        s++;
    }
    return f;
}

posted on   四根羽毛i  阅读(80)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示