printf(\} }
75.编程实现:从键盘输入若干个整数(数据个数应不少于50),其值在0至4的范围内,用-1作为输入结束的标志,统计每个整数的个数。
76.编写一个函数sort,将放到一维数组中的若干个数按从大到小的顺序排序;在主函数中输入若干个数到一个一维数组中,调用sort,对该数组进行排序,在主函数中将原数组和排好序的数组输出。
77.输入一个正整数,将其用质因子的乘积表示,并输出结果,格式为:12=2×2×3。 78.输入一个正整数,求出它的质因子的和,并输出结果,格式为:12的质因子和=2+2+3=7。 79.编写一个函数,判断一个正整数是否为完数:如果一个数的除它本身以外的所有因数之和等于它本身,则它就是完数。主函数中找出1000以内的所有完数。
80.编写函数GCD,求两个正整数的最大公约数,主函数中输入任意5个正整数,调用函数GCD,求出这5个数的最大公约数和最小公倍数。
81.编函数isprime判断正整m是否为素数;如果是素数,返回正整数1,否则返回0;主函数中调用isprime,找出2到1000之间的所有素数。 #include
for(m=2;m<=1000;m++) if(isprime(m)) printf(\}
int isprime(int a) { int i;
for(i=2;i<=sqrt(a);i++) if(a%i==0) return 0; return 1; }
82.一维数组a中的若干个数已按从小到大的顺序有序;在主函数中输入一个数,将其插入到该数组中,使得原数组依然按原序有序,分别输入原数组和插入新元素之后的数组。 #include
int a[21],i,j,n,p,temp;
printf(\请输入数组元素的个数:\
scanf(\
printf(\请输入%d个整数:\\n\ for(i=0;i for(j=0;j<=n-1-i;j++) if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } printf(\原数组为:\\n\ for(i=0;i<=n-1;i++) printf(\ printf(\请输入插入的数:\ scanf(\ for(i=0;i<=n-1;i++) if(p temp=a[i]; a[i]=p; p=temp; } a[n]=p; printf(\插入元素后的数组为:\\n\ for(i=0;i<=n;i++) printf(\} 83.有5个国家名,编程实现按字母先后顺序排序,然后分别输出原数组和排序之后的数组。 #include char name[5][15],temp[15]; int i,j; printf(\请输入国家名:\\n\ for(i=0;i<5;i++) gets(name[i]); for(i=0;i<5;i++) for(j=0;j<4-i;j++) if(strcmp(name[i],name[j+1])>0) { strcpy(temp,name[j]); strcpy(name[j],name[j+1]); strcpy(name[j+1],temp); } printf(\国家名排序后为:\\n\ for(i=0;i<5;i++) printf(\} 84.有一行文字,要求删去其中的某个字符,此行文字和要删的字符均由键盘输入,分别输出原文字和删除之后的文字(注:原文字中的所有和要删除字符相同的字符完全删除)。 #include char a[10],N='n'; printf(\请输入一行9个的文字:\\n\ gets(a); printf(\原文字为:\\n\ puts(a); for(i=0;i<=9;i++) if(a[i]==N) for(j=i;j<=9;j++) a[j]=a[j+1]; printf(\删除后文字为:\\n\ puts(a); } 85.打印如图所示的杨辉三角,要求打印出n行,n由键盘输入。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ……… #include int i,j,N,a[21][21]; printf(\请输入打印的行数:\\n\ scanf(\ for(i=1;i a[i][1]=1; a[i][i]=1; } for(i=3;i for(j=1;j<=i;j++) printf(\ printf(\ } printf(\} 86.编一个函数实现将一个整型的一维数组中的数逆序存放,不使用辅助数组。主函数输入一个整型的一维数组,调用上述函数,将该数组逆置,将结果输出。 #include int a[N],i,temp; printf(\ for(i=0;i temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf(\ for(i=0;i 87.编写一个函数convert,求一个方阵的转置矩阵;主函数中输入方阵的阶数和方阵,在主函数中将原矩阵和转置矩阵按原格式输出。 #include void convert(int [10][10]); int a[10][10],p,q,i,j; printf(\请输入矩阵的行和列:\\n\ scanf(\ scanf(\ printf(\请输入矩阵的元素值:\\n\ for(i=0;i for(j=0;j convert(a); printf(\转置矩阵为:\\n\ for(i=0;i for(j=0;j void convert(int a[10][10]) { int i,j,t;