1、 用筛选法求100之内的素数。 解:
#include
{int i,j,n,a[101];
for (i=1;i<=100;i++) a[i]=i; a[1]=0;
for (i=2;i for (i=2,n=0;i<=100;i++) { if(a[i]!=0) {printf(\ n++; } if(n==10) {printf(\ n=0; } } printf(\ return 0; } 2、 用选择法对10整数排序。 解: #include {int i,j,min,temp,a[11]; printf(\ for (i=1;i<=10;i++) {printf(\ scanf(\ } printf(\ printf(\ for (i=1;i<=10;i++) printf(\ printf(\ 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(\ for (i=1;i<=10;i++) printf(\ printf(\ return 0; } 3、 求一个3×3的整型矩阵对角线元素之和。 解: #include int a[3][3],sum=0; int i,j; printf(\ for (i=0;i<3;i++) for (j=0;j<3;j++) scanf(\ for (i=0;i<3;i++) sum=sum+a[i][i]; printf(\ return 0; } 4、 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。 解: #include { int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j; printf(\ for (i=0;i<10;i++) printf(\ printf(\ printf(\ scanf(\ 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(\ for (i=0;i<11;i++) printf(\ printf(\ return 0; } 5、 将一个数组中的值按逆序重新存放。例如,原来顺序为8、6、5、4、1。要求改为1、4、5、6、8。 解: #include \#define N 5 void main() { int a[N],i,temp; printf(\ for(i=0;i printf(\ for(i=0;i 6、 输出以下的杨辉三角形(要求输出10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 解: #include \void main() { int i,j,n=0,a[31][31]={0}; while(n<1||n>30) /*最多可输出30行*/ {printf(\请输入杨辉三角形的行数:\ scanf(\ } for(i=0;i a[i][0]=1; /*第一列全置为一*/ for(i=1;i a[i][j]=a[i-1][j-1]+a[i-1][j]; /*每个数是上面两数之和*/ for(i=0;i 7、 输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2 解: #include { int a[15][15],i,j,k,p,n; p=1; while(p==1) {printf(\ scanf(\ if ((n!=0) && (n<=15) && (n%2!=0)) p=0; } for (i=1;i<=n;i++)
C语言程序设计第四版第六章答案谭浩强



