我的答案為什么不對?
#include "stdio.h"
int ?replacemax(int arr[],int value)
{
? ? int max, i;
? ? max=arr[0];
for(i=1;i<5;i++)
{
if(max<arr[i])
? ? ? max=arr[i];
?
}
max=value;
}
int main()
{ ??
int i;
int arr1[5]={10,41,3,12,22};
int arr2[5]={1,2,3,4,5};
replacemax(arr1,arr2[0]);
? ? for(i=0;i<5;i++)
printf("%d\t",arr1[i]);
return 0;
}
2015-07-28
你的函數寫錯了。因為你這個max是一個臨時變量,你只是把value的值給max,而max卻無法把值傳給相應的數組的位置,可以這樣改。
#include "stdio.h"
void ?replacemax(int arr[],int value)
{
? ? int max, i,pos; ?//pos為最大值所在數組的下標
? ? max=arr[0];
? ? pos = 0;
? ? for(i=1; i<5; i++)
? ? {
? ? ? ? if(max<arr[i])
? ? ? ? {
? ? ? ? ? ? max=arr[i];
? ? ? ? ? ? pos = i;
? ? ? ? }
? ? }
? ? arr[pos]=value;
}
int main()
{
? ? int i;
? ? int arr1[5]= {10,41,3,12,22};
? ? int arr2[5]= {1,2,3,4,5};
? ? replacemax(arr1,arr2[0]);
? ? for(i=0; i<5; i++)
? ? ? ? printf("%d\t",arr1[i]);
? ? return 0;
}
2015-07-28
你的replacemax是什么意思。另外你怎么沒有 return max,?