(完整word版)c++实现任意长整数的四则运算

合集下载

(完整word版)C语言长整数运算

(完整word版)C语言长整数运算

#include<iostream.h>#include<string.h>#define N 500void plus() //加法{char stra[N],strb[N];int numa[N],numb[N],c[N],len,i;cout<<"请输入要进行加法运算的两个长整数"<<endl; //输入两个字符型的数cin>>stra>>strb;len=strlen(stra)>strlen(strb)?strlen(stra):strlen(strb);for(i=0;i<strlen(stra);i++) //把a由字符转换成数,并存储在数组中numa[strlen(stra)-1-i]=stra[i]-'0';for(i=strlen(stra);i<len;i++)numa[i]=0;for(i=0;i<strlen(strb);i++) //把b由字符转换成数,并存储在数组中numb[strlen(strb)-1-i]=strb[i]-'0';for(i=strlen(strb);i<len;i++)numb[i]=0;for(i=0;i<len;i++) //c=a+b 并把c的可能的最高位设为c[i]=numa[i]+numb[i];c[len]=0;for(i=0;i<len-1;i++) //把c数组中的数全部转成一位数,大于则向上进{c[i+1]=c[i+1]+c[i]/10;c[i]=c[i]%10;}if(c[len]!=0) cout<<c[len]; //输出c,若最高位为则不输出for(i=len-1;i>=0;i--)cout<<c[i];cout<<endl;}void minus() //减法{char stra[N],strb[N];int numa[N],numb[N],c[N],len,i,flag=0;cout<<"请输入要进行减法运算的两个长整数"<<endl;//输入两个字符型的数cin>>stra>>strb;len=strlen(stra)>strlen(strb)?strlen(stra):strlen(strb);for(i=0;i<strlen(stra);i++) //把a由字符转换成数,并存储在数组中numa[strlen(stra)-1-i]=stra[i]-'0';for(i=strlen(stra);i<len;i++)numa[i]=0;for(i=0;i<len;i++)cout<<numa[i];cout<<endl;for(i=0;i<strlen(strb);i++) //把b由字符转换成数,并存储在数组中numb[strlen(strb)-1-i]=strb[i]-'0';for(i=strlen(strb);i<len;i++)numb[i]=0;for(i=0;i<len;i++)cout<<numb[i];cout<<endl;for(i=0;i<strlen(stra);i++) //c=a-b ,c的每一位等于a+10-b,a的每一位向下退加 {c[i]=numa[i]+10-numb[i];numa[i+1]--;}for(i=0;i<strlen(stra)-2;i++) //整理c,每一位大于的向上一位置进 {c[i+1]=c[i+1]+c[i]/10;c[i]=c[i]%10;}c[strlen(stra)-1]=c[strlen(stra)-1]%10;for(i=strlen(stra)-1;i>=0;i--) //输出c,从第一个不为的位置输出{if(c[i]!=0)flag=1;if(flag==1)cout<<c[i];}cout<<endl;}void multiply(){char stra[N],strb[N];int numa[N],numb[N],i,j,k,dm=0;int c[N][N],d[2*N];cout<<"请输入要进行乘法运算的两个长整数"<<endl; //输入两个字符型的数cin>>stra>>strb;for(i=0;i<N;i++)for(j=0;j<N;j++)c[i][j]=0;for(i=0;i<2*N;i++)d[i]=0;for(i=0;i<strlen(stra);i++) //把a由字符转换成数,并存储在数组中numa[i]=stra[i]-'0';for(i=0;i<strlen(strb);i++) //把b由字符转换成数,并存储在数组中numb[i]=strb[i]-'0';for(i=0;i<strlen(strb);i++) //把c存放在一个二维数组中for(j=0;j<strlen(stra);j++)c[i][j]=numb[i]*numa[j];for(k=0;k<strlen(stra);k++) //把二维数组中在同一位上的数相加放在一位数组d中{for(i=1;i<strlen(strb);i++)for(j=0;j<strlen(stra);j++)if((k-i-j)==0)c[0][k]+=c[i][j];d[dm++]=c[0][k];}for(k=(strlen(stra)-strlen(strb)+1);k<strlen(stra);k++){for(i=1;i<(strlen(strb)-1);i++)for(j=0;j<strlen(stra);j++)if((strlen(strb)-1+k-i-j)==0)c[strlen(strb)-1][k]+=c[i][j];d[dm++]=c[strlen(strb)-1][k];}for(i=(dm-1);i>0;i--) //整理d,每一位大于的向上一位置进{d[i-1]=d[i-1]+d[i]/10;d[i]=d[i]%10;}cout<<endl<<endl;cout<<"两者之积为:"<<endl;for(i=0;i<dm;i++)cout<<d[i];cout<<endl<<endl;}int main(){ int choice;while(1){cout<<"\n";cout<<"\n\t\t 长整数的运算 ";//输入一个选择功能菜单cout<<"\n";cout<<"\n\t\t 1-------长整数的加法 ";cout<<"\n\t\t 2-------长整数的减法 ";cout<<"\n\t\t 3-------长整数的乘法 ";cout<<"\n\t\t 0-------退出 ";cout<<"\n";cout<<"\n\t\t 请选择菜单号(--3)进行操作:";cin>>choice;switch(choice){case 1:plus() ;break;case 2:minus();break;case 3:multiply();break;case 0:return 0;}}return 1;}。

实验报告长整数四则运算

实验报告长整数四则运算

实验报告:长整数四则运算实验者:唐怡04120082 题目:设计一个实现任意长的整数进行加法运算的演示程序一.需求分析1.本演示程序中,长整数为任意长的带符号的长整数的输入及求加法后输出的长整数形式为每四位一组,组间用逗号隔开,输入以“回车符”为结束标志。

