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

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Dimiona
Сообщения: 1
Зарегистрирован: 29 ноя 2009, 17:32

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

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

#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;
}
могу найти максимальный..и его номер..но как найти номер последнего максимального не понимаю((..не могли бы Вы помочь..
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Самый простой выход действовать по схеме:

1. Пробежались по массиву первый раз - нашли максимальное значение (причём запоминать индекс даже не нужно)
1. Пробежались второй раз с конца до начала и нашли первый встертившийся элемент, со значение, равным максимуму. Его-то индекс нам и нужен.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
IceFlame
Сообщения: 62
Зарегистрирован: 29 ноя 2009, 03:54

Строку

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

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;
}
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

А можно ещё проще :)

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

if (max <= a[i]) max = a[i],index=i;
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить