1. 1 试写一个算法, 自大到小依次输出顺序读入的三个数 X、 Y 和 Z 的值。 void Desceding(int &x, int &y, int &z) { //将 x、 y 和 z 按从大到小的顺序排列 if (xsqrt(n) printf("%d is a prime number", n) else printf("%d is not a prime number", n) ; } /* prime */ 最坏情况下 O(sqrt(n) ) (2) float sum1(int n) { /* 计算 1! +2! +…+n! */ p=1; sum1=0; for (i=1; i<=n; ++i) { p=p*i; sum1=sum1+p } } /* sum1 */ O(n) (3) float sum2(int n) { /* 计算 1! +2! +…+n! */ sum2=0; for (i=1; i<=n; ++i) { p=1; for (j=1; j<=i; ++j) p=p*j; sum2=sum2+p; } } /* sum2 */ O(n (4) void sort(int a[], int n) { /* 将数组 a 中的元素按自小到大的顺序排列 */ for (i=1; i<=n-1; ++i) { k=i; for (j=i+1; j<=n; ++j) if (a[j]j) {x=a[i]; a[i]=a[k]; a[k]=x; } } } /* sort */ O(n (5) void matrimult(a[m][n], b[n][l], c[m][l], int m, int n, int l) { /* a 为 m×n 阶的矩阵, b 为 n×l 阶的矩阵, c 为 m×l 阶的矩阵 */ /* 计算 c=a*b */ for (i=1; i<=m; ++i) for (j=1; j<=l; ++j) c[i, j]=0; for (i=1; i<=m; ++i) for (j=1; j<=l; ++j) for (k=1; k<=n; ++k) c[i, j]=c[i, j]+a[i, k]*b[k, i]; } /* matrimult */ O(n 2) 2) 3) 1.16 void print_descending(int x,int y,int z)//按从大到小顺序输出三个数 { scanf("%d,%d,%d",&x,&y,&z); if(xy; //<->为表示交换的双目运算符,以下同 if(yz; if(xy; //冒泡排序 printf("%d %d %d",x,y,z); }//print_descending 1.17 Status fib(int k,int m,int &f)//求 k 阶斐波那契序列的第 m 项的值 f { int tempd; if(k<2||m<0) return ERROR; if(m