经典C语言程式设计100例71-80

2008-02-23 05:32:23来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

【程式71】
题目:编写input()和output()函数输入,输出5个学生的数据记录。
1.程式分析:
2.程式源代码:
#define N 5
struct student
{ char num[6];
  char name[8];
  int score[4];
} stu[N];
input(stu)
struct student stu[];
{ int i,j;
  for(i=0;i<N;i )
  { printf("\n please input %d of %d\n",i 1,N);
   printf("num: ");
   scanf("%s",stu[i].num);
   printf("name: ");
   scanf("%s",stu[i].name);
    for(j=0;j<3;j )
    { printf("score %d.",j 1);
     scanf("%d",&stu[i].score[j]);
    }
   printf("\n");
  }
}
print(stu)
struct student stu[];
{ int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
for(i=0;i<N;i )
{ printf("%-6s%-10s",stu[i].num,stu[i].name);
  for(j=0;j<3;j )
   printf("%-8d",stu[i].score[j]);
  printf("\n");
}
}
main()
{
  input();
  print();
}
-----------------------------------------------------------------------------
【程式72】
题目:创建一个链表。
1.程式分析:           
2.程式源代码:
/*creat a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head;
int num,i;
ptr=(link)malloc(sizeof(node));
ptr=head;
printf("please input 5 numbers==>\n");
for(i=0;i<=4;i )
{
  scanf("%d",&num);
  ptr->data=num;
  ptr->next=(link)malloc(sizeof(node));
  if(i==4) ptr->next=NULL;
  else ptr=ptr->next;
}
ptr=head;
while(ptr!=NULL)
{ printf("The value is ==>%d\n",ptr->data);
  ptr=ptr->next;
}
}
-----------------------------------------------------------------------------
【程式73】
题目:反向输出一个链表。   
1.程式分析:
2.程式源代码:
/*reverse output a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
  struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head,tail; 
  int num,i;
  tail=(link)malloc(sizeof(node));
  tail->next=NULL;
  ptr=tail;
  printf("\nplease input 5 data==>\n");
  for(i=0;i<=4;i )
  {
   scanf("%d",&num);
   ptr->data=num;
   head=(link)malloc(sizeof(node));
   head->next=ptr;
   ptr=head;
  }
ptr=ptr->next;
while(ptr!=NULL)
{ printf("The value is ==>%d\n",ptr->data);
  ptr=ptr->next;
}}
-----------------------------------------------------------------------------
【程式74】
题目:连接两个链表。
1.程式分析:
2.程式源代码:
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{if (tmp==NULL) /*delete first node*/
  return pointer->next;
else
{ if(tmp->next->next==NULL)/*delete last node*/
   tmp->next=NULL;
  else /*delete the other node*/
   tmp->next=tmp->next->next;
  return pointer;
}
}
void selection_sort(link pointer,int num)
{ link tmp,btmp;
  int i,min;
  for(i=0;i<num;i )
  {
  tmp=pointer;
  min=tmp->data;
  btmp=NULL;
  while(tmp->next)
  { if(min>tmp->next->data)
  {min=tmp->next->data;
   btmp=tmp;
  }
  tmp=tmp->next;
  }
printf("\40: %d\n",min);
pointer=delete_node(pointer,btmp);
}
}
link create_list(int array[],int num)
{ link tmp1,tmp2,pointer;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array[0];
tmp1=pointer;
for(i=1;i<num;i )
{ tmp2=(link)malloc(sizeof(node));
  tmp2->next=NULL;
  tmp2->data=array[i];
  tmp1->next=tmp2;
  tmp1=tmp1->next;
}
return pointer;
}
link concatenate(link pointer1,link pointer2)
{ link tmp;
tmp=pointer1;
while(tmp->next)
  tmp=tmp->next;
tmp->next=pointer2;
return pointer1;
}
void main(void)
{ int arr1[]={3,12,8,9,11};
  link ptr;
  ptr=create_list(arr1,5);
  selection_sort(ptr,5);
}
-----------------------------------------------------------------------------
【程式75】
题目:放松一下,算一道简单的题目。
1.程式分析:
2.程式源代码:
main()
{
int i,n;
for(i=1;i<5;i )
{ n=0;
  if(i!=1)
  n=n 1;
  if(i==3)
  n=n 1;
  if(i==4)
  n=n 1;
  if(i!=4)
  n=n 1;
  if(n==3)
   printf("zhu hao shi de shi:%c",64 i);
  }
}
-----------------------------------------------------------------------------
【程式76】
题目:编写一个函数,输入n为偶数时,调用函数求1/2 1/4 ... 1/n,当输入n为奇数时,调用函数
    1/1 1/3 ... 1/n(利用指针函数)
1.程式分析:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 经典C语言程式设计100例81-90

下一篇: 经典C语言程式设计100例61-70