为什么最大值不会与第一个元素的值交换

img


最大值的9没有与第一个数组元素1的值进行交换,有没有哪位兄弟帮帮我

正常的

int main()
{
double value[10],max;
int n=10,i,j;
for(i=1;i<n;i++) value[i]=i;
max=value[0];
for(i=1,j=1;i<n;i++)
if(value[i]>max)
j=i ; max=value [i];
i=value[0]; value[0]=value[j]; value[j]=i;
for(i=0;i<n;i++)
printf("%lf " ,value[i]);
}

img

缺了大括号。加上大括号代码就可以正确运行。请参考下面代码:

#include <stdio.h>

int main()
{
    double value[10],max;
    int n=10,i,j;
    for(i=1; i<n; i++) scanf("%lf", &value[i]);
    for(i=0; i<n; i++) printf("%lf ", value[i]);
    max=value[0];
    for(i=1,j=1;i<n;i++)
        if(value[i]>max)
        {
            j=i ; 
            max=value [i];
            i=value[0]; value[0]=value[j]; value[j]=i;
        }
    printf("\n");
    for(i=0;i<n;i++) printf("%lf ", value[i]);
    return 0;
}

运行结果:

img