2013-12-03 2 views
0

Я работаю над программой, которая должна найти положение элемента min и max массива. Код, который я написал, находит самый большой и наименьший элемент, но я не могу понять, как найти позицию, которую он занимает в массиве. Любые советы будут очень признательны.Позиция элемента массива

То есть то, что я сейчас:

int main() 
{ 
    int i; 
    float a[8] = { 
     1.90, 0.75, 3.30, 1.10, 2.00, 4.50, 0.80, 2.50 
    }; /* array of ints */ 

    printf("\nValues are: \n"); 
    for(i = 0; i < 8; i++) 
     printf("%.2lf\n", a[i]); 

    float max = a[0]; 
    float min = a[0]; 

    for (i = 0; i < 8; i++) { 
     if (a[i] > max) { 
      max = a[i]; 
     } else if (a[i] < min) { 
      min = a[i]; 
     } 
    } 
    printf ("Maximum element in an array : %.2f\n", max); 
    printf ("Minimum element in an array : %.2f\n", min); 
    return 0; 
} 
+0

Использовать переменную, чтобы сохранить позицию в соответствии с тем, что вы сделали для поиска 'max' и' min'? – devnull

+0

'float a [8] = {...};/* массив ints */'O_o ?? –

+0

Я исправил ваш отступ кода. Однако почему ваш комментарий говорит массив ints, когда он является массивом поплавков? – mvp

ответ

2

положение магазина т.е. i вместо содержания a[i]

min=max=0; 
for (i = 0; i < 8; i++) 
{ 

    if (a[i] > a[max]) 
    { 

     max = i; 
    } 

    else if (a[i] < a[min]) 
    { 
     min = i; 
    } 

Если вы хотите напечатать минимальное и максимальное количество вы можете напечатать a[min] и a[max]

+0

Используется для сравнения позиции элемента с значением элемента. Это неправильное решение –

+0

Это хорошая идея, но ваш код не работает. Вы должны сравнить, например, «a [i]> a [max]». –

+0

oops..sorry: P исправлено, что – rjv

4

Ваша программа выглядит довольно хорошо. Все, что вам нужно, это помнить индексы элемента min и max, например:

int i_min = 0; 
int i_max = 0; 
if (a[i] > max) { 
    max = a[i]; 
    i_max = i; 
} else if (a[i] < min) { 
    min = a[i]; 
    i_min = i; 
} 

а затем распечатайте его.

Вы можете немного оптимизировать его, сохранив только индексы элемента min и max, но это, вероятно, не имеет большого значения.

Смежные вопросы