C语言题目:模拟计算器

题目描述

使用Switch语句编写一个模拟简单计算器的程序。依次输入两个整数和一个字符,并用空格隔开。如果该字 符是一个"+",则打印和;如果该字符是一个"-",则打印差;如果该字符是一个"*",则打印积;如果该字符是"/",则打印商;如果该字符是一个 "%",则打印余数。打印结果后输出一个空行。

输入格式

一行,前面两个数,再一个运算符号。

输出格式

运算表达式的结果。

样例输入

复制代码
3 4 +

样例输出

复制代码
7

代码流程及分析

1. 引入头文件

代码首先引入了stdio.h头文件,这是C语言标准输入输出库,用于处理输入输出函数,如scanfprintf

2. 主函数定义

main函数是程序的入口点,它没有接收任何参数,也没有返回值。

3. 定义变量

main函数内部,定义了以下变量:

  • int num1, num2;:两个整数变量,用于存储用户输入的两个操作数。
  • char operator;:一个字符变量,用于存储用户输入的运算符。
  • int sum;:一个整数变量,用于存储运算结果。

4. 读取输入

使用scanf函数按照格式"%d %d %c"读取用户输入的两个整数和一个字符。这里%d用于读取整数,%c用于读取字符。

5. 运算符判断

使用switch语句根据用户输入的运算符operator来决定执行哪种运算:

  • case '+': 如果运算符是'+',则执行加法,将结果存储在sum中。
  • case '-': 如果运算符是'-',则执行减法。
  • case '/': 如果运算符是'/',则执行整数除法。
  • case '*': 如果运算符是'*',则执行乘法。
  • case '%': 如果运算符是'%',则执行取模运算。

6. 输出结果

使用printf函数输出运算结果sum,格式化字符串"%d\n"表示输出的是一个整数,后跟一个换行符。

7. 程序结束

main函数返回0,表示程序正常结束。

源代码

复制代码
#include <stdio.h>
int main(void)
{
	int num1, num2;
	char operator;
	int sum;
	scanf("%d %d %c", &num1, &num2, &operator);
	switch (operator)
	{
	case '+':
		sum = num1 + num2;
		break;
	case '-':
		sum = num1 - num2;
		break;
	case '/':
		sum = num1 / num2;
		break;
	case '*':
		sum = num1 * num2;
		break;
	case '%':
		sum = num1 % num2;
		break;
	}
	printf("%d\n", sum);
	return 0;
}
相关推荐
幻云2010几秒前
Next.js指南:从入门到精通
开发语言·javascript·人工智能·python·架构
老马识途2.02 分钟前
java处理接口返回的json数据步骤 包括重试处理,异常抛出,日志打印,注意事项
java·开发语言
YuTaoShao6 分钟前
【LeetCode 每日一题】1458. 两个子序列的最大点积——(解法三)状态压缩
算法·leetcode·职场和发展
CCPC不拿奖不改名8 分钟前
网络与API:从HTTP协议视角理解网络分层原理+面试习题
开发语言·网络·python·网络协议·学习·http·面试
位东风13 分钟前
希尔排序(Shell Sort)详解
算法·排序算法
代码游侠17 分钟前
学习笔记——HC-SR04 超声波测距传感器
开发语言·笔记·嵌入式硬件·学习
AI科技星27 分钟前
光速飞行器动力学方程的第一性原理推导、验证与范式革命
数据结构·人工智能·线性代数·算法·机器学习·概率论
superman超哥29 分钟前
Context与任务上下文传递:Rust异步编程的信息高速公路
开发语言·rust·编程语言·context与任务上下文传递·rust异步编程
橘颂TA29 分钟前
【剑斩OFFER】算法的暴力美学——leetCode 946 题:验证栈序列
c++·算法·leetcode·职场和发展·结构与算法