龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

经典c程序100例==71--80

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
【程序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 stude

【程序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

   { printf(" please input %d of %d ",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(" ");

   }

  }

  print(stu)

  struct student stu[];

  { int i,j;

  printf(" No. Name Sco1 Sco2 Sco3 ");

  for(i=0;i

  { printf("%-6s%-10s",stu[i].num,stu[i].name);

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

  printf("%-8d",stu[i].score[j]);

   printf(" ");

  }

  }

  main()

  

  ==============================================================

  【程序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==> ");

  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 ",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(" please input 5 data==> ");

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

   

  ptr=ptr->next;

  while(ptr!=NULL)

  { printf("The value is ==>%d ",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

   {

   tmp=pointer;

   min=tmp->data;

   btmp=NULL;

   while(tmp->next)

   { if(min>tmp->next->data)

   

   tmp=tmp->next;

   }

  printf("40: %d ",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

  { 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[]=;

   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.程序分析:

  2.程序源代码:

  main()

  #include "stdio.h"

  main()

  {

  float peven(),podd(),dcall();

  float sum;

  int n;

  while (1)

  

  if(n%2==0)

  

  else

  

  printf("%f",sum);

  }

  float peven(int n)

  {

  float s;

  int i;

  s=1;

  for(i=2;i<=n;i+=2)

   s+=1/(float)i;

  return(s);

  }

  float podd(n)

  int n;

  {

  float s;

  int i;

  s=0;

  for(i=1;i<=n;i+=2)

   s+=1/(float)i;

  return(s);

  }

  float dcall(fp,n)

  float (*fp)();

  int n;

  {

  float s;

  s=(*fp)(n);

  return(s);

  }

  ==============================================================

  【程序77】

  题目:填空练习(指向指针的指针)

  1.程序分析:   

  2.程序源代码:

  main()

  { char *s[]=;

  char **q;

  int k;

  for(k=0;k<5;k++)

  {   ;/*这里填写什么语句*/

   printf("%s ",*q);

  }

  }

  ==============================================================

  【程序78】

  题目:找到年龄最大的人,并输出。请找出程序中有什么问题。

  1.程序分析:

  2.程序源代码:

  #define N 4

  #include "stdio.h"

  static struct man

  { char name[20];

  int age;

  } person[N]=;

  main()

  {struct man *q,*p;

  int i,m=0;

  p=person;

  for (i=0;i

  

  printf("%s,%d",(*q).name,(*q).age);

  }

  ==============================================================

  【程序79】

  题目:字符串排序。

  1.程序分析:

  2.程序源代码:

  main()

  {

  char *str1[20],*str2[20],*str3[20];

  char swap();

  printf("please input three strings ");

  scanf("%s",str1);

  scanf("%s",str2);

  scanf("%s",str3);

  if(strcmp(str1,str2)>0) swap(str1,str2);

  if(strcmp(str1,str3)>0) swap(str1,str3);

  if(strcmp(str2,str3)>0) swap(str2,str3);

  printf("after being sorted ");

  printf("%s %s %s ",str1,str2,str3);

  }

  char swap(p1,p2)

  char *p1,*p2;

  {

  char *p[20];

  strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

  }

  ==============================================================

  【程序80】

  题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只

   猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了

   一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,

   问海滩上原来最少有多少个桃子?

  1.程序分析:

  2.程序源代码:

  main()

  {int i,m,j,k,count;

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

  { count=0;

  m=i;

  for(k=0;k<5;k++)

  

   i=m;

   if(count==4)

   {printf("%d ",count);

  break;}

  }

  }

  

精彩图集

赞助商链接