第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c語言交換排序的問題?

c語言交換排序的問題?

C
慕粉1474272606 2016-11-15 20:40:31
實在是有點困擾。。
查看完整描述

3 回答

已采納
?
Lemon156

TA貢獻91條經(jīng)驗 獲得超32個贊

望采納

#include<stdio.h>
int?main(){
	int?g,i,k,l,m,n,temp;//g存儲最大值的下標,l存儲最小值的下標
	int?a[20];//定義數(shù)組最多存放20個元素
	printf("input?n?:????");
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}

	for(i=0;i<n;i++){
		if(i==0){
			m=a[i];
			l=i;
			k=a[i];
			g=i;
		}
		if(a[i]>m){	
			m=a[i];
			g=i;
		}
		if(a[i]<k){
			k=a[i];
			l=i;
		}
	}
	temp=a[0];
	a[0]=a[l];	//最小值與第一個元素交換
	a[l]=temp;

	temp=a[n-1];
	a[n-1]=a[g];	//最大值與最后一個元素交換
	a[g]=temp;

	printf("排序后:\n");
	for(i=0;i<n;i++)
		printf("%d?",a[i]);
	printf("\n");
	
	return?0;
}


查看完整回答
1 反對 回復 2016-11-15
  • 慕粉1474272606
    慕粉1474272606
    萬分感謝
  • 慕粉1474272606
    慕粉1474272606
    我試了一下 發(fā)現(xiàn)只有兩個元素的時候不行啊
  • Lemon156
    Lemon156
    只需要加個判斷就可以了 #include<stdio.h> int main(){ int g,i,k,l,m,n,temp;//g存儲最大值的下標,l存儲最小值的下標 int a[20];//定義數(shù)組最多存放20個元素 printf("input n (2~20) : "); scanf("%d",&n); if(n<2||n>20){ printf("輸入錯誤\n請輸入n為2~20之間的數(shù)!?。n"); //判斷是否是輸入2~20之間的數(shù),不是則退出 return 0; } for(i=0;i<n;i++){ scanf("%d",&a[i]); //存儲輸入的數(shù) } if(n==2){ //如果是輸入兩個數(shù),只需進行排序 if(a[1]>a[0]){ printf("%d %d\n",a[0],a[1]); } else{ printf("%d %d\n",a[1],a[0]); } } else{ //當n>2時 for(i=0;i<n;i++){ if(i==0){ m=a[i]; l=i; k=a[i]; g=i; } if(a[i]>m){ m=a[i]; g=i; } if(a[i]<k){ k=a[i]; l=i; } } temp=a[0]; a[0]=a[l]; //最小值與第一個元素交換 a[l]=temp; temp=a[n-1]; a[n-1]=a[g]; //最大值與最后一個元素交換 a[g]=temp; printf("排序后:\n"); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); } return 0; }
?
Lemon156

TA貢獻91條經(jīng)驗 獲得超32個贊

只需加個判斷就可以了

#include<stdio.h>
int?main(){
????int?g,i,k,l,m,n,temp;//g存儲最大值的下標,l存儲最小值的下標
????int?a[20];//定義數(shù)組最多存放20個元素
????printf("input?n?(2~20)?:???");
????scanf("%d",&n);

	if(n<2||n>20){
		printf("輸入錯誤\n請輸入n為2~20之間的數(shù)!??!\n");??//判斷是否是輸入2~20之間的數(shù),不是則退出
		return?0;
	}

????for(i=0;i<n;i++){
????????scanf("%d",&a[i]);??//存儲輸入的數(shù)
????}
	

	if(n==2){						//如果是輸入兩個數(shù),只需進行排序
		if(a[1]>a[0]){
			printf("%d??%d\n",a[0],a[1]);
		}
		else{
			printf("%d??%d\n",a[1],a[0]);
		}
	}

	else{						//當n>2時
		for(i=0;i<n;i++){
			if(i==0){
				m=a[i];
				l=i;
				k=a[i];
				g=i;
			}
			if(a[i]>m){?
				m=a[i];
				g=i;
			}
			if(a[i]<k){
				k=a[i];
				l=i;
			}
		}
		temp=a[0];
		a[0]=a[l];??//最小值與第一個元素交換
		a[l]=temp;
?
		temp=a[n-1];
		a[n-1]=a[g];????//最大值與最后一個元素交換
		a[g]=temp;
?
		printf("排序后:\n");
		for(i=0;i<n;i++)
			printf("%d?",a[i]);
		printf("\n");
????}
????return?0;
}


查看完整回答
1 反對 回復 2016-11-17
  • 3 回答
  • 0 關(guān)注
  • 1341 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號