2.程度执行的命令包括:1)构造整数1,2)构造整数2,3)做加法运算,4)结束3.测试数据(1)0;0;应输出“0”(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”(4)1,0001,0001;-1,0001,0001;应输出“0”(5)1,0001,0001;-1,0001,0000;应输出“1”(6)-9999,9999,9999;-9999,9999,9999;应输出“-1,9999,9999,9998”(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。

二.概要设计为实现上述程序功能,应以有序表实现长整数的存储,为此,需要抽象数据类型:有序表1.有序表的抽象数据类型定义为:ADT Dulinklist{数据对象:D={ai|ai为带符号整数,1,2,…,n,n>=0}数据关系:R1={<ai-1,ai>|ai-1,ai属于集合D,ai-1<ai,i=2,…..,n}基本操作:InitDulinklist(&)操作结果:构造一个空的有序表LDestroyDulinklist(&)初始条件:有序表L已存在操作结果:销毁有序表LDulinklistLength(L)初始条件:有序表L已存在操作结果:返回有序表L的长度DulinklistEmpty(L)初始条件:有序表L已存在操作结果:若有序表L为空表,则返回TUER,否则返回FALSEGetElem(L,pos)初始条件:有序表L已存在操作结果:若干1〈=POS〈=LENGTH(L),则返回有序表L中第POS个数据元素。

计算机C++实现任意长整数的四则运算

计算机C++实现任意长整数的四则运算

计算机C++实现任意长整数的四则运算一、什么是任意长整数任意长整数,也称作大整数或无限长整数,可以表示出任意长度的整数,是由多个整数构成的有限序列。

它的最大特征是其位数不受限制,可以用来表示任意大小的整数。

二、任意长整数四则运算1、四则运算任意长整数四则运算是指对任意长整数进行加、减、乘、除四种基本运算的操作。

2、C++实现任意长整数的四则运算(1)首先要明确,任意长整数是由多个整数构成的有限序列,所以要想实现四则运算,必须将单个整数进行相应的计算。

(2)因此,可以采用逐位计算的方法来实现任意长整数的四则运算。

具体的步骤如下:(a)以字符串的形式表示任意长整数,并转换成整型数组,每个元素代表任意长整数中的一位数字;(b)从数组的末尾开始,依次取出每一位数字,根据相应的运算符进行计算;(c)将计算结果存入到一个新的数组中;(d)最后,把新数组中的元素按照从小到大的顺序组合成一个新的字符串,这就是任意长整数的四则运算的结果。

三、C++实现任意长整数的四则运算的算法(1)定义函数原型:string Cal(stringstr1,string str2,char op);(2)申请内存空间:int *arr1 = newint[str1.length()]; int *arr2 = newint[str2.length()]; int *res = newint[max(str1.length(),str2.length())];(3)将字符串转化为整型数组:for(int i=0;i <str1.length();i++) arr1[i] = str1[i] - '0'; for(int j=0;j < str2.length();j++) arr2[j] = str2[j] - '0';(4)根据所传入的运算符,进行相应的运算:switch (op) {case '+': //加法运算break; case '-': //减法运算break; case '*': //乘法运算break; case '/': //除法运算break;}(5)将计算结果存入到新的数组中:for(intk=0;k<max(str1.length(),str2.length());k++) res[k] = add[k];(6)将计算结果的数组转换成字符串:string result=""; for(intl=0;l<max(str1.length(),str2.length());l++) result += to_string(res[l]);(7)返回计算结果return result;(8)释放内存空间delete[] arr1; delete[] arr2; delete[] res;四、总结任意长整数四则运算是指对任意长整数进行加、减、乘、除四种基本运算的操作。

(完整word版)c++实现任意长整数的四则运算

(完整word版)c++实现任意长整数的四则运算

实验题目:设计一数据结构可处理任意长度的整数概要设计1.数据结构的定义采用双向链表存储任意长整数。

双向链表的定义如下:class DblList {private:DblNode *head, *tail;DblNode *current;int sign;public:DblList();用说明:点击打开应用程序。

依次输入任意两个整数(例如123456,+1234567),按回车,会出现菜单,如下图:按‘1’则实现两整数的加法按‘2’则实现两整数的乘法按‘#’结束注:菜单可重复出现直至‘#’退出。

实现加法,乘法如下图:2.测试结果:(1) 123456(2) +1234567(3) -1(4) 12a3(5)+注:当输入错误时,允许重新输入。

五、源程序/* 主函数 *//***************************************************/#include ""void main(){string s;string p;DblList list1;while(1){ xit |"<<endl;cout<<"--------------------------"<<endl;while (1){cin>>choose;if (choose=="1"){list1+list2;break;}else if (choose=="2"){list1*list2;break;}else if (choose=="#"){return;}else{cout<<"输入有误,请重新输入!!"<<endl;continue;}}}}/*头文件,包括长整数数据结构的定义,成员函数的定义*//***********************************************************/#include <iostream>#include <string>#include <cmath>using namespace std;struct DblNode{int data;DblNode * prior;DblNode * next;};bool IsNum(char a){ //判断字符a是否是便是数字int s=a-'0';if(s>=0&&s<10) return true;else return false;}bool IsInt(string a){ //判断字符串a是否表达一串数字bool Jud=1;int i=1;char s=a[0];if (a=="+"||a=="-") return false;if (s=='+'||s=='-') {}else if (s>='1'&&s<='9'){}else if (a[0]=='0'&&a[1]=='\0') return true;else return false;while (a[i]!='\0'){Jud=IsNum(a[i]);if (Jud==0) return false;i++;}return true;}int JudSign(string s){ //返回数字的符号if (s[0]=='-') return -1;else if(s[0]=='0'&&s[1]=='\0') return 0;else return 1;}int CtoI(char a){int i=a-'0';return i;}class DblList { //定义一个双向链表类,存储任意长度的数字private: //并可以进行标准化输出和加法,乘法。

大整数的四则运算高质量C语言程序文件

大整数的四则运算高质量C语言程序文件

设计题目:大整数的四则运算1. 功能简介:编写出实现大整数之间相加,相减,相乘,相除的程序,并输出计算结构。

课程设计要求:采用模块化程序设计源程序中应有足够的注释必须上机调试通过注重算法运用,优化存储效率与运算效率需提交源程序(含有注释)及相关文件(数据或数据库文件);提交设计报告书。

2.总体结构:数据初判断运算符号加法正整数非正整转变为减法转变为乘法除法转变为退出流程图:3 .概要设计:1)加法运算利用两个整形数组分别存放两个数a和b的每一位的数值,最低位存放符号。

如果a 和b同号,从最低为开始计算,如果有进位则保存在高一位,本为则减10,然后反序将计算后的各个位的数值保存在一个数组c并输出,如果a和b都是负数则在前面要输出负号,函数的返回值为c的位数。

如果a和b异号,也即两个正整数相减,从最低位开始相减,如果要借位则本位加10再相减,高一位要减1,然后反序将计算后的各个位的数值保存在一个数组c并输出,在前面要输出相应的符号位。

2)减法运算可将减法运算转化为加法运算,只要将被减数的符号改变即可。

3)乘法运算符号存放在最低位,将其中一个数a的每一位分别乘以另一个数b的每一位,并将结果保存在数组c中,然后重复计算a的下一位跟b的每一位的乘积,把上一次计算保存在c 的值加上本次计算后的值,并保存在c自身中,直到a的最高位,最后输出符号和相应的计算结果。

4)除法运算利用乘法和减法,将除数分别乘以1到9,直到其值大于等于被除数的对应的数,然后被除数对应的数减去其乘积,保存在一个数组中,下一次循环把它归到被除数中继续做除法运算,最后得到余数并输出。

4.函数功能:1.void init(int a[],int b[],int *p1,int *p2)2.功能说明:读入所要计算的数值,数据初始化3.i nt plus(int a[],int b[],int c[],int m,int n)4.功能说明:两个正整数相加3. void change(int a[],int b[],int m,int n)功能说明:当两异号数相加时,改变其符号以符合加法运算5.i nt minus(int a[],int b[],int d[],int m,int n)6.功能说明:两个正整数相减5. void minusfun(int a[],int b[],int d[],int m,int n)功能说明:判断两个异号数的相加方式7.i nt multi(int a[],int b[],int c[],int m,int n)8.功能说明:两个正整数相乘7. void print(long c[],int flag)功能说明:打印带符号flag(1为负)的long c[]数组8. int write(long a[],int flag)功能说明:将键盘敲入的数字按4位一组放入long a[],且将符号放入flag9. void mul(long a[],int first,int last,long b[],long c[])10. int compara(long a[],int first,int last,long b[])功能说明:比较数组a,b大小,first last分别为a的最高最低位11. int minusd(long a[],int first,int last,long b[],long c[],int flag)功能说明:a为被减数,first last为a最高最低位,b为减数,c为差,flag为符号12. void div(long a[],long b[],long c[],int fa)功能说明:除法,a除以b的值放入c,fa为a符号13. void menu()功能说明:打印菜单函数14. void main()功能说明:主函数,调用其余函数,计算相应功能的值并输出。

C语言毕业课程设计报告-长整数四则运算

C语言毕业课程设计报告-长整数四则运算

(此文档为word格式,下载后您可任意编辑修改!)C语言课程设计说明书题目:长整型数四则运算学院:班级:学生:学号:班内序号:提交日期:年月日1目录); 长整型数 c = a ^ n (乘方)1、本程序包含四个模块:1)主程序模块:void main() main.c{初始化;do{接受命令;处理命令;}while(“命令”=“结束”)}程序界面模块IntFace.c, IntFace..cvoid DoCommand() 根据输入命令进行相应的处理void Calculate() 执行计算功能void ReSet() 重设系统环境(2)、程序界面模块 IntFace.cvoid InitiInterface(); 界面初始化void GoToCmdxy(); 将光标定位到命令选项提示之后void GoToPrompt(); 将光标定位到命令选项提示行首void ShowMainPrompt(); 显示命令选项提示void ClearScreen(); 以清除整个屏幕,并设置为黑底白字模式void ClearPromptLine(); 清除提示行的显示void ClearWorkSpace(); 清除工作区的显示void InputNumberBox(int OneOrTwo);指定两个输入数的输入窗口,如果超过这个范围文字将自动流动void ResultBox(); 指定计算结果的显示窗口,如果超过这个范围文字将自动流动(3)、长整型数输入输出模块见二小节2分节(4)、长整型数四则运算处理模块见二小节2分节(5)、长整型数存储模块—双向循环链表模块见二小节1分节2、函数的主要调用关系图四、调试分析及编程心得体会1、刚开始考虑进位问题过于简单,导致测试数据时多次出错。

