Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2009, 10:50   #1
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию массивы(язык Си)

как найти номер последнего максимального элемента до заданного числа Т?
bars1984 вне форума Ответить с цитированием
Старый 10.05.2009, 11:27   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Идете по массиву и сравниваете элементы с T. Если совпало, то идете назад и ищете максимум. Вот первый найденный максимум и будет искомым.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.05.2009, 12:27   #3
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

напишите пожалуйста пример программы
bars1984 вне форума Ответить с цитированием
Старый 10.05.2009, 12:37   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
for(k=0; k<N; k++)
 if(mas[k]==T) break;
for(max=i=k; i>=0; i--)
 if(mas[i]>mas[max]) max=i;
После этого в max - нужный индекс.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.05.2009, 17:04   #5
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

огромное спасибо
bars1984 вне форума Ответить с цитированием
Старый 10.05.2009, 17:25   #6
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию не получается решение

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


#include <stdio.h>

int main()
{
int a[20],i, k;
int n, T;
int max ;

printf("Enter n:\n");
scanf("%d", &n);

for (i=0; i<n; i++){
scanf("%d", &a[i]);
}

printf("Enter T:\n");
scanf("%d", &T);

k=0;
while( k<n ) {
if(a[i]==T)break;
k++;
}

max=i=k;
while(i>=0){
if(a[i]>a[max])
max=i;
i--;
}


printf("max is %d\n", max);

return 0;

}
bars1984 вне форума Ответить с цитированием
Старый 10.05.2009, 17:37   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>

int main()
{
int a[20],i, k;
int n, T;
int max ;

printf("Enter n:\n");
scanf("%d", &n);

for (i=0; i<n; i++){
 scanf("%d", &a[i]);
}

printf("Enter T:\n");
scanf("%d", &T);

for(k=0; k<n; k++)
 if(a[k]>T) break;


for(i=max=k; i<n;i++)
 if(a[i]>a[max] && a[i]>0) max=i;

if(a[max]>0) printf("max is %d\n", a[max]);
else printf("Net polozhitelnyh\n");
getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.05.2009, 19:49   #8
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию объясните запись

for(i=max=k; i<n;i++)
if(a[i]>a[max] && a[i]>0) max=i;
bars1984 вне форума Ответить с цитированием
Старый 10.05.2009, 19:56   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
for(i=max=k; i<n;i++)
if(a[i]>a[max] && a[i]>0) max=i;
Присваиваем переменной max значение k. Потом это же значение присваиваем переменной i. Цикл по i от k до n (не включительно).
Если a[i]>a[max] И a[i]>0, то запоминаем индекс (max = i).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.05.2009, 20:56   #10
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

зачем необходима переменная "к" и можно ли без нее написать программу
bars1984 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Язык SunKnight Общие вопросы Delphi 9 29.02.2008 20:16
язык программировния vitalik007 Свободное общение 8 10.09.2007 14:16