Страница 1 из 1

Одномерный массив.

Добавлено: 29 ноя 2009, 18:11
Dimiona
Здравствуйте. Не могли бы Вы помочь с такой задачей: мне нужно создать одномерный массив, элементы ввести с клавиатуры, и найти номер последнего максимального элемента. Вот что у меня вышло..

Код: Выделить всё

#include <stdlib.h>
int main()
{
int a[10];
int i,max,index;
for (i = 0; i<10; i++)
{
  printf("vvedite a[%d]: ", i); 
  scanf("%d", &a[i]);
}
max = a[0];
for (i = 1; i < 10; i++)
if (max < a[i]) max = a[i],index=i;
 
for (i = 0; i < 10; i++)
printf("a[%d]=%d\n", i, a[i]);
 
printf("max = %d\n", max);
system("PAUSE");
return 0;
}
могу найти максимальный..и его номер..но как найти номер последнего максимального не понимаю((..не могли бы Вы помочь..

Re: Одномерный массив.

Добавлено: 29 ноя 2009, 22:20
Romeo
Самый простой выход действовать по схеме:

1. Пробежались по массиву первый раз - нашли максимальное значение (причём запоминать индекс даже не нужно)
1. Пробежались второй раз с конца до начала и нашли первый встертившийся элемент, со значение, равным максимуму. Его-то индекс нам и нужен.

Re: Одномерный массив.

Добавлено: 30 ноя 2009, 02:42
IceFlame
Строку

Код: Выделить всё

if (max < a[i]) max = a[i],index=i;
заменить на

Код: Выделить всё

{
if (max < a[i]) max = a[i],index=i;
else if(max==a[i]) index=i;
}

Re: Одномерный массив.

Добавлено: 30 ноя 2009, 23:51
Romeo
А можно ещё проще :)

Код: Выделить всё

if (max <= a[i]) max = a[i],index=i;