#define n 4 int main() {
int i,j;
int a[m][n]; time_t t;
srand((unsigned) time(&t)); printf(\ for (i=0; i a[i][j]=rand()0; printf(\ if(j!=0&&j%(n-2)==0) { a[i][n-1]=0; printf(\ } } printf(\ for(i=0;i for(j=0;j printf(\ } printf(\ } system(\ return 0; } 3. //有一个m×n矩阵,找出最大元素值及其最大元素值所在的行、列位置。 #include int i,j,max=-65536; int row,col; int a[m][n]={77,99,69,76,87,90,100,88,66}; for (i=0; i max=-65536; for(j=0;j if(a[i][j]>max) { max=a[i][j]; row=i;col=j; } } } printf(\ printf(\另一种输出方式 system(\ return 0; } 4. //有n个考生,每个考生有考号和一个总分成绩,如果录取m人,确定录取分数线,并输出录取考生的考号和成绩。 #include void SelectSort(int a[n][2])//选择排序 { int i,j,k,min,t0,t1; for(i=0;i {//选出最小值所在的位置j min=65535;//可试试此句不在循环内的结果。 for(k=i;k if(i!=j) {//交换 t1=a[i][1]; t0=a[i][0]; a[i][1]=a[j][1]; a[i][0]=a[j][0]; a[j][1]=t1; a[j][0]=t0; } } printf(\ for(i=0;i printf(\} int main() { int i,j,m; int a[n][2]={1,99,2,76,3,90,4,88}; SelectSort(a);//调用选择排序函数,第八章内容 printf(\ scanf(\ printf(\ for (i=n-m; i printf(\ } system(\ return 0; } 5. //将矩阵m(n,n)对角线上的元素置为1,其余元素置为0。 #include int i,j; int m[n][n]={1,99,2,76,3,90,4,88,66}; for(i=0;i m[i][j]=1; else m[i][j]=0; printf(\ for(i=0;i for(j=0;j printf(\ printf(\ } system(\ return 0; } 实验七(第7章实验 实验目的: 1.掌握函数的定义和使用方法。 2.了解参数传递方式。 3.掌握简单的递归算法。 实验内容: N! 1. 用函数过程计算 —————— M!(N-M)! 2.裴波那契数列的前两项是1、1,以后的每一项都是其相邻前两项之和。编写函数过程求: ⑴ 数列前n项和FS;⑵ 前n项的平均值V。并就n=20计算并输出FS与V。 3.编写一个用梯形法求一元函数f(x)在〔a,b〕上积分近似值的函数过程。并就 f(x)=sin(2x)+x,当[a,b]=[0,3.14159]、小区间数n=10和n=20时,分别计算并输出积分的近似值s1和s2,保留3位小数。(未实现) 4.编写一个函数程序,其功能是判定一个数是否为素数,若是素数则函数返回值为1, 若不是素数则函数返回值为0。用此函数判定找出 100 以内最大的 3 个素数。 532 5.编写函数程序,用牛顿迭代法求一元方程 x+2x-x+x+1=0在 0 附近的近似值。 6.编写函数程序,计算正整数 n1~n2 之间所有素数之和。 7.用递归方法求 Fibonacci数列前 20 项及其这20项的和。 实验过程: 实验结果:1. // #include float func(int m,int n) { int i; long int factorial_n=1,factorial_m=1,factorial_nm=1; float solut=0.0; for(i=1;i<=n;i++) factorial_n*=i; for(i=1;i<=m;i++) factorial_m*=i; for(i=1;i<=n-m;i++) factorial_nm*=i; solut= 1.0*factorial_n/(factorial_m*factorial_nm);//注意括号,如果没有,除的意义就变了。 return solut; } main(){ int m,n;