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;
}
如有帮助,请采纳!