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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2009, 13:43   #1
Ferghost
 
Регистрация: 31.05.2009
Сообщений: 9
По умолчанию Определить индекс и значение наибольшего попадающего в интервал (-5,0) элемента. В случае отсутствия тако

Написал прогу по задаче :
Дан массив А[N]. Определить индекс и значение наибольшего попадающего в интервал (-5,0) элемента. В случае отсутствия такового предусмотреть соответствующее сообщение.
Но сделать так, что бы выводило сообщение отсутсвия элемента не получаеться. Помогите разобраться что не так.

Код:
#include <iostream.h>
void main(){
    int A[7]={6,-5,3,9,8,0,11};
	int i,one,ione,two,itwo,max,imax;
	i=0;
	one=0;
	two=0;
	max=0;
	//one=A[0];
	for(i=1;i<7;i++){
		if(A[i]==-5){
			one=A[i];
			ione=i;
		}
	}
i=0;
    for(i=1;i<7;i++){
		if(A[i]==0){
			two=A[i];
			itwo=i;
		}
	}
i=0;
max=one;
    for(i=ione;i<=itwo;i++){
		if(max<A[i]){
			max=A[i];
			imax=i;
		}
		else {
			cout<<"not";
		}
	}
	cout<<"d: "<<max;
	cout<<"i: "<<imax;
}
Модератор: тег CODE
Ferghost вне форума Ответить с цитированием
Старый 31.05.2009, 13:49   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Неверный подход. Заведите переменную-флаг. Изначально она равна 0.
Далее делаете обход. Если встретили хоть один элемент, который попадает в нужный интервал, то флаг = 1.
После цикла проверяете: если флаг==1, то выводим индекс элемента, иначе - сообщение о том, что элемент не найден.

И вообще, странно у вас как-то сделано. Переменных тоже многовато.
Код:
#include <iostream.h>
#include <conio.h>

int main(){
    int A[7]={6,-5,3,9,8,0,11};
	int i,imax=-1;
	bool flag = false;

	for(i=0; i<7; i++)
	 {
   if(A[i]>-5 && A[i]<0)
    {
     flag = true;
     if(imax==-1 || A[i]>A[imax]) imax = i;
    }
  }

 if(flag)
	{
  cout<<"d: "<<A[imax]<<endl;
	 cout<<"i: "<<imax;
 }
 else
  cout<<"Net\n";
getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 31.05.2009 в 13:53.
Sazary вне форума Ответить с цитированием
Старый 31.05.2009, 14:08   #3
Ferghost
 
Регистрация: 31.05.2009
Сообщений: 9
По умолчанию прога

спасибо, помогло
Ferghost вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить максимальное/минимальное значение функции y=f(x) astrozombie Помощь студентам 2 16.02.2009 13:52
определить по диаграмме в зависимости от (Х) значение (У) Vittall Microsoft Office Excel 10 05.01.2009 06:18
Как определить индекс линии Memo, где стоит курсор? yaver Общие вопросы Delphi 2 16.11.2008 17:29
Как определить значение по графику? leonid Microsoft Office Excel 4 27.05.2008 08:48
Определить значение поля у С в C=B+A; Иллидан Общие вопросы C/C++ 6 21.05.2008 19:26