当前位置: 首页 > news >正文

CExercise_05_1函数_3交互式简易计算器

题目:

交互式简易计算器-函数/全局变量
Gn!
实现一个终端交互式的简易计算器,交互的形式大体如下:
在这里插入图片描述
要求至少提供四种运算加减乘除,如下: 并且在结束进程时,打印总共执行操作的次数。(也就是这些函数调用的次数)
注意:除法的实现,要求判断除数不为0,并且在除数为0时使用exit表示异常退出进程。


细节scanf的输入%c前需要加空格,以确保正确读到字符.

在这里插入图片描述
在这里插入图片描述


分析:


代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>  //exit() 是 <stdlib.h> 提供的函数,用于终止程序运行。

// 全局变量,用于记录操作次数
int operation_count = 0;

// 函数声明
int add(int a, int b);
int subtract(int a, int b);
int multiply(int a, int b);
float divide(int a, int b);
void print_operation_count();//打印操作次数

int main() {
    int a, b;
    char operator;
    char choice;

    do {
        printf("请输入要计算的表达式(例如,5 + 3): ");
        scanf(" %d %c %d", &a, &operator, &b);

        switch (operator) {
        case '+':
            printf("结果: %d\n", add(a, b));
            break;
        case '-':
            printf("结果: %d\n", subtract(a, b));
            break;
        case '*':
            printf("结果: %d\n", multiply(a, b));
            break;
        case '/':
            printf("结果: %.2f\n", divide(a, b));
            break;
        default:
            printf("无效的运算符。\n");
        }
        // 询问用户是否继续
        printf("是否继续? (y/n): ");
        scanf(" %c", &choice);
        printf("\n");
    } while (choice == 'y' || choice == 'Y');

    print_operation_count();
    return 0;
}

int add(int a, int b) {
    operation_count++;
    return a + b;
}

int subtract(int a, int b) {
    operation_count++;
    return a - b;
}

int multiply(int a, int b) {
    operation_count++;
    return a * b;
}

float divide(int a, int b) {
    if (b == 0) {
        printf("error:除数为零!\n");
        exit(1);
    }
    operation_count++;
    return (float)a / b;
}

void print_operation_count() {
    printf("总共执行的操作次数为: %d次\n", operation_count);
}
	

在这里插入图片描述


解决方案总结:

相关文章:

  • 量化交易提醒 - python发送邮件
  • OpenHarmony子系统开发 - DFX(三)
  • 华为TaurusDB、阿里PolarDB与腾讯TDSQL:信创需求下的国产数据库对比分析
  • 嵌入式硬件如何在PADS中将原理图转换为PCB详解
  • 【小沐学Web3D】three.js 加载三维模型(Angular)
  • MySQL 中 COUNT(*)、COUNT(1)、COUNT(字段) 有什么区别?
  • WVP-GB28181摄像头管理平台存在弱口令
  • make_01_Program_02_makefile 如何判断文件在不在
  • 玩机搞机基本常识-------安卓机型ROOT 官方面具与阿尔法面具如何隐藏root权限步骤操作全程解析
  • 实践:用Ollama+DeepSeek-R1搭建AI知识库
  • LangChain集成DeepSeek实现AI对话
  • ESP826601S AT指令AT+MQTTUSERCFG报错解决方法
  • 矩阵分解中的梯度下降:详细实现方案(包含数学推导、代码实现和优化技巧)
  • 量化交易从0到1(理论篇)
  • 网络编程:自定义协议设计IO多路复用
  • cloud项目批量修改主机号
  • Linux系统安装Postgre和Postgis教程
  • 交换机与ARP
  • Java 实现二分查找:[通俗易懂的算法系列之四]
  • word导出PDF老是目录格式变化的问题