西工大c语言实验100题07.docx

上传人:b****4 文档编号:4461740 上传时间:2022-12-01 格式:DOCX 页数:20 大小:106.11KB
下载 相关 举报
西工大c语言实验100题07.docx_第1页
第1页 / 共20页
西工大c语言实验100题07.docx_第2页
第2页 / 共20页
西工大c语言实验100题07.docx_第3页
第3页 / 共20页
西工大c语言实验100题07.docx_第4页
第4页 / 共20页
西工大c语言实验100题07.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

西工大c语言实验100题07.docx

《西工大c语言实验100题07.docx》由会员分享,可在线阅读,更多相关《西工大c语言实验100题07.docx(20页珍藏版)》请在冰豆网上搜索。

西工大c语言实验100题07.docx

西工大c语言实验100题07

第七次

CH1112

#include

#include

intmain()

{

structdata

{doublea;

structdata*q;

}*head,*p1,*p2,*p3,*p;

intn=0,i=1;

doublet;

p1=(structdata*)malloc(sizeof(structdata));

scanf("%lf",&p1->a);

head=NULL;

while(p1->a>0)

{

p2=p1;

if(n==0)head=p1;

p1=(structdata*)malloc(sizeof(structdata));

scanf("%lf",&p1->a);

p2->q=p1;

n++;

}

if(head!

=NULL)p2->q=NULL;

p1=p3=head;

printf("原始表:

");

while(p3!

=NULL)

{

if(i==1)printf("%.0lf",p3->a),i++;

elseprintf("->%.0lf",p3->a);

p3=p3->q;

}

printf("\n");

if(head!

=NULL)

{p=p1->q;

while(p!

=NULL)

{p3=p1;

p1=p;

p=p1->q;

p1->q=p3;

if(p3==head)head->q=NULL;

}

p1->q=p3;

}

i=1;

printf("反转表:

");

while(p1!

=NULL)

{

if(i==1)printf("%.0lf",p1->a),i++;

elseprintf("->%.0lf",p1->a);

p1=p1->q;

}

printf("\n");

return0;

}

CH1205

#include

intmain()

{

shortintn,f=1,i=0,a[16]={0};

scanf("%hd",&n);

if(n<0)n=-n,f=0;

while(n!

=0)

{

a[i]=n%2;

n=n/2;

i++;

}

if(f==0)

{

for(i=0;i<16;i++)

if(a[i]==0)a[i]=1;

elsea[i]=0;

a[0]=a[0]+1;

for(i=0;i<16;i++)

if(a[i]==1)break;

elsea[i]=0,a[i+1]=a[i+1]+1;

}

for(i=15;i>=0;i--)

printf("%hd",a[i]);

printf("\n");

return0;

}

T1102

#include

structstu

{longxh;

charname[50];

intage;

doublea[7];

doublesum;

doubleaver;

}b[10],*p;

intmain()

{inti,j;

doublemax;

max=0;

for(i=0;i<10;i++)

{b[i].sum=0;

scanf("%ld%s%d",&b[i].xh,b[i].name,&b[i].age);

getchar();

for(j=0;j<7;j++)

{scanf("%lf",&b[i].a[j]);

getchar();

b[i].sum=b[i].sum+b[i].a[j];

}

b[i].aver=b[i].sum/7;

if(b[i].sum>max)max=b[i].sum,p=&b[i];

}

printf("%ld%s%d",p->xh,p->name,p->age);

for(i=0;i<7;i++)

printf("%.2lf",p->a[i]);

printf("\n");

return0;

}

T1103

#include

typedefstructcomplex{

doubler;

doublei;

}COMPLEX;

intmain()

{COMPLEXa,b;

scanf("%lf%lf",&a.r,&a.i);

scanf("%lf%lf",&b.r,&b.i);

printf("(%.2lf%+.2lfi)+(%.2lf%+.2lfi)=(%.2lf%+.2lfi)\n",a.r,a.i,b.r,b.i,a.r+b.r,a.i+b.i);

printf("(%.2lf%+.2lfi)-(%.2lf%+.2lfi)=(%.2lf%+.2lfi)\n",a.r,a.i,b.r,b.i,a.r-b.r,a.i-b.i);

printf("(%.2lf%+.2lfi)*(%.2lf%+.2lfi)=(%.2lf%+.2lfi)\n",a.r,a.i,b.r,b.i,a.r*b.r-a.i*b.i,a.i*b.r+a.r*b.i);

printf("(%.2lf%+.2lfi)/(%.2lf%+.2lfi)=(%.2lf%+.2lfi)\n",a.r,a.i,b.r,b.i,(a.r*b.r+a.i*b.i)/(b.r*b.r+b.i*b.i),(a.i*b.r-a.r*b.i)/(b.r*b.r+b.i*b.i));

return0;

}

T1105

#include

#include

structstu

{intxh;

charname[50];

intage;

structstu*p;

};

structstu*creat()

{structstu*head,*p1,*p2;

p1=(structstu*)malloc(sizeof(structstu));

scanf("%d",&p1->xh);

if(p1->xh==0)head=NULL;

else

{

head=p1;

getchar();

scanf("%s%d",p1->name,&p1->age);

while(p1->xh!

=0)

{p2=p1;

p1=(structstu*)malloc(sizeof(structstu));

scanf("%d",&p1->xh);

if(p1->xh==0)break;

getchar();

scanf("%s%d",p1->name,&p1->age);

p2->p=p1;

}

p2->p=NULL;

}

returnhead;

}

voidprint(structstu*p1)

{inti=1;

if(p1==NULL);

else{

for(;p1!

=NULL;p1=p1->p,i++)

if(i==1)printf("%d",p1->xh);

elseprintf("%d",p1->xh);

printf("\n");

}

}

structstu*del(structstu*p1,intd)

{structstu*p2,*head;

head=p1;

if(p1==NULL);

else

{

if(p1->xh==d)head=p1->p;

while(p1!

=NULL)

{p2=p1;

p1=p1->p;

if(p1!

=NULL&&p1->xh==d){p2->p=p1->p;}

}

}

returnhead;

}

intmain()

{structstu*p0;

intd;

p0=creat();

scanf("%d",&d);

print(p0);

p0=del(p0,d);

print(p0);

return0;

}

T1108

#include

#include

structlinka{

intdata;

structlinka*next;

};

structlinka*creat()

{

structlinka*p1,*p2,*head;

p1=(structlinka*)malloc(sizeof(structlinka));

head=NULL;

scanf("%d",&p1->data);

if(p1->data!

=0)

head=p1;

elsereturnhead;

while(p1->data!

=0){

p2=p1;

p1=(structlinka*)malloc(sizeof(structlinka));

p2->next=p1;

scanf("%d",&p1->data);

}

p2->next=NULL;

returnhead;

}

voidshow(structlinka*head)

{

if(head==NULL)return;

for(;head!

=NULL;head=head->next){

if(head->next==NULL){

printf("%d",head->data);

}

else{

printf("%d",head->data);

}

}

printf("\n");

}

staticintn=1;

staticstructlinka*pp;

structlinka*lixu(structlinka*p)//只需要完成该链表反序递归逆序即可···

{

structlinka*p1,*p2;

if(p==NULL||p->next==NULL||(p->next->next==NULL&&n!

=1)){

if(p==NULL)

returnp;

pp=p->next;

returnp;

}

else{

if(n==1){

n++;

p1=p->next;

p2=p;

p1->next=lixu(p);

p2->next=NULL;

returnpp;

}

else{

p2=p;

p=p->next;

p1=p->next;

p1->next=lixu(p);

returnp2;

}

}

}

intmain()

{

structlinka*p;

p=creat();

p=lixu(p);

show(p);

return0;

}

T1109

#include

#include

intmain()

{

structlian{

inti;

structlian*next;

}*head,*p1,*p2;

intj;

head=p1=(structlian*)malloc(sizeof(structlian));

scanf("%d",&head->i);

if(head->i==0){

head=NULL;

}

else

head->next=NULL;

while(p1->i!

=0){

p2=p1;

p1=(structlian*)malloc(sizeof(structlian));

scanf("%d",&p1->i);

p2->next=p1;

}

p2->next=NULL;

scanf("%d",&j);

while(head!

=NULL){

if(head->i==j){

p2->next=head;

break;

}

head=head->next;

}

if(p2->next!

=NULL){

printf("yes\n");

}

else{

printf("no\n");

}

return0;

}

SXK01

#include

#include

structclike

{inth;

structclike*next;

};

structclike*creat(void)

{structclike*head,*p1,*p2;

inti;

head=p1=p2=(structclike*)malloc(sizeof(structclike));

for(i=1;i<=4;i++)

{p2=p1;

p1=(structclike*)malloc(sizeof(structclike));

p2->next=p1;

}

p1->next=NULL;

returnhead;

}

voidlist(structclike*head)

{inti=1;

for(;head!

=NULL;head=head->next)

if(i==1)printf("%d",head->h),i++;

elseprintf("%d",head->h);

printf("\n");

}

intmain()

{inta[5]={101,103,105,107,109};

structclike*head,*p;

inti;

head=p=creat();

for(i=0;p!

=NULL;p=p->next,i++)

p->h=a[i];

list(head);

return0;

}

SXK02

#include

#include

structclike

{inth;

structclike*next;

};

structclike*creat(void)

{structclike*head,*p1,*p2;

inti;

head=p1=p2=(structclike*)malloc(sizeof(structclike));

for(i=1;i<=4;i++)

{p2=p1;

p1=(structclike*)malloc(sizeof(structclike));

p2->next=p1;

}

p1->next=NULL;

returnhead;

}

voidlist(structclike*head)

{inti=1;

for(;head!

=NULL;head=head->next)

if(i==1)printf("%d",head->h),i++;

elseprintf("%d",head->h);

printf("\n");

}

structclike*insert(structclike*head,structclike*xin)

{structclike*p1,*p2;

p1=head;

if(head==NULL)head=xin,xin->next=NULL;

else

{while(p1->hh&&p1!

=NULL)

p2=p1,p1=p1->next;

p2->next=xin;

if(p1!

=NULL)xin->next=p1;

elsexin->next=NULL;

}

returnhead;

}

intmain()

{inta[5]={101,103,105,107,109};

structclike*head,*p,xin;

inti;

xin.h=106;

head=p=creat();

for(i=0;p!

=NULL;p=p->next,i++)

p->h=a[i];

list(head);

head=insert(head,&xin);

list(head);

return0;

}

SXK03

#include

#include

structclike

{inth;

structclike*next;

};

structclike*creat(void)

{structclike*head,*p1,*p2;

inti;

head=p1=p2=(structclike*)malloc(sizeof(structclike));

for(i=1;i<=4;i++)

{p2=p1;

p1=(structclike*)malloc(sizeof(structclike));

p2->next=p1;

}

p1->next=NULL;

returnhead;

}

voidlist(structclike*head)

{inti=1;

for(;head!

=NULL;head=head->next)

if(i==1)printf("%d",head->h),i++;

elseprintf("%d",head->h);

printf("\n");

}

structclike*delet(structclike*head,intj)

{structclike*p,*p1;

if(head->h==j)head=head->next;

else{

p=p1=head;

for(;p->h!

=j&&p!

=NULL;p=p->next)

p1=p;

p1->next=p->next;

}

returnhead;

}

intmain()

{inta[5]={101,103,105,107,109};

structclike*head,*p;

inti;

head=p=creat();

for(i=0;p!

=NULL;p=p->next,i++)

p->h=a[i];

list(head);

head=delet(head,103);

list(head);

return0;

}

SXK04

#include

#include

structlian{

intage;

structlian*next;

};

intmain()

{

structlian*head;

voidnewnode(structlian*,int);

inti,age;

head=(structlian*)malloc(sizeof(structlian));

head->next=NULL;

for(i=0;i<10;i++){

scanf("%d",&age);

newnode(head,age);

}

head=head->next;

while(head!

=NULL){

printf("%d",head->age);

head=head->next;

}

printf("\n");

return0;

}

voidnewnode(structlian*head,intage)

{

structlian*p1=head,*p2;

while(p1&&p1->next){

if(age==p1->next->age){

p1->next=p1->next->next;

return;

}

p1=p1->next;

}

p2=(structlian*)malloc(sizeof(structlian));

p1->next=p2;

p2->age=age;

p2->next=NULL;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1