for(i=0;i dt[i]=dt[i]+pdt[i]; if(dt[i]>9) { dt[i]-=10; dt[i+1]++; } } if(dt[i]>9) { dt[i]-=10; dt[i+1]++; } if(dt[kk]!=0) i=kk; else i=kk-1; for(;i>=0;i--) cout< void minusdata(int *dt,int *mdt,int k,int kk,int signal) { int i; for(i=0;i dt[i]=dt[i]-mdt[i]; if(dt[i]<0) { dt[i]+=10; dt[i+1]--; } } if(dt[i]<0) { dt[i]+=10; dt[i+1]--; } while(dt[kk]==0) kk--; if(signal==0) cout<<'-'; for(i=kk;i>=0;i--) cout< void main() { char ch1[100],ch2[100],ch0[2],ch; int data1[100],data2[100]; int i,j,k1,k2,flag=0; for(i=0;i<100;i++) { data1[i]=0; data2[i]=0; } cout<<\ cin>>ch1; cout<<\ cin>>ch2; cout<<\ cin>>ch; ch0[1]='\\0'; j=0; while(ch1[j]=='0') j++; for(i=0;i<99-j;i++) ch1[i]=ch1[i+j]; j=0; 6 while(ch2[j]=='0') j++; for(i=0;i<99-j;i++) ch2[i]=ch2[i+j]; k1=getlength(ch1); k2=getlength(ch2); j=k1; for(i=0;i j--; ch0[0]=ch1[j]; data1[i]=atoi(ch0); if((ch1[i]<'0')||(ch1[i]>'9')) flag=1; } j=k2; for(i=0;i j--; ch0[0]=ch2[j]; data2[i]=atoi(ch0); if((ch2[i]<'0')||(ch2[i]>'9')) flag=1; } if(flag==0) { if(ch=='+') { if(k1 plusdata(data2,data1,k1,k2); else plusdata(data1,data2,k2,k1); } if(ch=='-') { if(k1==k2) { while(data1[k1-1]==data2[k1-1]) k1-=1; if(data1[k1-1]>data2[k1-1]) minusdata(data1,data2,k2,k2,1); else minusdata(data2,data1,k2,k2,0); } else { if(k1>k2) minusdata(data1,data2,k2,k1,1); else minusdata(data2,data1,k1,k2,0); } } } else cout<<\} 四、 注意事项: 1. 在磁盘上创建一个目录,专门用于存储数据结构实验的程序; 2. 输入输出要求:每四位一组,组间用逗号分隔; 7 3. 加和减分别用不同的程序实现; 4. 程序应考虑输入数据的符号。 实验三 单链表操作 一、实验目的: 掌握握单链表的基本操作:插入、删除、查找等运算。 二、实验要求: 1. 认真阅读和掌握本实验的程序。 2. 上机运行程序。 3. 保存和打印出程序的运行结果,并结合程序进行分析。 4. 按照操作需要,打印出文件清单和运行结果。 三、实验内容: 1. 运行下述程序。说明它所实现的功能。 //Filename:exp3-1.cpp //date:04-26 #include struct node *next; } NODE; /******************************************/ NODE *Create(){ NODE *p,*head; int x; head=(NODE *)malloc(sizeof(NODE)); head->next=NULL; printf(\ scanf(\ while(x!=-1){ p=(NODE *)malloc(sizeof(NODE)); p->data=x; p->next=head->next; head->next=p; scanf(\ } return(head); } /******************************************/ void Output(NODE *head){ NODE *p; p=head; printf(\ while(p->next!=NULL){ printf(\ p=p->next; } printf(\} /******************************************/ int Listlen(NODE *head){ int i=0; NODE *p=head; while(p->next!=NULL){ i++; p=p->next; 8 } return(i); } /******************************************/ int Get(NODE *head,int i){ int j=0; NODE *p=head; while(p->next&&j p=p->next; } if(!p->next||j>i) return(0); else return(p->data); } /******************************************/ void Del(NODE *head,int i){ NODE *p=head; int j=0; while(p->next&&j p=p->next; } if(!p->next||j>i-1) printf(\else p->next=p->next->next; } /******************************************/ void Ins(NODE *head,int i,int e){ NODE *p=head,*q; int j=0; while(p->next&&j p=p->next; } if(!p->next&&j>i-1) printf(\else{ q=(NODE *)malloc(sizeof(NODE)); q->data=e; q->next=p->next; p->next=q; } } /******************************************/ Void main(){ NODE *head; int length; int i,element; head=Create(); Output(head); length=Listlen(head); printf(\ printf(\ scanf(\ element=Get(head,i); printf(\ printf(\ scanf(\ Del(head,i); 9 Output(head); printf(\ and element:\\n\ scanf(\ Ins(head,i,element); Output(head); getchar(); } 2. 编写一个程序实现下列目标: 1) 建立一个链表,用于存放成绩(整型); 2) 输出链表中的所有数据、平均成绩和最高成绩。 //Filename:exp3-2.cpp //date:04-26 #include void display(const node*); node* create(); void main() { node* head = NULL; head = create(); if(head != NULL) display(head); else cout<<\学生人数为0\} node* create() { node *head, *temp; int n; cout<<\请输入学生人数:\ cin>>n; if(n == 0) return NULL; head = new node; temp = head; for(int i = 1; i <= n; i++) { cout<<\请输入第\个学生学号: \ cin>>temp->ID; 10
实验一C(2)
2019-05-24 14:45
实验一C(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!