qq_就此别过_0
2015-07-28 17:43
#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;
}
你的函数写错了。因为你这个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;
}
你的replacemax是什么意思。另外你怎么没有 return max,
C语言入门
926206 学习 · 20797 问题
相似问题