2、刚开始时在输入方式中花了较大功夫,而且用户界面不够友好,程序容错性较差。

3、开始写程序时源程序没有严格按单元模块结构编写,可读性较差。

用C语言实现超长整数的加减乘除四则运算

用C语言实现超长整数的加减乘除四则运算
链表结点定义为: struct nodc{ in t node; struct node 3 nex t; } 具体处理步骤如下: ①以字符串形式输入两长整数。 ②将各字符串转换成数字链表, 链表每一结点存 储字符串中的一位数字, 转化后低位在前, 高位在后。 ③将链表 ha、hb 从前至后, 即低位至高位对应结 点相加, 并将结果存至结果链表 hc 对应结点中, 有进位 要保留记入一位, 结果链表 hc 边使用边增加新结点。 如: 输入字符串数据 1234、4567, 生成的链表 ha、 hb 及相加结果 hc 为:
转, 高位在前低位在后, 然后是取被除数的前几位和除 数作循环减法, 不够减时加一位继续减直到被除数结 束, 即化除法为减法。 除法函数中, 循环相减最后剩下 的 s 串为相除余数。
2 程序实现
2. 1 加法 char 3 add (char 3 a, char 3 b)
加法函数, 传入加数、被加数, 返回加和结果。 如传入 ab 字串为 1234、5678, 则返回加和结果为 6912 { in t i= 0, 1a= strlen (a) , lb= strlen (b) , lc= la> lb? la: lb; cha r 3 s= m a lloc (1c+ 2) ; struct node 3 ha = in itlink ( ) , 3 hb = in itlink ( ) , 3 hc = in itlink () , 3 p , 3 q, 3 h; strto link (ha, a) ; strto link (hb, b) ; 将数字字符串 a、b 转化为链表, 低 位在前高位在后 p = ha > ; nex t; q hb > nex t; p、q 分别指向加数、被加数个位结点 w h ile (p ! = NU LL && q! = NU LL ) { h m alloc (sizcof (struct node) ) ; 申请相加和结点 h > data= p = > data+ q > data+ i; 结点相加, i 为进位 i= h > data 10; 取相加进位, 加和大于 10 时为 1, 否 则为 0 h > data= h > data&10; 加和大于 10 时, 和结点只 取个位 h nex t= hc ?nex t; hc > nex t h; 将和结点 h, 插入 和链表 hc p = p > nex t; q q > nex t; 加数、被加数下移一位 } w h ile (p ! = NU LL ) 加数已结束, 被加数还有数据 { h= m a lloc (sizeof (struct node) ) ; h > da ta= p > da ta+ i; i= h > da ta 10; h > da ta= h > da ta% 10; h > nex t= hc > nex t; hc > nex t= h; p = p > nex t; } w h ilc (q! = NU LL ) 被加数已结束, 加数还有数据 { h= m a lloc (sizeof (struct node) ) ; h > da ta= q > da ta+ i; i= h > da ta 10;

C语言简单计算器实现四则运算可带括号

C语言简单计算器实现四则运算可带括号

C语言简单计算器实现四则运算可带括号```c#include <stdio.h>#include <stdlib.h>int priority(char op)if (op == '+' , op == '-')return 1;else if (op == '*' , op == '/')return 2;else if (op == '(')return 0;elsereturn -1;void calculate(char op, int *numStack, int *top, char *opStack, int *opTop)int num2 = numStack[(*top)--];int num1 = numStack[(*top)--];switch (op)case '+':numStack[++(*top)] = num1 + num2; break;case '-':numStack[++(*top)] = num1 - num2; break;case '*':numStack[++(*top)] = num1 * num2; break;case '/':numStack[++(*top)] = num1 / num2; break;}int eval(char *expr)int numStack[100];char opStack[100];int numTop = -1;int opTop = -1;int num = 0;int sign = 1;while (*expr != '\0')if (*expr >= '0' && *expr <= '9')num = num * 10 + (*expr - '0');} else if (*expr == '+' , *expr == '-')numStack[++numTop] = num * sign;num = 0;sign = (*expr == '+') ? 1 : -1;} else if (*expr == '*' , *expr == '/')while (opTop >= 0 && priority(*expr) <=priority(opStack[opTop]))calculate(opStack[opTop--], numStack, &numTop, opStack, &opTop);}opStack[++opTop] = *expr;} else if (*expr == '(')opStack[++opTop] = '(';} else if (*expr == ')')while (opStack[opTop] != '(')calculate(opStack[opTop--], numStack, &numTop, opStack, &opTop);}opTop--;}expr++;}numStack[++numTop] = num * sign;while (opTop >= 0)calculate(opStack[opTop--], numStack, &numTop, opStack, &opTop);}return numStack[0];int maichar expr[100];printf("请输入表达式:");scanf("%s", expr);int result = eval(expr);printf("计算结果:%d\n", result);return 0;```以上是一个简单的C语言四则运算计算器的实现。

(完整word版)长整数四则运算实验报告

(完整word版)长整数四则运算实验报告

一、需求分析设计一个实现任意长的整数间进行四则运算的程序,要求完成长整数的加、减运算,乘除运算可选做。

在这里长整数没有范围限制,可任意长。

运算后的进位、借位等都要进行正确处理,可实现动态的输入,实时的输出。

测试数据:0、0;输出“0”2345,6789、-7654,3211;输出“1,0000,0000”1,0000,0000,0000、9999,9999;输出“9999,0000,0001”1,0001,0001、;1,0001,0001;输出“0”自选数据:1,1111;1,1111 输出“0”二、概要设计1、数据结构利用双向循环链表来实现对长整数的存储。

选择该数据结构来完成长整数的加减运算是因为a.要对长整数进行运算,需要对长整数进行存储,选择用链表对长整数存储。

b.存储的顺序是从左到右,运算的顺序则是从右到左,为操作方便选择循环链表。

c.在运算过程中有进位和借位的操作。

2、使用算法三、详细设计typedef struct DoubleNode //定义链表元素void InitNode(DLNode **head) //初始化链表int InsertNode(DLNode *head,int n,DataType x) //向链表第N个位置插入元素Xint digit(int n) //判断整数N有几位void PrintNode(DLNode *head) //打印链表void DestroyNode(DLNode **head)//销毁链表void add(DLNode *h1,DLNode *h2) //两数相加void jian(DLNode *h1,DLNode *h2) //两数相减int main() //入口函数四、调试分析由于在程序设计时,对于指针的不了解,编程时使用双重指针,无形中给自己增添了更多麻烦。

老师在检查的过程中指出并教导了这一点。

五、测试结果1、输入0和0做加法运算,输出“0”,结果如下图:2、输入2345,6789和-7654,3211做减法运算,输出“1,0000,0000”,结果如下图:3、输入1,0000,0000,0000和9999,9999做减法运算,输出“9999,0000,0001”,结果如下图:4、输入1,0001,0001和1,0001,0001做减法运算,输出“0”,结果如下图:5、输入1,1111和1,1111做减法运算,输出“0”结果如下图:六、心得体会本次实验主要是针对双向链表的练习,通过这次试验我们大家对于双向循环链表有了更深刻的记忆。

四则运算(c语言)

四则运算(c语言)

四则运算(c语⾔)博客班级作业要求作业⽬标能够实现四则运算⼩程序的基本需求,同时练习写博客(排版等)学号3190704217⼆. 题⽬要求写⼀个能⾃动⽣成⼩学四则运算题⽬的程序,然后在此基础上扩展:1)除了整数以外,还要⽀持真分数的四则运算,例如:1/6+1/8=7/242)程序要求能处理⽤户的输⼊,判断对错,累积分数3)程序⽀持可以由⽤户⾃⾏选择加、减、乘、除运算4)使⽤-n参数控制⽣成题⽬的个数,例如Myapp.exe -n 10,将⽣成10个题⽬三. 代码#include <stdio.h>#include <stdlib.h>#include <time.h>#include <math.h>int s;//答对的题⽬数量float score;//得分(百分制)//判断答案是否正确void judge0(float a,float ta) //专为除法提供判断函数{float error=a-ta;//计算结果与真正答案的误差⼩于⼀定值if((error<=0.005)&&(error>=-0.004)){printf("回答正确!\n");s++;}elseprintf("回答错误,正确答案是 %.2f\n",ta);}void judge(int a,int ta) //加法减法,乘法的判断函数{if(a==ta){printf("回答正确!\n");s++;}elseprintf("回答错误,正确答案是 %d\n",ta);}void judge1(int a1,int a2,float ta) //真分数运算的判断函数{float a=(float)a1/(float)a2;if(a==ta){printf("回答正确!\n");s++;}elseprintf("回答错误,正确答案是 %.2f\n",ta);}//真分数的随机运算int random0(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL)));while(i<num){int type;//运算类型,加减乘除int left1,left2,right1,right2;int answer1,answer2;float trueanswer;left1= rand() % 100;left2= rand() % 100;type = rand() % 4;if(left1>left2) //转化为真分数{int t;t=left1;left2=left1;left1=t;}right1 = rand() % 100;right2 = rand() % 100;if(right1>right2)//转化为真分数{int t;t=right1;right2=right1;right1=t;}switch(type){case 0:trueanswer=((float)left1/(float)left2)+((float)right1/(float)right2); printf("%d/%d + %d/%d = ", left1, left2,right1,right2);scanf("%d/%d",&answer1,&answer2);judge1(answer1,answer2,trueanswer);break;case 1:trueanswer=((float)left1/(float)left2)-((float)right1/(float)right2); printf("%d/%d - %d/%d = ", left1, left2,right1,right2);scanf("%d/%d",&answer1,&answer2);judge1(answer1,answer2,trueanswer);break;case 2:trueanswer=((float)left1/(float)left2)*((float)right1/(float)right2); printf("%d/%d * %d/%d = ", left1, left2,right1,right2);scanf("%d/%d",&answer1,&answer2);judge1(answer1,answer2,trueanswer);break;case 3:trueanswer=((float)left1/(float)left2)/((float)right1/(float)right2); printf("%d/%d / %d/%d = ", left1, left2,right1,right2);scanf("%d/%d",&answer1,&answer2);judge1(answer1,answer2,trueanswer);break;}i++;}return num;}// 整数的随机运算int random(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL)));while(i<num){int type;//运算类型int left, right;int answer,trueanswer;left = rand() % 100;type = rand() % 4;right = rand() % 100;switch(type){case 0:trueanswer=left+right;printf("%d + %d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer); break;case 1:trueanswer=left-right;printf("%d - %d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer); break;case 2:trueanswer=left*right;printf("%d * %d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer); break;case 3:float answer0,trueanswer0; trueanswer0=((float)left)/((float)right); printf("%d /%d = ", left, right);scanf("%f",&answer0);judge0(answer0,trueanswer0); break;}i++;}return num;}//加法int add(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL))); while(i<num){int left, right,answer,trueanswer;left = rand() % 100;right = rand() % 100;trueanswer=left+right;printf("%d +%d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer);i++;}return num;}//减法int subtract(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL))); while(i<num){int left, right,answer,trueanswer; left = rand() % 100;right = rand() % 100; trueanswer=left-right;printf("%d -%d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer);i++;}return num;}//乘法int multiply(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL))); while(i<num){int left, right,answer,trueanswer; left = rand() % 100;right = rand() % 100; trueanswer=left*right;printf("%d *%d = ", left, right); scanf("%d",&answer);judge(answer,trueanswer);i++;}return num;}//除法int divide(){int num,i=0;printf("请输⼊题⽬数量\n");scanf("%d",&num);srand(unsigned(time(NULL))); while(i<num){int left, right;float answer,trueanswer;left = rand() % 100;right = rand() % 100; trueanswer=((float)left)/((float)right); printf("%d /%d = ", left, right); scanf("%f",&answer);judge0(answer,trueanswer);i++;}return num;}//打印界⾯提⽰信息void main(){printf("welcome!\n");printf("\n");int choose,t;do{s=0;score=0;int n;printf("********************四则运算********************\n");printf("\n");printf(" 1.随即题⽬\n");printf(" 2.加法题⽬\n");printf(" 3.减法题⽬\n");printf(" 4.乘法题⽬\n");printf(" 5.除法题⽬\n");printf(" 6.分数运算\n");printf(" 7.退出\n");printf("\n");printf("******************Designed by 吴⼭茶******************\n");printf("\n");printf("请选择计算类型:");scanf("%d",&t);choose=t;printf("%d",choose);printf("\n");system("cls");switch(choose){case 1:n=random();printf("\n");break;case 2:n=add();printf("\n");break;case 3:n=subtract();printf("\n");break;case 4:n=multiply();printf("\n");break;case 5:n=divide();printf("\n");break;case 6:n=random0();printf("\n");break;default:break;}score=(float)s/(float)n;printf("得分:%.2f\n",score);}while(choose!=7);exit(0);}三.运⾏结果1.显⽰界⾯2.加法运算3.随机运算4.真分数运算任务内容计划完成需要的时间(min)实际完成需要的时间(min)计划1020任务内容计划完成需要的时间(min)实际完成需要的时间(min)估计这个任务需要多少时间,并规划⼤致⼯作步骤55开发00需求分析(包括学习新技术)1010⽣成设计⽂档00设计复审1530代码规范55具体设计2020具体编码150180代码复审1010报告00测试报告00计算⼯作量300330+事后总结,并提出过程改进计划2010。

