您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言第六章习题答案
6.1用筛选法求100之内的素数.#includestdio.h#defineN101voidmain(){inti,j,line,a[N];for(i=1;i=100;i++)a[i]=i;a[1]=0;for(i=2;isqrt(100);i++)for(j=i+1;j=100;j++){if(a[i]!=0&&a[j]!=0)if(a[j]%a[i]==0)a[j]=0;}printf(n);for(i=2,line=0;i=100;i++){if(a[i]!=0){printf(%5d,a[i]);line++;if(line==10){printf(n);line=0;}}}}6.2用选择法对10个数排序.#defineN10main(){inti,j,min,temp,a[N];printf(请输入十个数:n);for(i=0;i=10;i++){printf(a[%d]=,i);scanf(%d,&a[i]);}printf(n);for(i=1;i=10;i++)printf(%5d,a[i]);printf(n);for(i=1;i=9;i++){min=i;for(j=i+1;j=10;j++)if(a[min]a[j])min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf(n排序结果如下:n);for(i=0;iN;i++)printf(%5d,a[i]);}6.3对角线和:main(){floata[3][3],sum=0;inti,j;printf(请输入矩阵元素:n);for(i=0;i3;i++)for(j=0;j3;j++)scanf(%f,&a[i][j]);for(i=0;i3;i++)sum=sum+a[i][i];printf(对角元素之和=6.2f,sum);}6.4插入数据到数组main(){inta[11]={1,4,6,9,13,16,19,28,40,100};inttemp1,temp2,number,end,i,j;printf(初始数组如下:);for(i=0;i10;i++)printf(%5d,a[i]);printf(n);printf(输入插入数据:);scanf(%d,&number);end=a[9];if(numberend)a[10]=number;else{for(i=0;i10;i++){if(a[i]number){temp1=a[i];a[i]=number;}for(j=i+1;j11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;j11;i++)printf(a%6d,a[i]);}6.5将一个数组逆序存放。#defineN5main(){inta[N]={8,6,5,4,1},i,temp;printf(n初始数组:n);for(i=0;iN;i++)printf(%4d,a[i]);for(i=0;iN;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}printf(n交换后的数组:n);for(i=0;iN;i++)printf(%4d,a[i]);}6.6杨辉三角#defineN11main(){inti,j,a[N][N];for(i=1;iN;i++){a[i][i]=1;a[i][1]=1;}for(i=3;iN;i++)for(j=2;j=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;iN;i++){for(j=1;j=i;j++)printf(%6d,a[i][j];printf(n);}printf(n);}6.7打印“魔方阵解:#includestdio.hmain(){inta[15][15],i,i,k,p,m,n;p=1;while(p==1){printf(Entern(n=1~15):);scanf(%d,&n);if((n!=0)&&(n=15)&&(n%2!=0))p=0;}for(i=1;i=n;i++)for(j=1;j=n;)a[i][j]=0j=n/2+1;a[1][j]=1;for(k=2;k=n*n;k++){i=i-1;j=j-1;if((i1)&&(jn)){i=i+2;j=j+2;}else{if(i1)i=n;if(jn)j=1;}if(a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;}if(a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}for(i=1;in;i++){for(j=1;j=n;j++)printf(%5d,a[i][j]);printf(n)}}6.8鞍点#defineN10#defineM10main(){inti,j,k,m,n,flag,a[N][M],max,maxj,flag;printf(pleaseinputmatrix:n);for(i=0;iN;i++)for(j=0;jM;j++)scanf(%d,&a[i][j]);for(i=0;iM;i++){max=a[i][0];maxj=0;for(j=0;jM;j++)if(a[i][j]max){max=a[i][j];maxj=j;}flag=1;for(k=0;kN;k++)if(maxa[k][maxj]){flag=0;continue;}if(flag){printf(a[%d][%d]=%dn,i,maxj,max);break}}if(!flag2)printf(itisnotexist!n);}6.9(变量说明:top,bott:查找区间两端点的下标;loca:查找成功与否的开关变量.)#include#defineN15main(){inti,j,number,top,bott,min,loca,a[N],flag;charc;printf(输入15个数(a[i][i-1])n);scanf(%d,&a[0]);i=1;while(iN){scanf(%d,&a[i]);if(a[i]=a[i-1])i++;esle{printf(请重输入a[i]);printf(必须大于%dn,a[i-1]);}}printf(n);for(i=0;iN;i++)printf(%4d,a[i]);printf(n);flag=1;while(flag){printf(请输入查找数据:);scanf(%d,&number);loca=0;top=0;bott=N-1;if((numbera[N-1]))loca=-1;while((loca==0)&&(top=bott)){min=(bott+top)/2;if(number==a[min]){loca=min;printf(%d位于表中第%d个数n,number,loca+1);}elseif(numbera[min])bott=min-1;elsetop=min+1;}if(loca==0||loca==-1)printf(%d不在表中n,number);printf(是否继续查找?Y/N!n);c=getchar();if(c=='N'||c=='n')flag=0;}}6.10main(){inti,j,uppn,lown,dign,span,othn;chartext[3][80];uppn=lown=dign=span=othn=0;for(i=0;i3;i++){printf(n请输入第%d行:n,i);gets(text[i]);for(j=0;j80&&text[i][j]!='';j++){if(text[i][j]='A'&&text[i][j]='Z')uppn+=1;elseif(text[i][j]='a'&&text[i][j]='z')lown+=1;elseif(text[i][j]='1'&&text[i][j]='9')dign+=1;elseif(text[i][j]='')span+=1;elseothn+=1;}}for(i=0;i3;i++)printf(%s=n,text[i]);printf(大写字母数:%dn,uppn);printf(小写字母数:%dn,lown);printf(数字个数:%dn,dign);printf(空格个数:%dn,span);printf(其它字符:%dn,othn);}6.11main(){staticchara[5]={'*','*','*','*','*'};inti,j,k;charspace='';for(i=0;i=5;i++){printf(n);for(j=1;j=3*i;j++)printf(%lc,space);for(k=0;k=5;k++)printf(%3c,a[k];}}6.12#includestdio.hmain(){inti,n;charch[80],tran[80];printf(请输入字符:);gets(ch);printf(n密码是%c,ch);i=0;while(ch[i]!=''){if((ch[i]='A')&&(ch[i]='Z'))tran[i]=26+64-ch[i]+1+64;elseif((ch[i]='a')&&(ch[i]='z'))tran[i]=26+96-ch[i]+1+96;elsetran[i]=ch[i];i++;}n=i;printf(n原文是:);for(i=0;in;i++)putchar(tran[i]);}6.13main(){chars1[80],s2[40];inti=0,j=0;printf(n请输入字符串1:);scanf(%s,s1);printf(n请输入字符串2:);scanf(%s,s2);while(s1[i]!='')i++;while(s2[j]!='')s1[i++]=s2[j++];s1[i]='';printf(n连接后字符串为:%s,s1);}6.14#includestdio.hvoidmain(){inti,resu;chars1[100],s2[100];printf(请输入字符串1:n);gets(s1);printf(n请输入字符串2:n);gets(s2);i=0;while((s1[i]==s2[i])&&(s1[i]!=''))i++;if(s1[i]==''&&s2[i]=='')resu=0;elseresu=s1[i]-s2[i];printf(%s与%s比较结果是%d,s1,s2,resu);}6.15#includestdio.hvoidmain(){charfrom[80],to[80];inti;printf(请输入字符串);scanf(%s,from);for(i=0;i=strlen(from);i++)to[i]=from[i];printf(复制字符串为:%sn,to);}
本文标题:C语言第六章习题答案
链接地址:https://www.777doc.com/doc-2908720 .html