c语言程序设计.docx
- 文档编号:29753611
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:122
- 大小:37.20KB
c语言程序设计.docx
《c语言程序设计.docx》由会员分享,可在线阅读,更多相关《c语言程序设计.docx(122页珍藏版)》请在冰豆网上搜索。
c语言程序设计
C语言程序设计课后习题答案
6-1用筛法求之内的素数
#include
#include
voidmain()
{inti,j,n,a[101];
for(i=1;i<=100;i++)
a[i]=i;
a[1]=0;
for(i=2;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,n=0;i<=100;i++) {if(a[i]! =0) {printf("%5d",a[i]); n++; } if(n==10) {printf("\n"); n=0; } } printf("\n"); } 6-2用选择法对10个整数从小到大排序 #include voidmain() {inti,j,min,temp,a[11]; printf("enterdata: \n"); for(i=1;i<=10;i++) {printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("Theorginalnumbers: \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("\nThesortednumbers: \n"); for(i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); } 6-3求一个3×3矩阵对角线元素之和。 #include voidmain() { inta[3][3],sum=0; inti,j; printf("enterdata: \n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%3d",&a[i][j]); for(i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum); } 6-4已有一个已排好的数组今输入一个数要求按原来排序的规律将它插入数组中。 #include voidmain() {inta[11]={1,4,6,9,13,16,19,28,40,100}; inttemp1,temp2,number,end,i,j; printf("arraya: \n"); for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); printf("insertdata: "); scanf("%d",&number); end=a[9]; if(number>end) a[10]=number; else {for(i=0;i<10;i++) {if(a[i]>number) {temp1=a[i]; a[i]=number; for(j=i+1;j<11;j++) {temp2=a[j]; a[j]=temp1; temp1=temp2; } break; } } } printf("Nowarraya: \n"); for(i=0;i<11;i++) printf("%5d",a[i]); printf("\n"); } 6-5将一个数组的值按逆序重新存放,例如,原来顺序为: 8,6,5,4,1。 要求改为: 1,4,5,6,8。 #include #defineN5 voidmain() {inta[N],i,temp; printf("enterarraya: \n"); for(i=0;i scanf("%d",&a[i]); printf("arraya: \n"); for(i=0;i printf("%4d",a[i]); for(i=0;i //循环的作用是将对称的元素的值互换 {temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf("\nNow,arraya: \n"); for(i=0;i printf("%4d",a[i]); printf("\n"); } 6-6打印出以下杨辉三角形(要求打印出10行) #include #defineN10 voidmain() {inti,j,a[N][N]; for(i=0;i {a[i][i]=1; a[i][0]=1; } for(i=2;i for(j=1;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i {for(j=1;j<=i;j++) printf("%6d",a[i][j]); printf("\n"); } printf("\n"); } 6-7打印“魔方阵”,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。 例如,三阶魔方阵为 816 357 492要求打印出由1~n2的自然数构成的魔方阵 #include voidmain() {inta[15][15],i,j,k,p,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;j++) a[i][j]=0; j=n/2+1; a[1][j]=1; for(k=2;k<=n*n;k++) {i=i-1; j=j+1; if((i<1)&&(j>n)) {i=i+2; j=j-1; } else {if(i<1)i=n; if(j>n)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;i<=n;i++) {for(j=1;j<=n;j++) printf("%5d",a[i][j]); printf("\n"); } } 6-8找出一个二位数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。 #include #defineN4 #defineM5/*数组为4行5列*/ voidmain() { inti,j,k,a[N][M],max,maxj,flag; printf("pleaseinputmatrix: \n"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i {max=a[i][0]; /*开始时假设a[i][0]最大*/ maxj=0; /*将列号0赋给maxj保存*/ for(j=0;j /*找出第i行中的最大数*/ if(a[i][j]>max) {max=a[i][j]; /*将本行的最大数存放在max中*/ maxj=j; /*将最大数所在的列号存放在maxj中*/ } flag=1; /*先假设是鞍点,以flag为1代表*/ for(k=0;k if(max>a[k][maxj]) /*将最大数和其同列元素相比*/ {flag=0;/*如果max不是同列最小,表示不是鞍点令flag1为0*/ continue;} if(flag)/*如果flag1为1表示是鞍点*/ {printf("a[%d][%d]=%d\n",i,maxj,max);/*输出鞍点的值和所在行列号*/ break; } } if(! flag)/*如果flag为0表示鞍点不存在*/ printf("Itisnotexist! \n"); } 6-9有个15数按由小到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数组中第几个元素的值。 如果该数不在数组中,则打印出"无此数" #include #defineN15 voidmain() {inti,number,top,bott,mid,loca,a[N],flag=1, sign; charc; printf("enterdata: \n"); scanf("%d",&a[0]); i=1; while(i {scanf("%d",&a[i]); if(a[i]>=a[i-1]) i++; else printf("enterthisdataagain: \n"); } printf("\n"); for(i=0;i printf("%5d",a[i]); printf("\n"); while(flag) {printf("inputnumbertolookfor: "); scanf("%d",&number); sign=0; top=0;//top是查找区间的起始位置 bott=N-1; //间的最末位置 if((numbera[N-1]))//要查的数不在查找区间内 loca=-1;//表示找不到 while((! sign)&&(top<=bott)) {mid=(bott+top)/2; if(number==a[mid]) {loca=mid; printf("Hasfound%d,itspositionis%d\n",number,loca+1); sign=1; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)