// 211.c
#include<stdio.h>
struct node
{
int num;
struct node *next;
};
void main()
{
struct node *p;
}
// 212.c
#include<stdio.h>
struct node
{
char *name;
char sex;
int score;
};
void main()
{
struct node x[5]=
{"001",'M',98,
"002",'W',89,
"003",'M',97,
"004",'M',79,
"005",'W',69},t;
int i,j;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(x[i].score<x[j].score)
{
t=x[i];x[i]=x[j];x[j]=t;
}
for(i=0;i<5;i++)
printf("%s:%c,%d\n",x[i].name,x[i].sex,x[i].score);
getch();
}
// 213.c
#include<stdio.h>
struct node
{
char a[20];
int num;
};
void main()
{
struct node x[5]={"x001",90,
"x002",80,
"x003",97,
"x004",99,
"x005",87},*p,*q,t;
for(p=x;p<x+4;p++)
for(q=p+1;q<x+5;q++)
{
if((*p).num>(*q).num)
{
t=*p;*p=*q;*q=t;
}
}
for(p=x;p<x+5;p++)
printf("%s:%d\n",(*p).a,(*p).num);
getch();
}
// 214.c
#include<stdio.h>
struct node
{
char a[20];
int num;
};
void main()
{
struct node x[5]={"x001",90,
"x002",80,
"x003",97,
"x004",99,
"x005",87},*p,*q,t;
for(p=x;p<x+4;p++)
for(q=p+1;q<x+5;q++)
{
if(p->num>q->num) //(*p).num等价于p->num
{
t=*p;*p=*q;*q=t;
}
}
for(p=x;p<x+5;p++)
printf("%s:%d\n",p->a,p->num);
getch();
}
// 215.c
#include<stdio.h>
struct node
{
char a[20];
int num;
};
void fun(struct node x[],char name[],int n)
{ //结构体数据类型变量作为函数的参数
int i;
for(i=0;i<n;i++)
if(strcmp(x[i].a,name)==0){x[i].num++;break;}
}
void main()
{
struct node x[3]={"x001",0,
"x002",0,
"x003",0};
int i;
char name[20];
for(i=0;i<5;i++)
{
scanf("%s",name);
fun(x,name,3);
}
for(i=0;i<3;i++)
printf("%s:%d\n",x[i].a,x[i].num);
getch();
}
// 216.c
#include<stdio.h>
struct node
{
int num; //普通成员变量
struct node *next; //指针成员变量
};
void main()
{
struct node a={1},b={2},c={3},*p;
a.next=&b;
b.next=&c;
c.next=&a;
p=&a;
while(p!=NULL)
{
printf("%3d",p->num);
p=p->next;
}
getch();
}
// 217.c
#include<stdio.h>
//静态开辟10个内存单元,创建链表.
struct node
{
int num;
struct node *next;
};
void main()
{
struct node a[10],*p;
int i;
for(i=0;i<10;i++)
{
a[i].num=i+1;
if(i<9)a[i].next=&a[i+1];
else a[i].next=NULL;
}
p=a;
while(p!=NULL)
{
printf("%3d",p->num);
p=p->next;
}
getch();
}
// 218.c
#include<stdio.h>
//动态开辟含有5个结点的链表
#include<malloc.h>
struct node
{
int num;
struct node *next;
};
void main()
{
struct node *p1,*p2,*head;
int i=0;
head=p1=p2=(struct node *)malloc(sizeof(struct node));
scanf("%d",&head->num);
i++;
while(i<5)
{
p2=p1;
p1=(struct node *)malloc(sizeof(struct node));
scanf("%d",&p1->num);
p2->next=p1;
i++;
}
p1->next=NULL;
while(head!=NULL)
{
printf("%3d",head->num);
head=head->next;
}
getch();
}
// 219.c
#include<stdio.h>
#include<malloc.h>
struct node
{
int num;
struct node *next;
};
void putfun(struct node *head)
{
while(head!=NULL)
{
printf("%3d",head->num);
head=head->next;
}
}
struct node *fun(int n)
{
struct node *head,*p1,*p2;
int i=0;
if(n==0)return NULL;
head=p1=p2=(struct node *)malloc(sizeof(struct node));
scanf("%d",&head->num);
i++;
while(i<n)
{
p2=p1;
p1=(struct node *)malloc(sizeof(struct node));
scanf("%d",&p1->num);
p2->next=p1;
i++;
}
p1->next=NULL;
return head;
}
void main()
{
struct node *head;
head=fun(5);
putfun(head);
getch();
}
// 220.c
#include<stdio.h>
#include<malloc.h>
struct node
{
int num;
struct node *next;
};
void putfun(struct node *head)
{
while(head!=NULL)
{
printf("%3d",head->num);
head=head->next;
}
}
struct node *fun(int n)
{
struct node *m,*p;
if(n==0)return NULL;
m=NULL;
while(n)
{
p=(struct node *)malloc(sizeof(struct node));
p->num=n;
p->next=m;
m=p;
n--;
}
return p;
}
struct node *fxfun(struct node *head)
{
struct node *p1,*p2,*p3,*m;
if(head->next==NULL)return head;
m=NULL;
p2=head;
p1=p2->next;
p3=p1->next;
while(p3!=NULL)
{
p2->next=m;
p1->next=p2;
m=p2;
p2=p1;
p1=p3;
p3=p3->next;
}
p2->next=m;
p1->next=p2;
return p1;
}
struct node *delfun(struct node *p,int n)
{
struct node *head,*m;
head=m=p;
if(p->num==n){head=head->next;free(p);return head;}
while(p!=NULL&&p->num!=n)
{
m=p;
p=p->next;
}
if(p!=NULL)m->next=p->next;
free(p);
return head;
}
void main()
{
struct node *head;
int n;
scanf("%d",&n);
head=fun(n);
putfun(head);
head=fxfun(head);
printf("\nfanxu after's xiao guo is:\n");
putfun(head);
printf("\nplease input a's delnum:");
scanf("%d",&n);
head=delfun(head,n);
printf("\ndelete after's xiao guo is:\n");
putfun(head);
getch();
}
网友评论