如下程序实现对数组v按从大到小进行排序,请补充完善。 main() { int x,v[]={41,3,4,16,7,8,10,113,14},n=9; int i, j, k; for (i=0; i<n;i++) { k=i; for (j= i+1;j<n;j++) if (v[j]>v[k]) k=j; if(i!=k) { v[i] = v[i]+v[k]; 【1】 ; 【2】 ; } } for (i=0; i<n;i++) printf("%d ",v[i]); }

如下程序实现对数组v按从大到小进行排序,请补充完善。 main() { int x,v[]={41,3,4,16,7,8,10,113,14},n=9; int i, j, k; for (i=0; i<n;i++) { k=i; for (j= i+1;j<n;j++) if (v[j]>v[k]) k=j; if(i!=k) { v[i] = v[i]+v[k]; 【1】 ; 【2】 ; } } for (i=0; i<n;i++) printf("%d ",v[i]); }


参考答案和解析
#include<iostream> using namespace std; void sort( double x,double y ); void sort( double x,double y,double z ); int main() { sort( 5.6, 79 ); sort( 0.5, 30.8, 5.9 ); } void sort(double x,double y) { if ( x>y ) cout << x << '\t' << y << endl; else cout << y << '\t' << x << endl; } void sort( double x,double y,double z ) { double t; if( y<z ) { t = y; y = z; z = t; } if( x<z ) { t = x; x = z; z = t; } if( x<y ) { t = x; x = y ;y = t; } cout << x << '\t' << y << '\t' << z << '\t' << endl; }

相关考题:

阅读下列程序说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。【说明】程序利用选择排序算法对数组a中的N个整数按照从小到大的顺序排列,并将排序结果显示出来。【程序】define N 10main(){void (1);int i,a[N];for(i=0;i<10,i++) /*输入*/scanf(“%d”,a[i]);(2);for(i=0;i<N,i++) /*输出*/printf(“%3d”,a[i]);}void selectSon(int x[],int n){int i,j,k,t;for(int i=0; (3);i++){k=i;for(j=i+1;j<n;j++)if (4) k=j;if (5){t=x[i];x[i]=x[k];x[k] =t;}}}