c语言编写四则运算

c语言编写四则运算

C语言编写四则运算#include<stdio.h>//计算器#include<malloc.h>#define STACK_SIZE100 //max size of the stack#define STACK_INCREMENT10 //realloc sizetypedef struct FStack//stack of int{float* base;float* top;int stacksize;}FStack;void Init(FStack* s){s->base = (float*)malloc(STACK_SIZE * sizeof(FStack));if (!s->base){printf("overflow!\n");return;}s->top = s->base;s->stacksize = STACK_SIZE;}bool isEmpty(FStack* s){if (s->top == s->base){return true;}else{return false;}}void Push(FStack* s, float e){if (s->top - s->base >= s->stacksize){printf("stack is full!\nrealloc %d\n", STACK_INCREMENT);s->base = (float*)realloc(s->base, (s->stacksize +sizeof(FStack)));if (!s->base){printf("overflow!\n");return;}s->top = s->base + s->stacksize;s->stacksize += STACK_INCREMENT;}*(s->top) = e;(s->top)++;}float GetTop(FStack* s){if (s->top == s->base){printf("stack is empty!\n");return 0;}float e = *(s->top - 1);return e;}void Pop(FStack* s){if (s->top == s->base){printf("stack is empty!\n");return;}s->top--;}typedef struct CStack//stack of char{char* base;char* top;int stacksize;}CStack;void Init(CStack* s){s->base = (char*)malloc(STACK_SIZE * sizeof(CStack));if (!s->base){printf("overflow!\n");return;}s->top = s->base;s->stacksize = STACK_SIZE;}bool isEmpty(CStack* s){if (s->top == s->base){return true;}else{return false;}}void Push(CStack* s, int e){if (s->top - s->base >= s->stacksize){printf("stack is full!\nrealloc %d\n", STACK_INCREMENT);s->base = (char*)realloc(s->base, (s->stacksize +sizeof(CStack)));if (!s->base){printf("overflow!\n");return;}s->top = s->base + s->stacksize;s->stacksize += STACK_INCREMENT;}*(s->top) = e;(s->top)++;}char GetTop(CStack* s){if (s->top == s->base){printf("stack is empty!\n");return 0;}char e = *(s->top - 1);return e;}void Pop(CStack* s){if (s->top == s->base){printf("stack is empty!\n");return;}s->top--;}bool isOper(char ch){if (ch == '+' || ch == '-' || ch == '*' || ch == '/' || ch == '%') {return true;}else{return false;}}int Priority(char ch){int p;switch(ch){case'(':p = 0;break;case'+':case'-':p = 1;break;case'*':case'/':case'%':p = 2;break;}return p;}float Calculate(float f1, float f2, char oper) {float f3;switch(oper){case'+':f3 = f1 + f2;break;case'-':f3 = f1 - f2;break;case'*':f3 = f1 * f2;break;case'%':f3 = (float)((int)f1 % (int)f2);break;case'/':if (f2 == 0){printf("\nDevided by zero!");exit(1);}else{f3 = f1 / f2;}break;}return f3;}float StrtoFloat(char* str, int* pos){float fRes;int i = *pos;int k;char n[50];for(k= 0; str[i] >= '0'&& str[i] <= '9'|| str[i] == '.'; i++, k++) {n[k] = str[i];}n[k] = '\0';*pos = i;fRes = atof(n);return fRes;}bool Check(char* str){int i = 0;while (str[i] != '\0'){if (str[i] != '+' && str[i] != '-' && str[i] != '*' && str[i] != '/' && str[i] != '%' && str[i] != '.' && str[i] != '(' && str[i] != ')' && (str[i] < '0' || str[i] > '9')){return false;}i++;}return true;}void main(){char exp[100];int i;float f, f1, f2;char oper;FStack fstack;CStack cstack;Init(&fstack);Init(&cstack);printf("The expression is:");gets(exp);if (!Check(exp)){printf("input error! exit now!\n");exit(1);}for (i = 0; exp[i] != '\0' && exp[i] != -52; i++){if (!isOper(exp[i])){f = StrtoFloat(exp, &i);Push(&fstack, f);}if (isOper(exp[i])){if (!isEmpty(&cstack)){while (!isEmpty(&cstack) && Priority(exp[i]) <= Priority(GetTop(&cstack))){oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}Push(&cstack, exp[i]);}else{Push(&cstack, exp[i]);}}else if (exp[i] == '('){Push(&cstack, exp[i]);}else if (exp[i] == ')'){while (GetTop(&cstack) != '(' && !isEmpty(&cstack)){oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}Pop(&cstack);}}while (!isEmpty(&cstack)){oper = GetTop(&cstack);Pop(&cstack);f2 = GetTop(&fstack);Pop(&fstack);f1 = GetTop(&fstack);Pop(&fstack);f = Calculate(f1, f2, oper);Push(&fstack, f);}printf("\nThe result is:%f\n", GetTop(&fstack));Pop(&fstack);}。

