谭浩强C语言 第十章课后习题.docx
《谭浩强C语言 第十章课后习题.docx》由会员分享,可在线阅读,更多相关《谭浩强C语言 第十章课后习题.docx(32页珍藏版)》请在冰点文库上搜索。
谭浩强C语言第十章课后习题
10.1
#include
intswap(int*p1,int*p2)
{
inttemp;
if(*p1>*p2)temp=*p1,*p1=*p2,*p2=temp;
return0;
}
intexchange(int*a,int*b,int*c)
if(*a>*b)swap(a,b);
if(*a>*c)swap(a,c);
if(*b>*c)swap(b,c);
intmain()
printf("习题10.1输入3个整数,从小到大输出.\n===================\n");
inta,b,c,*p1,*p2,*p3;
printf("请输入3个整数(空格隔开):
\n");
scanf("%d%d%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
exchange(p1,p2,p3);
printf("输出为:
%d%d%d",a,b,c);
10.2
#include"stdio.h"
voidmin(char*p1[100],char*p2[100])
chart[100];
if(strcmp(p1,p2)>0)
strcpy(t,p1);
strcpy(p1,p2);
strcpy(p2,t);
voidmain()
printf("习题10.2\n=================\n");
printf("请输入三个字符串(空格隔开):
char*a[100],*b[100],*c[100];
scanf("%s%s%s",a,b,c);
min(a,b);
min(a,c);
min(b,c);
printf("从小到大:
printf("%s\n%s\n%s\n",a,b,c);
10.3
#defineN5
inta[N],i,j,t;
int*p1,*p2;
intinput()
printf("请输入10个整数:
for(i=0;i{scanf("%d",&a[i]);}return0;}intdeal(){p1=a;p2=a;for(i=0;i{for(j=0;j{if(a[i]>a[j+1])p1=&(a[j+1]);}} t=a[0];a[0]=*p1;*p1=t;for(i=0;i{for(j=0;j{if(a[i]}}t=a[N-1];a[N-1]=*p2;*p2=t;return0;}intoutput(){printf("处理后:\n");for(i=0;i{printf("%d",a[i]);}return0;} intmain(){printf("习题10.3对换最小的数和最大的数\n===================\n");input();deal();output();return0;}10.4#include#include#defineN voidmove(inta[],intn,intm){int*p,a_end;a_end=a[n-1];for(p=a+n-1;p>a;p--){*p=*(p-1);}a[0]=a_end;m--;if(m>0)move(a,n,m);} intmain(){printf("习题10.4移动整数\n===================\n");inti,n,m;printf("请输入数字个数:\n");scanf("%d",&n);inta[n];printf("请输入%d个数字:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("请输入要移动个数:\n");scanf("%d",&m);move(a,n,m);printf("输出为:\n");for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
scanf("%d",&a[i]);
intdeal()
p1=a;
p2=a;
for(i=0;i{for(j=0;j{if(a[i]>a[j+1])p1=&(a[j+1]);}} t=a[0];a[0]=*p1;*p1=t;for(i=0;i{for(j=0;j{if(a[i]}}t=a[N-1];a[N-1]=*p2;*p2=t;return0;}intoutput(){printf("处理后:\n");for(i=0;i{printf("%d",a[i]);}return0;} intmain(){printf("习题10.3对换最小的数和最大的数\n===================\n");input();deal();output();return0;}10.4#include#include#defineN voidmove(inta[],intn,intm){int*p,a_end;a_end=a[n-1];for(p=a+n-1;p>a;p--){*p=*(p-1);}a[0]=a_end;m--;if(m>0)move(a,n,m);} intmain(){printf("习题10.4移动整数\n===================\n");inti,n,m;printf("请输入数字个数:\n");scanf("%d",&n);inta[n];printf("请输入%d个数字:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("请输入要移动个数:\n");scanf("%d",&m);move(a,n,m);printf("输出为:\n");for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
for(j=0;j{if(a[i]>a[j+1])p1=&(a[j+1]);}} t=a[0];a[0]=*p1;*p1=t;for(i=0;i{for(j=0;j{if(a[i]}}t=a[N-1];a[N-1]=*p2;*p2=t;return0;}intoutput(){printf("处理后:\n");for(i=0;i{printf("%d",a[i]);}return0;} intmain(){printf("习题10.3对换最小的数和最大的数\n===================\n");input();deal();output();return0;}10.4#include#include#defineN voidmove(inta[],intn,intm){int*p,a_end;a_end=a[n-1];for(p=a+n-1;p>a;p--){*p=*(p-1);}a[0]=a_end;m--;if(m>0)move(a,n,m);} intmain(){printf("习题10.4移动整数\n===================\n");inti,n,m;printf("请输入数字个数:\n");scanf("%d",&n);inta[n];printf("请输入%d个数字:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("请输入要移动个数:\n");scanf("%d",&m);move(a,n,m);printf("输出为:\n");for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
if(a[i]>a[j+1])p1=&(a[j+1]);
t=a[0];
a[0]=*p1;
*p1=t;
for(i=0;i{for(j=0;j{if(a[i]}}t=a[N-1];a[N-1]=*p2;*p2=t;return0;}intoutput(){printf("处理后:\n");for(i=0;i{printf("%d",a[i]);}return0;} intmain(){printf("习题10.3对换最小的数和最大的数\n===================\n");input();deal();output();return0;}10.4#include#include#defineN voidmove(inta[],intn,intm){int*p,a_end;a_end=a[n-1];for(p=a+n-1;p>a;p--){*p=*(p-1);}a[0]=a_end;m--;if(m>0)move(a,n,m);} intmain(){printf("习题10.4移动整数\n===================\n");inti,n,m;printf("请输入数字个数:\n");scanf("%d",&n);inta[n];printf("请输入%d个数字:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("请输入要移动个数:\n");scanf("%d",&m);move(a,n,m);printf("输出为:\n");for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
for(j=0;j{if(a[i]}}t=a[N-1];a[N-1]=*p2;*p2=t;return0;}intoutput(){printf("处理后:\n");for(i=0;i{printf("%d",a[i]);}return0;} intmain(){printf("习题10.3对换最小的数和最大的数\n===================\n");input();deal();output();return0;}10.4#include#include#defineN voidmove(inta[],intn,intm){int*p,a_end;a_end=a[n-1];for(p=a+n-1;p>a;p--){*p=*(p-1);}a[0]=a_end;m--;if(m>0)move(a,n,m);} intmain(){printf("习题10.4移动整数\n===================\n");inti,n,m;printf("请输入数字个数:\n");scanf("%d",&n);inta[n];printf("请输入%d个数字:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("请输入要移动个数:\n");scanf("%d",&m);move(a,n,m);printf("输出为:\n");for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
if(a[i]}}t=a[N-1];a[N-1]=*p2;*p2=t;return0;}intoutput(){printf("处理后:\n");for(i=0;i{printf("%d",a[i]);}return0;} intmain(){printf("习题10.3对换最小的数和最大的数\n===================\n");input();deal();output();return0;}10.4#include#include#defineN voidmove(inta[],intn,intm){int*p,a_end;a_end=a[n-1];for(p=a+n-1;p>a;p--){*p=*(p-1);}a[0]=a_end;m--;if(m>0)move(a,n,m);} intmain(){printf("习题10.4移动整数\n===================\n");inti,n,m;printf("请输入数字个数:\n");scanf("%d",&n);inta[n];printf("请输入%d个数字:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("请输入要移动个数:\n");scanf("%d",&m);move(a,n,m);printf("输出为:\n");for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
t=a[N-1];
a[N-1]=*p2;
*p2=t;
intoutput()
printf("处理后:
for(i=0;i{printf("%d",a[i]);}return0;} intmain(){printf("习题10.3对换最小的数和最大的数\n===================\n");input();deal();output();return0;}10.4#include#include#defineN voidmove(inta[],intn,intm){int*p,a_end;a_end=a[n-1];for(p=a+n-1;p>a;p--){*p=*(p-1);}a[0]=a_end;m--;if(m>0)move(a,n,m);} intmain(){printf("习题10.4移动整数\n===================\n");inti,n,m;printf("请输入数字个数:\n");scanf("%d",&n);inta[n];printf("请输入%d个数字:\n",n);for(i=0;i{scanf("%d",&a[i]);}printf("请输入要移动个数:\n");scanf("%d",&m);move(a,n,m);printf("输出为:\n");for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
printf("%d",a[i]);
printf("习题10.3对换最小的数和最大的数\n===================\n");
input();
deal();
output();
10.4
#defineN
voidmove(inta[],intn,intm)
int*p,a_end;
a_end=a[n-1];
for(p=a+n-1;p>a;p--)
*p=*(p-1);
a[0]=a_end;
m--;
if(m>0)move(a,n,m);
printf("习题10.4移动整数\n===================\n");
inti,n,m;
printf("请输入数字个数:
scanf("%d",&n);
inta[n];
printf("请输入%d个数字:
\n",n);
for(i=0;i{scanf("%d",&a[i]);}printf("请输入要移动个数:\n");scanf("%d",&m);move(a,n,m);printf("输出为:\n");for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
printf("请输入要移动个数:
scanf("%d",&m);
move(a,n,m);
for(i=0;i{printf("%d",a[i]);} return0;}10.5#include#includeintremain(inta[],intn){inti,k=1;intm=n;while(m>1){for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
10.5
intremain(inta[],intn)
inti,k=1;
intm=n;
while(m>1)
for(i=0;i{if(a[i]!=0)k++;if(k==4){a[i]=0;m--;k=1;}}}int*p=a;for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
if(a[i]!
=0)k++;
if(k==4)
a[i]=0;
k=1;
int*p=a;
for(i=0;i{if(*p==0)p++;}printf("是%d号留下",*p);}intmain(){printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");printf("请输入人的个数n:\n");inti,n;scanf("%d",&n);inta[n];for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
if(*p==0)p++;
printf("是%d号留下",*p);
printf("习题10.5n个人围圈,最后留下的是几号\n===================\n");
printf("请输入人的个数n:
inti,n;
for(i=0;i{a[i]=i+1;}remain(a,n); return0;}10.6#include#includeintlength(chara[]){char*p;inti=0;p=a;while(*p!='\0'){p++;i++;}returni;}intmain(){printf("习题10.6\n===========\n");printf("请输入字符串:\n");chara[80];scanf("%s",a);printf("长度为:\n%d",length(a));return0;}10.7#include#includevoidcopy(chara[],intm,intn){inti;char*p,b[80];p=&a[m-1];for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
a[i]=i+1;
remain(a,n);
10.6
intlength(chara[])
char*p;
inti=0;
p=a;
while(*p!
='\0'){p++;i++;}
returni;
printf("习题10.6\n===========\n");
printf("请输入字符串:
chara[80];
scanf("%s",a);
printf("长度为:
\n%d",length(a));
10.7
voidcopy(chara[],intm,intn)
inti;
char*p,b[80];
p=&a[m-1];
for(i=0;i{b[i]=*p++;}b[i]='\0';printf("复制后的字符串:\n%s",b);} voidmain(){printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");chara[80];intm,n;printf("请输入字符串:\n");scanf("%s",a);printf("请输入第m个字符:\n");scanf("%d",&m);n=sizeof(a);copy(a,m,n); }10.8#include#include intmain(){printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");printf("请输入一行文字:\n");chara[80],*p;p=&a[0];intcapital=0,lowercase=0,space=0,number=0,other=0;while((*p=getchar())!='\n'){if(*p>='A'&&*p<='Z')capital++;elseif(*p>='a'&&*p<='z')lowercase++;elseif(*p=='')space++;elseif(*p<='9'&&*p>='0')number++;elseother++;p++;}printf("该行文字有大写字母%d个\n",capital);printf("该行文字有小写字母%d个\n",lowercase);printf("该行文字有空格%d个\n",space);printf("该行文字有数字%d个\n",number);printf("该行文字有其他字符%d个\n",other);return0;}10.9#include#includevoidtranspose(inta[][]){int(*p)[3],i,j;p=a;printf("转置后的矩阵为:\n");for(j=0;j<3;j++){for(i=0;i<3;i++)printf("%d",*(*(p+i)+j));printf("\n");}} intmain(){printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;printf("转置前的矩阵为:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}transpose(a);return0;}10.10#include#includevoidchange(inta[][]){inti,j,temp;int*pm1,*pm2,*pm3,*pm4,*pmax,*p;p=a;pmax=(int*)malloc(2);pm1=(int*)malloc(2);pm2=(int*)malloc(2);pm3=(int*)malloc(2);pm4=(int*)malloc(2);for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;}temp=*(p+2*5+2);*(p+2*5+2)=*pmax;*pmax=temp;for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;}for(i=0;i<5;i++){for(j=0;j<5;j++)if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;}temp=*(p+0+0);*(p+0+0)=*pm1;*pm1=temp;temp=*(p+4);*(p+4)=*pm2;*pm2=temp;temp=*(p+20);*(p+20)=*pm3;*pm3=temp;temp=*(p+24);*(p+24)=*pm4;*pm4=temp;}intmain(){printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};printf("转换前:\n");inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}change(a);printf("转换后:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}return0;}10.11#include#include#include#defineN10#defineM10voidcmp(char*p){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
b[i]=*p++;
b[i]='\0';
printf("复制后的字符串:
\n%s",b);
printf("习题10.7将n个字符的字符串的第m个字符复制给另一个字符串\n===================\n");
intm,n;
printf("请输入第m个字符:
n=sizeof(a);
copy(a,m,n);
10.8
printf("习题10.8输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少个\n===================\n");
printf("请输入一行文字:
chara[80],*p;
p=&a[0];
intcapital=0,lowercase=0,space=0,number=0,other=0;
while((*p=getchar())!
='\n')
if(*p>='A'&&*p<='Z')capital++;
elseif(*p>='a'&&*p<='z')lowercase++;
elseif(*p=='')space++;
elseif(*p<='9'&&*p>='0')number++;
elseother++;
p++;
printf("该行文字有大写字母%d个\n",capital);
printf("该行文字有小写字母%d个\n",lowercase);
printf("该行文字有空格%d个\n",space);
printf("该行文字有数字%d个\n",number);
printf("该行文字有其他字符%d个\n",other);
10.9
voidtranspose(inta[][])
int(*p)[3],i,j;
printf("转置后的矩阵为:
for(j=0;j<3;j++)
for(i=0;i<3;i++)
printf("%d",*(*(p+i)+j));
printf("\n");
printf("习题10.9写一个函数,将一个3*3矩阵转置.\n===================\n");
inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;
printf("转置前的矩阵为:
printf("%d",a[i][j]);
transpose(a);
10.10
voidchange(inta[][])
inti,j,temp;
int*pm1,*pm2,*pm3,*pm4,*pmax,*p;
pmax=(int*)malloc
(2);
pm1=(int*)malloc
pm2=(int*)malloc
pm3=(int*)malloc
pm4=(int*)malloc
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(*(p+i*5+j)>*pmax)pmax=p+i*5+j;
temp=*(p+2*5+2);
*(p+2*5+2)=*pmax;
*pmax=temp;
if(*(p+i*5+j)<*pm1)pm1=p+i*5+j;
if(*(p+i*5+j)<*pm2&&*(p+i*5+j)>*pm1)pm2=p+i*5+j;
if(*(p+i*5+j)<*pm3&&*(p+i*5+j)>*pm2)pm3=p+i*5+j;
if(*(p+i*5+j)<*pm4&&*(p+i*5+j)>*pm3)pm4=p+i*5+j;
temp=*(p+0+0);
*(p+0+0)=*pm1;
*pm1=temp;
temp=*(p+4);
*(p+4)=*pm2;
*pm2=temp;
temp=*(p+20);
*(p+20)=*pm3;
*pm3=temp;
temp=*(p+24);
*(p+24)=*pm4;
*pm4=temp;
printf("习题10.10将5*5矩阵中的最大值放到中间,次小的4个值按序放到四个角.\n===================\n");
inta[5][5]={25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
printf("转换前:
inti,j;
printf("%3d",a[i][j]);
change(a);
printf("转换后:
10.11
#defineN10
#defineM10
voidcmp(char*p)
chartemp[M],*smin,*smax;
for(i=0;i{smax=p+i*M;for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
smax=p+i*M;
for(j=i+1;j{smin=p+j*M;if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");chara[N][M],(*p)[M];p=a;inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
smin=p+j*M;
if(strcmp(smax,smin)>0)
strcpy(temp,smin);
strcpy(smin,smax);
strcpy(smax,temp);
printf("习题10.11主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串\n=============\n");
chara[N][M],(*p)[M];
printf("请输入等长字符串:
for(i=0;i{scanf("%s",&a[i]);}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
scanf("%s",&a[i]);
printf("比较前字符串:
for(i=0;i{printf("%s\n",*(p+i));}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
printf("%s\n",*(p+i));
cmp(p);
printf("比较后字符串:
for(i=0;i{printf("%s\n",*(p+i));}return0;}10.12#include#include#include#defineN2#defineM4voidcmp(char*p[]){chartemp[M],*smin,*smax;inti,j;for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
10.12
#defineN2
#defineM4
voidcmp(char*p[])
for(i=0;i{smax=p[i];for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
smax=p[i];
for(j=i+1;j{smin=p[j];if(strcmp(smax,smin)>0){strcpy(temp,smin);strcpy(smin,smax);strcpy(smax,temp);}}}}intmain(){printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");chara[N][M],*p[N];inti;printf("请输入等长字符串:\n");for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
smin=p[j];
printf("习题10.12主函数输入10个等长字符串,用另一个函数对它们排序.然后在主函数输出排序后字符串(利用指针数组)\n=============\n");
chara[N][M],*p[N];
for(i=0;i{scanf("%s",&a[i]);}for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
for(i=0;i{p[i]=a[i];}printf("比较前字符串:\n");for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
p[i]=a[i];
for(i=0;i{printf("%s\n",p[i]);}cmp(p);printf("比较后字符串:\n");for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
printf("%s\n",p[i]);
for(i=0;i{printf("%s\n",p[i]);}return0;} 10.14#include#includeintmain(){printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");printf("请输入数字个数N:\n");intn,i,*p;scanf("%d",&n);inta[n];p=a;printf("请输入这%d个数N:\n",n);for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
10.14
printf("习题10.14,将N个数按输入时的逆序排列.\n=============\n");
printf("请输入数字个数N:
intn,i,*p;
printf("请输入这%d个数N:
for(i=0;i{scanf("%d",p++);}printf("您的输入为:\n");for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
scanf("%d",p++);
printf("您的输入为:
for(i=0;i{printf("%d",a[i]);}printf("\n逆序输出为:\n");for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
printf("\n逆序输出为:
for(i=0;i{printf("%d",*--p);}return0;}10.15#include#include#defineM2#defineN2 intc,i,j;structstudent{intnumber;intscore[M];intaverage;}stu[N];voidfir_ave(structstudent*p){floattotal=0;for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
printf("%d",*--p);
10.15
#defineM2
intc,i,j;
structstudent
intnumber;
intscore[M];
intaverage;
}stu[N];
voidfir_ave(structstudent*p)
floattotal=0;
for(i=0;i{total+=p->score[0];}printf("第一门课程的平均分为%f:\n",total/N);}voidfind_fail(structstudent*p){intcount=0,flag=1;for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
total+=p->score[0];
printf("第一门课程的平均分为%f:
\n",total/N);
voidfind_fail(structstudent*p)
intcount=0,flag=1;
for(i=0;i{for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
for(j=0;j{if(p->score[j]<60)count++;}if(count>=2){printf("第%d号学生有2科以上不及格,他的所有课程成绩为:\n",i+1);for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
if(p->score[j]<60)count++;
if(count>=2)
printf("第%d号学生有2科以上不及格,他的所有课程成绩为:
\n",i+1);
for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);flag=0;}count=0;}count=0; }if(flag)printf("\n没找到!");} voidfind_high(structstudent*p){intfla=1,flag1=0,flag2=0;floattotal=0;for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
printf("第%d门:
%d",j+1,stu[i].score[j]);
flag=0;
count=0;
if(flag)printf("\n没找到!
");
voidfind_high(structstudent*p)
intfla=1,flag1=0,flag2=0;
for(i=0;i{total=0;for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
total=0;
for(j=0;j{total+=p->score[j];p->average=total/M;}}for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
total+=p->score[j];
p->average=total/M;
for(i=0;ifor(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
for(i=0;i{flag1=1;for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
flag1=1;
for(j=0;j{if(p->score[j]<=85)flag1=0;}if(p->average>90)flag2=1;elseflag2=0;if(flag1||flag2){printf("\n第%d号同学符合要求!他的所有课程成绩为:\n",i+1);fla=0;for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
if(p->score[j]<=85)flag1=0;
if(p->average>90)flag2=1;
elseflag2=0;
if(flag1||flag2)
printf("\n第%d号同学符合要求!
他的所有课程成绩为:
\n",i+1);fla=0;
for(j=0;j{printf("第%d门:%d",j+1,stu[i].score[j]);}}}if(fla)printf("没找到!\n");} intmain(){printf("习题10.15有一个班四个学生5门课,编3个函数实现:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");printf("请输入四个学生分数:\n");structstudent*p;p=stu;for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
if(fla)printf("没找到!
printf("习题10.15有一个班四个学生5门课,编3个函数实现:
\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n=====================================\n");
printf("请输入四个学生分数:
structstudent*p;
p=stu;
for(i=0;i{stu[i].number=i+1;}for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
stu[i].number=i+1;
for(i=0;i{for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
for(j=0;j{printf("请输入第%d个学生的第%d门分数:___",i+1,j+1);scanf("%d",&stu[i].score[j]);}}while(1){printf("\n请选择:\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");scanf("%d",&c);if(c==1)fir_ave(p);if(c==2)find_fail(p);if(c==3)find_high(p);if(c==4)break;}return0;}10.16#include#includeintmain(){printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
printf("请输入第%d个学生的第%d门分数:
___",i+1,j+1);
scanf("%d",&stu[i].score[j]);
while
(1)
printf("\n请选择:
\n1.求第一门课程的平均分\n2.找出有2门以上课程不及格的学生,输出学号和全部课程\n3.找出平均成绩在90分以上或者全部成绩在85分以上的学生\n4.退出.\n");
scanf("%d",&c);
if(c==1)fir_ave(p);
if(c==2)find_fail(p);
if(c==3)find_high(p);
if(c==4)break;
10.16
printf("习题10.16输入如一个字符串,将连续的数字作为一个整数,统计数量并输出\n==========================
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2