实验一C(2)

2019-05-24 14:45

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 #include #include #include typedef struct node{ int data;

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 using namespace std; struct node { int ID; int score; node* next; };

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).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:vmware vsphere 6.7虚拟化配置手册

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: