当前位置:首页 > 行业动态 > 正文

c 实现存储器计算器

c,#includeint main() {, int a, b;, char op;, printf("Enter an expression (e.g., 3 + 4): ");, scanf("%d %c %d", &a, &op, &b);, switch(op) {, case '+': printf("%d,", a + b); break;, case '-': printf("%d,", a b); break;, case '': printf("%d,", a b); break;, case '/': if (b != 0) printf("%d,", a / b);, else printf("Division by zero error!,");, break;, default: printf("Invalid operator!,");, }, return 0;,},

在C语言中实现一个存储器计算器,可以设计为支持基本算术运算(加、减、乘、除)以及存储和调用功能的程序,以下是一个简单的示例代码,展示了如何实现这样的计算器:

#include <stdio.h>
#include <stdlib.h>
// 定义一个结构体来存储操作数和运算符
typedef struct {
    double operand1;
    double operand2;
    char operator;
} CalculatorMemory;
// 函数声明
void performOperation(double num1, double num2, char op, double result);
void storeResult(CalculatorMemory memory, double result);
double recallResult(CalculatorMemory memory);
int main() {
    CalculatorMemory memory = {0}; // 初始化存储器
    double num1, num2, result;
    char op;
    int choice;
    while (1) {
        printf(" 存储器计算器
");
        printf("1. 输入第一个数字
");
        printf("2. 输入第二个数字
");
        printf("3. 选择运算符 (+, -, , /)
");
        printf("4. 执行计算并显示结果
");
        printf("5. 存储结果到存储器
");
        printf("6. 从存储器中调用结果
");
        printf("7. 退出
");
        printf("请输入你的选择: ");
        scanf("%d", &choice);
        switch (choice) {
            case 1:
                printf("请输入第一个数字: ");
                scanf("%lf", &num1);
                break;
            case 2:
                printf("请输入第二个数字: ");
                scanf("%lf", &num2);
                break;
            case 3:
                printf("请输入运算符 (+, -, , /): ");
                scanf(" %c", &op); // 注意在%c前面的空格,用于忽略之前的换行符
                break;
            case 4:
                performOperation(num1, num2, op, &result);
                printf("计算结果: %.2lf
", result);
                break;
            case 5:
                storeResult(&memory, result);
                printf("结果已存储到存储器。
");
                break;
            case 6:
                result = recallResult(&memory);
                printf("从存储器中调用的结果是: %.2lf
", result);
                break;
            case 7:
                exit(0);
            default:
                printf("无效的选择,请重新输入。
");
        }
    }
    return 0;
}
// 执行计算的函数
void performOperation(double num1, double num2, char op, double result) {
    switch (op) {
        case '+':
            result = num1 + num2;
            break;
        case '-':
            result = num1 num2;
            break;
        case '':
            result = num1  num2;
            break;
        case '/':
            if (num2 != 0) {
                result = num1 / num2;
            } else {
                printf("错误:除数不能为零。
");
                result = 0; // 或者你可以返回一个特殊的错误码
            }
            break;
        default:
            printf("无效的运算符。
");
            result = 0; // 或者你可以返回一个特殊的错误码
    }
}
// 存储结果到存储器的函数
void storeResult(CalculatorMemory memory, double result) {
    memory->operand1 = result; // 这里只存储了结果,可以根据需要扩展存储更多信息
}
// 从存储器中调用结果的函数
double recallResult(CalculatorMemory memory) {
    return memory->operand1; // 返回存储的结果
}

代码说明

1、结构体定义CalculatorMemory结构体用于存储操作数和运算符,虽然在这个简单示例中只存储了最终结果,但可以根据需要扩展以存储更多的信息。

2、函数实现

c 实现存储器计算器

performOperation函数根据用户输入的操作符对两个操作数进行相应的数学运算,并将结果存储在result指针指向的变量中,如果遇到除零错误,会打印错误信息并返回0(或特殊错误码)。

storeResult函数将计算结果存储到CalculatorMemory结构体的operand1成员中。

recallResult函数从CalculatorMemory结构体的operand1成员中返回存储的结果。

c 实现存储器计算器

3、主函数逻辑:通过无限循环提供菜单选项,允许用户输入数字、选择运算符、执行计算、存储结果到存储器以及从存储器中调用结果,当用户选择退出时,程序结束。

注意事项

这个示例是一个简化的实现,实际应用中可能需要更复杂的错误处理和功能扩展。

为了提高用户体验,可以添加更多的输入验证和提示信息。

c 实现存储器计算器

如果需要在嵌入式系统或其他特定环境中使用,可能需要根据硬件平台进行相应的调整和优化。