亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

替換最大元素問題

#include <stdio.h>

void replaceMax(int arr[],int value)

{

? ? int max = arr[0];

? ? int index = 0;

? ? int i;

? ? for(i=1;i<5;i++)

? ? {

? ? ? ? if(arr[i]>max)

? ? ? ? {

? ? ? ? ? ? max=arr[i];? ? ? ? ? //將數組中較大的數賦值給max

? ? ? ? ? ? index = i;? //記錄當前索引

? ? ? ? }? ? ? ? ? ? ? ??

? ? }??

? ? arr[index] = value;

}


int main()

{

? ? int arr1[] = {10,41,3,12,22};

? ? int arr2[] = {1,2,3,4,5};

? ? int i;

? ? replaceMax(arr1, arr2[0]? ); //將數組arr1和數組arr2的第一個元素傳入函數中

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? printf("%d ",arr1[i]);? ? ? ? ? ? ? ??

? ? }

? ? return 0;? ??

}

替換最大元素這里,arr[i]>max,max=arr[0]=10的,arr[i]中不止41一個大于10,怎么能確定第一個大于10的數字就是數組中最大的呢?

正在回答

1 回答

?你可以先把“arr1"數組最大的元素排在第一個,下面代碼可以參考一下

void sortarr(int arr,int n) ? //定義函數,第一個參數是數組,第二個參數為數組的長度

{

????int?i;
????for(i=0;i<n;i++)???//找出數組中最大的元素并把它排在第一位
????{
????????if(arr[i]>=arr[0])
????????{
????????????s=arr[0];
????????????arr[0]=arr[i];
????????????arr[i]=s;
??????????}
????}

}

上面的代碼直接對傳入數組的內存地址進行操作,會改變原數組的順序,如果不想改變原數組的順序,可以參考下面的代碼,我水平有限,只能幫到這了

int? sortarr(int arr,int n) ? //定義函數,第一個參數是數組,第二個參數為數組的長度

{

????int?i;
????int?arr2[];??//重新定義一個數組來復制目標數組
????for(i=0;i<n;i++)??//把arr數組的元素復制到arr2數組
????{
????????arr2[i]=arr[i];
????}
????for(i=0;i<n;i++)???//找出arr2數組中最大的元素并把它排在第一位
????{
????????if(arr2[i]>=arr[0])
????????{
????????????s=arr2[0];
????????????arr2[0]=arr2[i];
????????????arr2[i]=s;
??????????}
????}
????
????return?arr2[0];??//返回值為arr2[0],即是arr數組中的最大元素
}


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

替換最大元素問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號