c语言四则运算程序

c语言四则运算程序

c语言四则运算程序本文将介绍一个简单的C语言程序,它可以实现四则运算。

四则运算是数学学科中最基础的计算方法之一,包括加、减、乘、除四个运算符。

通过本程序,您可以输入两个数和运算符,程序将自动计算并输出结果。

具体实现方法如下:1.首先,我们需要定义三个变量,分别代表输入的两个数和运算符。

这里我们使用float类型,以支持小数计算。

2.接着,我们需要使用scanf函数从键盘读入这三个变量的值。

scanf函数可以将输入的字符转换为相应的数据类型,这里我们可以使用“%f”读取浮点数,使用“%c”读取字符。

3.接下来,我们使用switch语句对输入的运算符进行判断。

根据不同的运算符,我们执行相应的计算,最终将结果输出到屏幕上。

4.在程序的结尾,我们可以使用return 0;语句来结束程序的执行。

下面是完整的C语言四则运算程序代码:#include <stdio.h>int main() {float num1, num2, result;char op;printf('请输入两个数和运算符,用空格隔开:');scanf('%f %f %c', &num1, &num2, &op); switch (op) {case '+':result = num1 + num2;printf('%.2f + %.2f = %.2f', num1, num2, result);break;case '-':result = num1 - num2;printf('%.2f - %.2f = %.2f', num1, num2, result);break;case '*':result = num1 * num2;printf('%.2f * %.2f = %.2f', num1, num2, result);break;case '/':if (num2 == 0) {printf('除数不能为0!');} else {result = num1 / num2;printf('%.2f / %.2f = %.2f', num1, num2, result);}break;default:printf('运算符错误!');}return 0;}通过以上程序,您可以轻松地进行四则运算,提高计算效率。

