给定n个数据,求最大值的位置。看看哪点出错了

int i,maxlocation;
max=s[0];
for(i=1;i<n;i++)
if(s[i]>max)
max=s[i];
maxlocation=i;
希望看一下哪点出错了

int i,maxlocation;
max=s[0];
for(i=1;i<n;i++)
if(s[i]>max)
{max=s[i];
maxlocation=i;}

maxlocation需要赋初值,与max对应

int i,maxlocation;
max=s[0];
maxlocation=0;
for(i=1;i<n;i++)
    if(s[i]>max)
    {
        max=s[i];
        maxlocation=i;
    }

if语句需要用{}包裹起来,如果不用{}包裹,那么只有max=s[i]这一句属于if语句,导致逻辑错误。


int i,maxlocation;
max=s[0];
for(i=1;i<n;i++)
if(s[i]>max)
{  //--------------  这里添加 {
max=s[i];
maxlocation=i;
}  //-------------- 这里添加 }  ,从而让max=s[i]; 和maxlocation=i;都属于if语句

1)不要少了括号

int i,maxlocation;
max=s[0];
for(i=1;i<n;i++)
if(s[i]>max){
max=s[i];
maxlocation=i;
}

int i,maxlocation;
max=s[0];
//这里先排序,保证maxfor循环之后max是最大值
for(i=1;i<n;i++){
if(s[i]>max)
max=s[i];

//循环数组,找与最大值一样的下标
for(i=1;i<n;i++){
if(s[i]==max)
maxlocation=i;
}

如有帮助,请采纳!