资源简介
采用模拟人的加法运算和乘法运算,计算超过百位的整数,实现算法为c语言,可以在cmd通过命令进行运算
代码片段和文件信息
/* Extended precision integer calculator
* Implements + * and ^ (power of) operations
*
* Skeleton code written by Jianzhong Qi March 2018
*
*/
#include
#include
#include
#include
#define INT_SIZE 100 /* max number of digits per integer value */
#define LINE_LEN 103 /* maximum length of any input line */
#define NUM_VARS 10 /* number of different huge int “variables“ */
#define ASN_OP ‘=‘ /* assignment operator */
#define ECH_OP ‘?‘ /* echo operator */
#define ADD_OP ‘+‘ /* addition operator */
#define MUL_OP ‘*‘ /* multiplication operator */
#define POW_OP ‘^‘ /* power of operator */
#define OPR1_POS 1 /* position of the first operand */
#define OPR2_POS 3 /* position of the second operand */
#define OP_POS 2 /* position of the operator */
#define CH_ZERO ‘0‘ /* character 0 */
#define EXIT_CMD “exit“ /* command to exit */
#define PROMPT “> “ /* command prompt */
#define CMT_FLAG ‘%‘ /* indicator for comment line */
typedef int digit_t; /* a decimal digit */
typedef digit_t huge_t[INT_SIZE]; /* one huge int “variable“ */
/* add your constant and type definitions here */
/****************************************************************/
/* function prototypes */
void read_line(char *line int max_len);
void init(huge_t vars[] int lens[]);
void echo(huge_t vars[] int lens[] int opr1_index);
void assign(huge_t vars[] int lens[] int opr1_index char *opr2_str);
void add(huge_t vars[] int lens[] int opr1_index char *opr2_str);
void multiply(huge_t vars[] int lens[] int opr1_index char *opr2_str);
void power(huge_t vars[] int lens[] int opr1_index char *opr2_str);
/* add your function prototypes here */
/****************************************************************/
/* main function controls all the action do NOT modify this function */
int
main(int argc char *argv[]) {
char line[LINE_LEN+1]; /* to hold the input line */
huge_t vars[NUM_VARS]; /* to hold 10 huge integers */
int lens[NUM_VARS]; /* to hold the length of the 10 vars */
int opr1_index; /* index of the first operand in command */
char op; /* operator in command */
init(vars lens);
while (1) {
printf(PROMPT); /* print prompt */
read_line(line LINE_LEN); /* read one line of command */
if (line[0] == CMT_FLAG) { /* print comment in the test data */
printf(“%s\n“ line); /* used to simplify marking */
continue;
}
if (strcmp(line EXIT_CMD) == 0) { /* see if command is “exit“ */
return 0;
}
opr1_index = line[OPR1_POS] - CH_ZERO;/* first var number at line[1] */
op = line[OP_POS]; /* operator at line[2] */
if (op == ECH_OP) { /* print out the variable */
echo(vars lens opr1_index);
continue;
}
/* do the calculation second operand starts at line[3] */
if (op == ASN_OP) {
assign(vars lens opr1_index line+OPR2_POS);
} else i
- 上一篇:c语言科学与艺术实训答案
- 下一篇:c++写的平衡树数据结构
相关资源
- 用C语言设计并实现一个一元稀疏多项
- C语言计算器带括号、小数计算
- 基于proteus的计算器
- C++课程设计报告-科学计算器加强版
- 基于单片机的智能计算器
- C++编写一个计算器,实现加减乘除,
- 简易计算器基于对话框VC6.0
- 课程设计报告+源码--计算器(C++)
- 基于VC的MFC计算器
- 整数小数四则运算计算器(C语言版用
- c语言课程设计之计算器
- C++builder实现计算器
- 分数计算器C++
- c++计算器 类与对象的练习
- 51单片机做简易计算器
- at89c51单片机+矩阵键盘编写的计算器
- 桌面计算器
- 课程设计--计算器基于MFC
- 基于QT的三元一次方程计算器
- 纯C语言写计算器界面源码
- 密码学MFC实现仿射加密解密超级计算
- C语言一个简易计算器程序
- 基于51单片机的智能计算器(实现两个
- STC15F单片机制作的:计算器、万年历
- 用8051与1601LCD设计的计算器
- 基于51单片机的计算器
- 菜单实现加单计算器(个人原创c++源
- 矩阵计算器(定积分计算器.cpp)
- c++控制台 计算器(正常运算和定义)
- c++源码:原木材积计算器
评论
共有 条评论