C语言大数四则运算

C语言大数四则运算
char *p;
if(scmp(r, u)<0)
return NULL;
lr=strlen(r);
lu=strlen(u);
p=(char *)malloc((unsigned int)(lr+1)*sizeof(char));
}
return (strcmp(r, u));
}//end scmp()
//两个串表示数的减法
char *ssub(char *r, char *u)
{
unsigned int i,lr, lu, lp,c=0;
char h,hc;
for(i=0; i<lr+lu; ++i)
p[i]='0';
p[lr+lu]='\0';
for(i=lr-1; i>=0; --i)
{
c=0;
for(j=lu-1; j>=0; --j)
r[i]='\0';
for(iw=0; iw<lu+n+2; ++iw)
{
if(iw<lu)
{
cdel0(r);
lr=strlen(r);
r[lr]=u[iw];
f[lu]='.';
continue;
}
kh=0;
while(scmp(r, v)>=0)
{
p=r;
r=ssub(p, v);
{
h=r[lr-i-1]-'0'+c;
if(h>9)

大一c语言编程四则运算

大一c语言编程四则运算

大一c语言编程四则运算四则运算是我们日常生活中最常见的数学运算,它包括加法、减法、乘法和除法。

在计算机编程中,四则运算是非常基础的知识,也是必不可少的。

本文将介绍如何使用c语言实现四则运算。

加法加法是最基本的运算之一,在c语言中可以使用加号(+)来实现。

例如,我们要计算2+3的结果,可以写成:int result = 2 + 3;这样就可以将计算结果赋值给变量result。

在c语言中,加法还可以用于字符串拼接,例如:char str1[] = "hello";char str2[] = "world";char str3[12];strcpy(str3, str1);strcat(str3, str2);printf("%s", str3);这段代码会输出"helloworld",其中strcpy函数用于将str1复制到str3中,而strcat函数则用于将str2拼接到str3中。

减法减法是另一种基本的运算,可以使用减号(-)来实现。

例如,我们要计算5-3的结果,可以写成:int result = 5 - 3;这样就可以将计算结果赋值给变量result。

乘法乘法也是一种基本的运算,可以使用乘号(*)来实现。

例如,我们要计算2×3的结果,可以写成:int result = 2 * 3;这样就可以将计算结果赋值给变量result。

除法除法也是一种基本的运算,可以使用除号(/)来实现。

需要注意的是,在c语言中,整数除以整数的结果仍为整数,因此如果要得到小数结果,需要将其中一个操作数转换为浮点数。

例如,我们要计算5÷2的结果,可以写成:float result = 5.0 / 2;这样就可以将计算结果赋值给变量result,并且得到一个小数结果。

综合运算除了以上四种基本运算,c语言还可以进行更加复杂的运算,例如混合运算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验题目:设计一数据结构可处理任意长度的整数概要设计1.数据结构的定义采用双向链表存储任意长整数。

双向链表的定义如下:class DblList {private:DblNode *head, *tail;DblNode *current;int sign;public:DblList(); //构造函数~DblList(); //析构函数bool CreatList(string); //生成一个双向链表,存储整数int GetCount(); //获取整数的长度void Insert(DblNode *); //从表尾插入一个结点void InsertFront(DblNode *); //从表头插入void Clear(); //清除该链表void operator+(DblList &); //实现两个任意整数的加法void operator*(DblList &); //实现两个任意整数的乘法DblList & operator=(DblList &); //重载赋值运算符int Compare(DblList &); //两个整数的绝对值比较void Display(); //任意长度整数的标准化输出};说明:数据的存储,无外乎顺序或者链表。

顺序存储时,定义数组无法实现任意长度,而且需要预设一个maxsize,不是特别的方便。

所以采用链式存储方式。

而且任意长数据通过字符串输入。

在链表的每一个结点中,数据域是在该数位上的数字大小。

2.主要功能模块的功能◆任意长整数的输入◆任意长整数的标准化输出◆两个整数的加法◆两个整数的乘法三.详细设计(主模块流程图)五、使用说明及测试结果1.使用说明:点击打开应用程序pro1.exe。

依次输入任意两个整数(例如123456,+1234567),按回车,会出现菜单,如下图:按‘1’则实现两整数的加法按‘2’则实现两整数的乘法按‘#’结束注:菜单可重复出现直至‘#’退出。

实现加法,乘法如下图:2.测试结果:(1) 123456(2) +1234567(3) -987654321(4) 12a3(5)+注:当输入错误时,允许重新输入。

六、源程序/* 主函数*//***************************************************/#include "cal.h"void main(){string s;string p;DblList list1;while(1){ //输入错误时,允许重新输入cout<<"Input num1"<<endl;cin>>s;bool ok1=list1.CreatList(s);if (!ok1){cout<<"error!"<<endl;}else{cout<<"num1:";list1.Display();break;}}DblList list2;while(1){cout<<"Input num2:"<<endl;cin>>p;bool ok2=list2.CreatList(p);if (!ok2){cout<<"error!"<<endl;}else{cout<<"num2:";list2.Display();break;}}string choose;while (1){cout<<"请选择运算法:"<<endl;cout<<"--------------------------"<<endl; /*菜单*/cout<<"|1.num1+num2 |"<<endl; /*可以重复输入运算符,按'#'退出*/cout<<"|2.num1*num2 |"<<endl;cout<<"|#.exit |"<<endl;cout<<"--------------------------"<<endl;while (1){cin>>choose;if (choose=="1"){list1+list2;break;}else if (choose=="2"){list1*list2;break;}else if (choose=="#"){return;}else{cout<<"输入有误,请重新输入!!"<<endl;continue;}}}}/*头文件,包括长整数数据结构的定义,成员函数的定义*//***********************************************************/#include <iostream>#include <string>#include <cmath>using namespace std;struct DblNode{int data;DblNode * prior;DblNode * next;};bool IsNum(char a){ //判断字符a是否是便是数字int s=a-'0';if(s>=0&&s<10) return true;else return false;}bool IsInt(string a){ //判断字符串a是否表达一串数字bool Jud=1;int i=1;char s=a[0];if (a=="+"||a=="-") return false;if (s=='+'||s=='-') {}else if (s>='1'&&s<='9'){}else if (a[0]=='0'&&a[1]=='\0') return true;else return false;while (a[i]!='\0'){Jud=IsNum(a[i]);if (Jud==0) return false;i++;}return true;}int JudSign(string s){ //返回数字的符号if (s[0]=='-') return -1;else if(s[0]=='0'&&s[1]=='\0') return 0;else return 1;}int CtoI(char a){int i=a-'0';return i;}class DblList { //定义一个双向链表类,存储任意长度的数字private: //并可以进行标准化输出和加法,乘法。

DblNode *head, *tail;DblNode *current;int sign;public:DblList(); //构造函数~DblList(); //析构函数bool CreatList(string); //生成一个双向链表int GetCount(); //获取整数的长度void Insert(DblNode *); //从表尾插入一个结点void InsertFront(DblNode *); //从表头插入一个结点void Clear(); //清除该链表void operator+(DblList &); //实现两个任意整数的加法void operator*(DblList &); //实现两个任意整数的乘法DblList & operator=(DblList &); //重载赋值运算符int Compare(DblList &); //两个整数的绝对值比较void Display(); //任意长度整数的标准化输出};DblList::DblList(){head=new DblNode(); //构造函数head->next=NULL;head->prior=NULL;tail=head;current=NULL;sign=0;}DblList::~DblList(){ //析构函数while (head->next!=NULL){current=head->next;head->next=current->next;delete current;}current=NULL;sign=0;delete head;head=NULL;tail=NULL;}int DblList::GetCount(){ //返回该数字的长度(不包括符号位)current=head->next;int count=0;while (current){count++;current=current->next;}current=NULL;return count;}void DblList::Insert(DblNode *p){ //从链表尾部插入一个结点tail->next=p;p->prior=tail;tail=p;}void DblList::InsertFront(DblNode *q){ //从链表头部插入一个结点if (head->next==NULL){head->next=q;q->prior=head;tail=q;}else{q->next=head->next;head->next->prior=q;head->next=q;q->prior=head;}}bool DblList::CreatList(string s){ //输入的任意长度的表示数字的字符串bool j=IsInt(s); //以此生成双向链表if (!j) return j;else{int i=0;sign=JudSign(s);if (s[0]=='+'||s[0]=='-') i++;while (s[i]!='\0'){int ia=CtoI(s[i]);current=new DblNode();current->data=ia;current->next=NULL;current->prior=NULL;Insert(current);i++;current=NULL;}return true;}}void DblList::Clear(){while (head->next){current=head->next;head->next=current->next;delete current;}tail=head;sign=0;current=NULL;}int DblList::Compare(DblList & s){ //任意两个长度数字绝对值比较int a=GetCount();int b=s.GetCount();if (a>b) return 1;else if (a<b) return -1;else{current=head->next;s.current=s.head->next;while (current!=NULL){int re=current->data-s.current->data;if (re>0) return 1;else if (re<0) return -1;else{current=current->next;s.current=s.current->next;}}current=NULL;s.current=NULL;return 0;}}DblList & DblList::operator =(DblList &s){Clear();sign=s.sign;s.current=s.head->next;while (s.current!=NULL){current=new DblNode();current->data=s.current->data;Insert(current);s.current=s.current->next;}s.current=NULL;current=NULL;return *this;}void DblList::operator +(DblList & s){ //实现加法(包括减法)DblList temp;int da;int f=0;int si=Compare(s);if (si==0&&(sign+s.sign==0)) temp.sign=0;else{if (si==0) temp.sign=sign;else if(si>0) temp.sign=sign;else temp.sign=s.sign;current=tail;s.current=s.tail;while (1){if (current==head&&s.current==s.head){if (f){da=f;temp.current=new DblNode();temp.current->data=f;temp.InsertFront(temp.current);}if (!f) break;f=0;}else if (current!=head&&s.current==s.head){temp.current=new DblNode();temp.current->data=current->data+f;temp.InsertFront(temp.current);current=current->prior;f=0;}else if (current==head&&s.current!=s.head){temp.current=new DblNode();temp.current->data=s.current->data+f;temp.InsertFront(temp.current);s.current=s.current->prior;f=0;}else{da=current->data*sign+s.current->data*s.sign+f;if (da*temp.sign>=10){da=da-10*temp.sign;f=temp.sign;}else if (da*temp.sign<0){da=da+10*temp.sign;f=-temp.sign;}else f=0;temp.current=new DblNode();temp.current->next=NULL;temp.current->data=abs(da);temp.InsertFront(temp.current);current=current->prior;s.current=s.current->prior;}}current=NULL;s.current=NULL;}temp.current=temp.head->next;if (temp.current!=NULL)while (temp.current->data==0){temp.head->next=temp.current->next;delete temp.current;temp.current=temp.head->next;}temp.current=NULL;cout<<"num1+num2=";temp.Display();}void DblList::operator*(DblList & s){ //实现乘法int cf=0;int ans;int i,j;int count=0;DblList temp;temp.sign=sign*s.sign;int a1=GetCount();int a2=s.GetCount();int a=a1+a2;for (i=0;i<a;i++){temp.current=new DblNode();temp.current->data=0;temp.current->next=NULL;temp.current->prior=NULL;temp.InsertFront(temp.current);}s.current=s.tail;while (s.current!=s.head){current=tail;temp.current=temp.tail;for (i=0;i<count;i++) temp.current=temp.current->prior;for(j=0;j<a1;j++){ans=s.current->data*current->data+temp.current->data+cf;temp.current->data=ans%10;cf=ans/10;current=current->prior;temp.current=temp.current->prior;}if (cf!=0){temp.current->data=temp.current->data+cf;cf=0;}s.current=s.current->prior;temp.current=temp.tail;count++;}if(temp.head->next->data==0){temp.current=temp.head->next;temp.head->next=temp.current->next;delete temp.current;temp.current=NULL;}cout<<"num1*num2=";temp.Display();}void DblList::Display(){ //任意长数字的标准化输出int count=GetCount();if (sign==0){cout<<"0"<<endl;return ;}else if (sign==-1) cout<<"-";current=head->next;while (current!=NULL){if(count>0){cout<<current->data;count--;if (count%3==0&&count!=0) cout<<",";current=current->next;}}current=NULL;cout<<endl;cout<<"--------------------------------------------------------------"<<endl; }。

相关文档
最新文档