c++ 73,74,75

来源:互联网 发布:linux apache链接php7 编辑:程序博客网 时间:2024/06/05 08:44

73

#include <stdio.h>#define N 200#define SCORES 5#define NUMLEN 10struct std_type{char no[NUMLEN];/*学号*/char *name;/*名字符串指针*/int scores[SCORES];/*五门功课的成绩*/};struct std_type students[N];int order[N];int total[N];/*[函数]输入一个学生信息函数*/int readastu(struct std_type *spt){int len,j;char buf[120];/*输入字符串的缓冲区*/printf("\nNumber   :   ");/*输入学号*/if(scanf("%s",buf)==1)strncpy(spt->no,buf,NUMLEN-1);elsereturn 0;/*Ctrl+Z结束输入*/printf("Name   :   ");/*输入姓名*/if(scanf("%s",buf)==1){len=strlen(buf);spt->name=(char *)malloc(len+1);/*申请存贮姓名的空间*/strcpy(spt->name,buf);}else return 0;/*Ctrl+Z结束输入*/printf("Scores   :   ");/*输入成绩*/for(j=0;j<SCORES;j++)if(scanf("%d",spt->scores+j)!=1)break;if(j==0)/*一个成绩也未输入*/{free(spt->name);/*释放存贮姓名的空间*/return 0;}for(;j<SCORES;j++)/*少数未输入的成绩用0分代之*/spt->scores[j]=0;return 1;}/*[函数]输出一个学生信息的函数*/int writeastu(struct std_type *spt){int i;printf("Number   :   %s\n",spt->no);/*输出学号*/printf("Name     :   %s\n",spt->name);/*输出姓名*/printf("Scores   :   ");/*输出成绩*/for(i=0;i<SCORES;i++)printf("%4d",spt->scores[i]);printf("\n\n");}main(){int n,i,j,t;clrscr();for(n=0;readastu(students+n);n++);/*采用冒泡法对学生信息数组排序*/for(i=0;i<n;i++){order[i]=i;/*预置第i个输入的学生*/for(t=0,j=0;j<SCORES;j++)/*求第i个学生的总分*/t+=students[i].scores[j];total[i]=t;}/*冒泡排序*/for(i=0;i<n-1;i++)/*共扫视n-1遍*/for(j=0;j<n-1-i;j++)if(total[order[j]]<total[order[j+1]]){/*交换名次*/ t=order[j]; order[j]=order[j+1]; order[j+1]=t;}for(j=0;j<n;j++)/*输出*/writeastu(students+order[j]);printf("\n Press any key to quit...\n");getch();}

74

#include <stdio.h>struct ele{int no;struct ele *link;}main(){int n,m,i;struct ele *h,*u,*p;clrscr();printf("Please input n&m:\n");scanf("%d%d",&n,&m);/*输入n和m*/h=u=(struct ele *)malloc(sizeof(struct ele));/*形成首表元*/h->no=1;for(i=2;i<=n;i++)/*形成其余的n-1个表元*/{u->link=(struct ele *)malloc(sizeof(struct ele));u=u->link;u->no=i;/*第i个表元置编号i*/}u->link=h;/*末表元后继首表元,形成环*/puts("\nThe numbers of who will quit the cycle in turn are:");while(n){for(i=1;i<m;i++)/*掠过m-1个表元*/u=u->link;p=u->link;/*p指向第m个表元*/u->link=p->link;/*第m个表元从环中脱钩*/printf("%4d",p->no);free(p);/*释放第m个表元占用的空间*/n--;}printf("\n\n Press any key to quit...\n");getch();}


75


#include <stdio.h>#define CHILDREN 5struct person{char *name;/*名字符串指针*/char sex;/*性别:男用字符'M';女用字符'F'*/struct person *father;/*指向父亲*/struct person *mother;/*指向母亲*/struct person *mate;/*指向配偶*/struct person *children[CHILDREN];/*指向子女*/};/* [函数]newperson增加新人 */struct person *newperson(char *name,char sex){struct person *p;int index;p=(struct person *)malloc(sizeof(struct person));p->name=(char *)malloc(strlen(name)+1);strcpy(p->name,name);p->sex=sex;p->father=NULL;p->mother=NULL;p->mate=NULL;for(index=0;index<CHILDREN;index++)p->children[index]=NULL;return p;}


原创粉丝点击