有以下程序 main(){intx[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i=i;j--) if(x[ 有以下程序 main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){ k=x[j];x[j];x[j+1];x[j+1]=k;} for(i=0;i<8;i++)printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是A.75310246B.1234567C.76310462D.13570246

有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i=i;j--)if ( 有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;j--) if (x[j+1)>x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;} for (i=0;i<3;i++) for (j=4;j<7-i;j++) if (x[j]>x[j+1]){k=x [j];x[j]=x[j+1];x[j+1)=k;} for(i=0;i<8;i++)printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是 ______。A.75310246B.1234567C.76310462D.13570246

以下程序段是函数返回a所指数组中最大的值所在的下标值,横线处的语句为( )。 fun(int*a, int n) { int i,j=0,k; k=j; for(i=j;i<n;i++) if[a[i]>a[k])______; return(k); }A.k=iB.k=jC.i=jD.i=n

该程序运行的结果是( )。#include#include#define M 100void fun(int m, int *a, int *n){ int i,j=0;for(i=1;i=m;i++)if(i%7==0||i==0)a[j++]=i;*n=j;}main(){ int aa[M],n,k;clrscr();fun(10,aa,n);for(k=0;kif((k+1) ==0)printf("\n");else printf("M",aa[k]);printf("\n");}

C语言数组输出间隔 #include stdio.hvoid main(){ void sort(int array[],int n); int a[10],i; printf("enter the array:\n"); for(i=0;i10;i++) scanf("%d", sort(a,10); printf("The sorted array:\n"); for(i=0;i10;i++) printf("%d",a[i]); printf("\n");}void sort(int array[],int n){ int i,j,k,t; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) if(array[j]array[k]) k=j; t=array[k];array[k]=array[i];array[i]=t; }}程序呢,就是这个了。谭老爷子书上的例题,和书上一样,然后输入:5 7 -3 21 -43 67 321 33 51 0 然后从小到大排好后输出,书上他们之间从小到大有间隔,但是我运行了,没有间隔。。。。( ⊙o⊙ )?咋解决?????来高手解答。。。我运行后是:-43-305721335167321

阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。【函数2.1说明】有1、2、3、4四个数字,输出由这些数字组成的互不相同且无重、复数字的三位数。【函数2.1】main(){int i,j,k;printf("\n");for((1)) /*以下为三重循环*/for(j=1; j<5;j++)for (k=1;k<5;k++){if ((2)) /*确保i, j, k 三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}【函数2.2说明】计算并输出100之内的素数,每行输出10个,超过10个则换行。【函数2.2】include <stdio.h>include "math.h"define N 101main(){int i,j,line,a[N];for(i=2;i<N;i++)(3);for(i=2;i<sqrt(N);i++)for(j=i+1;j<N;j++){if(a[i]!=0a[j]!=0)if(a[j]%a[i]==0)(4);}printfC\n");for(i=2,line=0;i<N;i++){if(a[i]!=0){prinff("%5d",a[i]);(5);}if(line==10){prinff("\n");line=0;}}}

有以下程序:include using namespace std;int main ( ){ int n[3],i,j,k = 2; for(i 有以下程序: #include <iostream> using namespace std; int main ( ) { int n[3],i,j,k = 2; for(i = 0;i<k;i++) n[i] = O; for(i = O;i<k;i++) { for(j = O;j<k;j++) n[j] = n[i] + 1; } cout<<n [0 ] <<end1; return 0; } 上述程序运行后,输出结果是( )。A.0B.1C.2D.3

下列程序的输出结果是 include void main( ) {int a[3],i,j,k=2; for(i= 下列程序的输出结果是 #include<iostream.h> void main( ) { int a[3],i,j,k=2; for(i=0;i<3;i++)a[i]=i; for(i=0;i<k;i++) for(j=0;j<k;j++) a[j]=a[i]; cout<<a[2];}A.2B.3C.1D.0

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:54 13 23 1 12 2 12 1 1 11 1 1 1 1共有7种划分。这种划分的程序如下所示。【程序】include <stdio.h>int n[1000],m,k;void output sum(){int j;for(j=0;n[j]!=0;j++)printf("%d\t",n[j]);printf("\n");}void sum(int i)if(m-n[i]<n[i]){ m=m-n[i];(1)i++;n[i+1]=0;}else{(2)m-=n[i];i++;}if(m!=n[i])sum(i);elseoutput_sum();if(n[i]>1){n[i]--;(3)}else{while((n[i]==1)(i>O)){i--;(4)}if(i!=0){(5)sum(i);}}}void main(){int i;scanf("%d",n[0]);m=k=n[0];for(i=1;i<=k;i++)n[i]=0;while(n[0]!=1){n[0]--;i=0;sum(0);m=k;}}

有以下程序 main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i=i; 有以下程序main( ){ int x[ ]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for (j=2;j>=i;j--)if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for (i=0;i<3;i++)if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for (i=0;i<8;i++) printf("%d",x[i]);printf("\n");}程序运行后的输出结果是:A.75310246B.1234567C.76310462D.13570246

以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。define M 2define N 4void SumColumMin(int a[M][N],int *sum){ int i,j,k,s=0;for(i=0;i〈N;i++){ k=0;for(j=1;j<M;j++)if(a[k][i]>a[j][i])k=j;s+=【 】;}【 】 =s;}main( ){ int x[M][N]={3,2,5,1,4,1,8,3},s;SumColumMin(【 】);printf("%d\n",s);}

分析下列程序,其最终执行结果是______。 main() { int n[3],i,j,k; for(i=0;i<3;i++)n[i]=O; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1; printf("%d\n",n[0]); }A.-2B.-1C.0D.-3

有下列程序: include void fun(int * s,int n1,int n2) { int i,j, 有下列程序: #include <stdio.h> void fun(int * s,int n1,int n2) { int i,j,t; i=n1;j=n2; while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n"); } 程序的运行结果是( )。A.987654321B.4321098765C.5678901234D.987651234

下面程序的输出结果是______。 main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int(*p)[4]=a,i,j,k=0; for(i=0;i<3;i++) for(j=0;j<2;j++) k=p[i][j]; printf("%d\n",k); }A.17B.18C.19D.23

请读程序: include main( ) { int n[2],i,j,k; { for(i=0,i 请读程序: # include<srdio.h> main( ) { int n[2],i,j,k; { for(i=0,i<2;i + + )n[i]=0; k=2; for(i=0;i<k;i+ +) {for(j=0;j<k;j+ +)n[j]=n[i]+l; print{("%d\n",n[k]); } 上面程序片段输出结果是 ( )A.不确定的值B.3C.23D.1

阅读以下函数说明和C语言函数,将应填入(n)处的字句填写在对应栏内。[函数2.1说明]函数fun1 (int m, int k, int xx [])的功能是:将大于整数m且紧靠m的k个素数存入数组xx中传回。例如:若输入17,5,则应输出:19,23,29,31,37。[函数2.1]fun1 (int m, int k, int xx [] ){inti, j, s=0;for ( i=m+1; k>0; i++ ){for (j=2; j<i; j++ )if ( i %j=0 )(1)if( i==j ){(2)k--; }}}[函数2.2说明]函数void fun 2 ()的功能是:打印出杨辉三角形(要求打印出10行)。[函数2.2]void fun2 ( ){int i, j;int a[10][10];printf ("\n" );for (i=0; i<10; i++{a [i] [0]=1;(3))for (i=2; i<l0; i++ )for (j=1; j<i; j++)(4)for (i=0; i<10; i++ ){for (j=0; j<=i; j++ )(5)printf ( "\n" );}}

有以下程序main(){ int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i3;i++) for(j=2;j=i;j--) if(x[j+1]x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for (i=0;i3;i++) for(j=4;j7-i;j++) if(x[j]x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for (i=0;i8;i++) printf("%d",x[i]); printf("\n");}程序运行后的输出结果是A.75310246 B.01234567 C.76310462 D.13570246

有以下程序:main(){int x[]={1,3,5,7,2,4,6,0),i,j,k;for(i=0;i=i;j--)if( x[j 有以下程序: main() { int x[]={1,3,5,7,2,4,6,0),i,j,k; for(i=0;i<3;i++) for(j=2;i>=i;j--) if( x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。A.7.53102e+007B.01234567C.7.63105e+007D.1.35702e+007

以下程序的输出结果是#include conio.h#include stdio.h#define M 100void fun(int m, int *a, int *n){ int i,j=0; for(i=1;i=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;}main(){ int aa[M],n,k; clrscr(); fun(100,aa,n); for(k=0;kn;k++) if((k+1)%20==0)printf("\n"); else printf("%d",aa[k]); printf("\n"); }

有如下程序#include "stdio.h"main(){ int j,i,k=0; for(j=20;j=30;j++) { if(!(k%10))printf("\n"); for(i=2;ij;i++)if(!(j%i))break; if(i=j-1) { printf("%d",j); k++;} }}程序的运行结果是A.2329 B.2923C.3292 D.9232

请补充函数fun(),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。例如,输入6和21,则输出为:7 11 13 17 19 21。注意:部分源程序给出如下。请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include<conio. h>include<stdio. h>define N 1000int fun (int n, int m, int bb [N]){int i, j, k=0, flag;for (j=n; j<=m; j++){【 】;for (i=2; i<j; i++)if(【 】){flag=0;break;}if(【 】)bb [k++] =j}return k;}main (){int n=0,m=0, i, k;int bb[N];clrscr ();printf ("Input n\n");scanf ("%d", n);printf ("Input m\n");scanf ("%d", m);for (i=0; i<m-n; i++)bb[i]=0;k=fun (n, m, bb);for (i=0; i<k; i++)printf ("%4d",bb [i]);}

写出模板函数实现数值型数组元素值按从小到大排序的程序。includeiostreamusing namespace std;template class Tvoid sort(T b[],int n){T temp;int i,j;T *a=new T[n];for (i=0;in;i++){a[i]=b[i];}for(i=0;in-1;i++){for(j=i+1;jn;j++){ if(a[i]a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}for(i=0;in;i++){couta[i] ;}coutendl;delete []a;}void main(){int i,n=6;int a[]={5,1,9,10,3,8};____________;for(i=0;in;i++){couta[i] ;}coutendl;}

有以下程序includevoidfun(int*s,intn1,intn2){inti,j,t; i=n1j=n2; while(i 有以下程序 #include <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1 j=n2; while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]); printf("\n"); } 程序的运行结果是A.987654321B.4321098765C.5678901234D.987651234

有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i=i;j--)if(x[j+ 有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。A.75310246B.1234567C.76310462D.13570246

下面程序的功能是 : 将 N 行 N 列二维数组中每一行的元素进行排序 , 第 0 行从小到大排序 , 第 1 行从大到小排序,第 2 行从小到大排序,第 3 行从大到小排序,例如:define N 4void sort(int a[][N]){ int i, j, k, t;for (i=0; iN;i++)for (j=0; jN-1:j++)for (k= 【 13 】 ; kN;K++)/* 判断行下标是否为偶数来确定按升序或降序来排序 */if ( 【 14 】 ? a[i][j]a[i][k]); a[i][j]a[i][k]){ t = a[i][j];a[i][j]=a[i][k];a[i][k] = t;}}void outarr(int a[N][N]){ …… }main(){ int aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}};outarr(aa); /* 以矩阵的形式输出二维数组 */sort(aa);outarr(aa);}

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]函数int psort(int a[],int n)实现将含n个整数的数组a[]的不同元素按从小到大顺序存于数组a[]中。实现方法是从未确定的元素列中找到最小元素并将a[]的第i最小元素交换至a[i]位置。如该最小元素比已确定的最后一个最小元素大,则将它接在已确定的元素序列的后面;否则,忽视该元素。[C函数]int psort(int a[],int n){int i,J,k,P;for(i=0,k=0;i<(1);i++){for(j=i+1, (2) ;j<n; j++)if(a[p]>a[j])p=j;if(p!=i){t=a[p];a[p]=a[i];a[i]=t;}if( (3) ) k++;else if( (4) <a[i])(5)=a[i];}return k;}int a[]={5,7,5,6,4,3,4,6,7};main(){int k,n;for(k=0;k<(Sizeof a)/Sizeof(int);k++)printf("%5d",a[k]);printf ("\n\n");n=psort(a,(sizeof(a))/sizeof(int));for(k=0;k<n;k++)printf("%5d",a[k]);printf("\n\n");}

下列程序段的时间复杂度为()。for(i=0;i<m;i++)for(j=0;j<t;j++)e[i][j]=0;for(i=0;i<m;i++)for(j=0;j<t;j++)for(k=0;k<n;k++)c[i][j]_c[i][j]+a[i][k]×b[k][j];A.O(m×n×t)B.O(m+n+t)C.O(m×t+n)D.O(m+n×t)