长整数四则运算源代码数据结构
更新时间:2024-03-05 02:38:01 阅读量: 综合文库 文档下载
长整数四则运算源代码 数据结构
// 长整数四则运算.cpp : 定义控制台应用程序的入口点。 //
#include <stdafx.h> #include<cstdio> #include<cstring> #include<malloc.h> #include<conio.h> #include<stdlib.h>
#define LEN sizeof(struct Node) #define MAX 1000 #define OK 1 #define ERROR 0 #define OVERFLOW -1 #define TRUE 1 #define FALSE 0 typedef int Status; typedef struct Node {
int data;
struct Node *prior,*next; }Node,*NodeList;
//================================================================================ //求指数函数值 int axp(int a,int k) {
int r=1; if(k==0) return 1;
for(;k>0;k--) r=r*a; return r; }
//输入转换函数
Status conversion(char str[],NodeList &oprh) {//将字符串形式的操作数转换成所需的类型
输入模块NodeList p; int i,k,buffer; k=buffer=0;
oprh=(NodeList)malloc(LEN); oprh->next=oprh; oprh->prior=oprh;
for(i=strlen(str)-1;i>=0;i--) {
//若输入的数不合法就返回重新输入 if((i!=0 || (str[0]!='-' str[0]!='+'))&&(str[i]>'9' str[i]<'0')) return ERROR;
if(str[0]=='0' && str[1]!='\\0') return ERROR;
if((str[0]=='-' || str[0]=='+') str[1]=='0') return ERROR;
if(str[i]!='-' && str[i]!='+') {
buffer=buffer+(str[i]-'0')*axp(10,k); k++;
if(k==4 || str[i-1]=='-' || str[i-1]=='+' || i==0) {//将新建结点插入到头结点之后 p=(NodeList)malloc(LEN); oprh->next->prior=p; p->prior=oprh;
p->next=oprh->next; oprh->next=p; p->data=buffer; buffer=k=0; } } }
if(str[0]=='-')
oprh->data='-'; else
oprh->data='+'; return OK; }
//输入函数
Status input(NodeList &opr1,NodeList &opr2,char str[]) {
&&
||
&&
int flag=OK;
printf("\\n请输入第一个操作数:\\n"); scanf("%s",str); getchar();
flag=conversion(str,opr1); while(!flag) {
printf("ERROR!Input again:\\n"); scanf("%s",str); getchar();
flag=conversion(str,opr1); }
printf("\\n请输入第二个操作数:\\n"); scanf("%s",str); getchar();
flag=conversion(str,opr2); while(!flag) {
printf("ERROR!Input again:\\n"); scanf("%s",str); getchar();
flag=conversion(str,opr2); }
return OK; }
//========================================================================================
//=======================================输出模块========================================= //输出函数
Status output(NodeList oprr,char str[]) {
Status initbuf(char str[]); NodeList p; int i,j,num[4]; if(!oprr)
return ERROR; p=oprr; i=j=0;
initbuf(str);
if(oprr->data=='-')
str[i++]='-'; p=p->next;
if(p->next==oprr && p->data==0)//若要输出的数为0则执行 str[i++]='0'; else
while(p!=oprr) {
num[0]=p->data/1000;
num[1]=(p->data-num[0]*1000)/100;
num[2]=(p->data-num[0]*1000-num[1]*100)/10; num[3]=
p->data-num[0]*1000-num[1]*100-num[2]*10; while(j<4) {
if(num[j]!=0 || (str[0]=='-' && str[1]!='\\0')||(str[0]!='-' && str[0]!='\\0')) //此判断语句是为了避免输出诸如:00123…的情况 str[i++]=num[j]+'0'; j++; }
p=p->next; j=0; }
str[i]='\\0';
printf("%s",str); printf("\\n"); return OK; }
//========================================================================================
//==================================预处理及杂项操作模块==================================
//缓冲区部分初始化函数 Status initbuf(char str[]) { int i;
for(i=0;i<=10;i++) str[i]='\\0';
return OK; }
//比较链表长度函数
int cmplinklen(NodeList opr1,NodeList opr2)
{//opr1链比opr2链长则返回1,短则返回-1,否则返回0 NodeList p1,p2; p1=opr1->prior; p2=opr2->prior;
while(p1->prior!=opr1 && p2->prior!=opr2) {
p1=p1->prior; p2=p2->prior; }
if(p1->prior!=opr1) return 1;
if(p2->prior!=opr2) return -1; return 0; }
//求链表长度
int length(NodeList oprr) {
int count=0;
NodeList p=oprr->next; while(p!=oprr) {
count++;
p=p->next; }
return count; }
//生成指定长度链表
Status Creat(NodeList &oprr,int len) {
NodeList p;
oprr=(NodeList)malloc(LEN); p=oprr;
while(len>0) {
p->next=(NodeList)malloc(LEN); p->next->data='?';
正在阅读:
长整数四则运算源代码数据结构03-05
渠道网告诉您二手家具市场如何,二手家具生意能赚多少钱04-28
幼儿园大班优秀教案:温暖的家04-25
《 永别了,武器》 的叙事艺术07-17
2016年江苏省苏州市高考数学考前指导卷(解析版)10-30
实验七 通信系统的SIMULINK仿真05-23
练钢琴作文500字06-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 四则运算
- 数据结构
- 整数
- 源代码
- 小学心理辅导活动课设计方案
- 施心远主编听力教程1第2版-Unit-1-原文及答案
- 3-《医学统计学》教材后面的练习题及答案-2010-9-16
- 宜昌市西陵区2012年背街小巷综合整治工程
- 电大《商务谈判实务》单元练习与思考(复习及答案)
- 八年级下册思想品德单元检测题
- 2003年常州市数学中考试卷
- 安全教育防传销主题班会会议记录 - 图文
- 浅谈小学语文教师的专业素养
- 团员活动方案
- 武汉理工大学汇编语言试题(三套,内含答案,2012年期末考试绝大
- 中国收藏品鉴定行业市场前景分析预测报告(目录) - 图文
- 也谈课文插图解读
- 四年级下册《观察物体》教案新人教版
- 《电机设计》(陈世坤)课后习题答案(期末复习资料)(DOC)
- 学习解放思想大讨论心得体会
- 东海学校2014年元旦文艺汇演节目串词
- 十一章THDS红外线轴温探测系统 - 图文
- C++语言程序设计课后答案12
- 济南市环境自动监控系统