替換最大元素問題
#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的數字就是數組中最大的呢?
2020-05-17
?你可以先把“arr1"數組最大的元素排在第一個,下面代碼可以參考一下
void sortarr(int arr,int n) ? //定義函數,第一個參數是數組,第二個參數為數組的長度
{
}
上面的代碼直接對傳入數組的內存地址進行操作,會改變原數組的順序,如果不想改變原數組的順序,可以參考下面的代碼,我水平有限,只能幫到這了
int? sortarr(int arr,int n) ? //定義函數,第一個參數是數組,第二個參數為數組的長度
{