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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.03.2010, 23:34   #1
Franky21
Новичок
Джуниор
 
Регистрация: 08.03.2010
Сообщений: 3
По умолчанию Поиск смены знака

Вот такая проблема: дан массив из n чисел типа double.
Априори известно, что в массиве минимум две смены знака.
Создано два 4-х елементных массива.
Требуется занести в один массив номера элементов окружающих две смены знака, а в другой значения этих элементов.
Задача усложнена тем, что сколько бы не менялься знак в массиве нужно выделить только две смены знака.

Вот мой код:

Код:
#include <iostream.h>
int main()
{
    
    const int n = 7;
    double x[] = { 0.2, -0.02, 0.6, 0.98, 0.5, -0.35, 1.5}; 
    int y[4];
    double z[4];
    int k = 0;
    for(int i = 0; i < n - 1; ++i)
       { if(x[i] < 0 && x[i + 1] >= 0)
    {
     y[k] = i+1;
                      k++;
     y[k] = i+2;
     k++;
     }       
}
      cout << y[0] <<' ' << y[1]<<' ' << y[2]<<' ' << y[3] ;
        cin.get();
        cin.get();
    return 0;
}
но она заполняет только массив y = {-0.02, 0.6, -0.35, 1.5};

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


Буду очень благодарен за помощь.

Последний раз редактировалось MaTBeu; 09.03.2010 в 12:56.
Franky21 вне форума
Старый 08.03.2010, 23:47   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
#include <iostream>

using namespace std;

int main()
{
	const int n = 7;
	double x[] = { 0.2, -0.02, 0.6, 0.98, 0.5, -0.35, 1.5};
	int y[4];
	double z[4];
	int k1 = 0, k2 = 0;
	for(int i = 0; i < n - 2; ++i)
		if((x[i] < 0 && x[i + 1] >= 0 && x[i + 2] < 0) || (x[i] > 0 && x[i + 1] < 0 && x[i + 2] > 0) && k1 < 4)
		{
			y[k1++] = i;
			y[k1++] = i + 2;
			x[k2++] = x[i];
			x[k2++] = x[i + 2];
		}
	cout <<"Y : " << y[0] <<' ' << y[1]<<' ' << y[2]<<' ' << y[3] << endl;
	cout <<"X : " << x[0] <<' ' << x[1]<<' ' << x[2]<<' ' << x[3] ;
	cin.get();
	return 0;
}
Код выделяй в тег [CODE]
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума
Старый 09.03.2010, 00:16   #3
Franky21
Новичок
Джуниор
 
Регистрация: 08.03.2010
Сообщений: 3
По умолчанию

Огромное спасибо!!!!

перепутал. Наверное сформулировал не правильно сначала.
должно получится так

y = 2, 3 , 6 , 7
x = -0.02; 0.6; -0.35, 1.5;

Последний раз редактировалось Franky21; 09.03.2010 в 00:21.
Franky21 вне форума
Старый 09.03.2010, 00:22   #4
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
#include <iostream>

using namespace std;

int main()
{
	const int n = 7;
	double x[] = { 0.2, -0.02, 0.6, 0.98, 0.5, -0.35, 1.5};
	int y[4];
	double z[4];
	int k1 = 0, k2 = 0;
	for(int i = 0; i < n - 2; ++i)
		if((x[i] < 0 && x[i + 1] >= 0 && x[i + 2] < 0) || (x[i] > 0 && x[i + 1] < 0 && x[i + 2] > 0) && k1 < 4)
		{
			y[k1++] = i;
			y[k1++] = i + 2;
			z[k2++] = x[i];
			z[k2++] = x[i + 2];
		}
	cout <<"Y : " << y[0] <<' ' << y[1]<<' ' << y[2]<<' ' << y[3] << endl;
	cout <<"Z : " << z[0] <<' ' << z[1]<<' ' << z[2]<<' ' << z[3] ;
	cin.get();
	return 0;
}
Если не так как надо работает, то пиши пример и какой ответ должен быть
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума
Старый 09.03.2010, 00:25   #5
Franky21
Новичок
Джуниор
 
Регистрация: 08.03.2010
Сообщений: 3
По умолчанию

Вопрос исчерпан!!!

исправил сам.

Большущее спасибо!

Последний раз редактировалось Franky21; 09.03.2010 в 00:38.
Franky21 вне форума
Старый 09.03.2010, 00:35   #6
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от Franky21 Посмотреть сообщение
y = 2, 3 , 6 , 7
z = -0.02; 0.6; -0.35, 1.5;
проблемы в формулировке )

вобщем нужно не вокруг переходов через ноль, а элементы начала перехода и конец перехода
-0,02 и 0,6 например
Учись с первой попытки задание формулировать. Переделывать я больше не буду. Жди другого кто тебе за просто так поможет.
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция смены пароля! Gennadiy91 Помощь студентам 4 03.02.2010 01:16
JS скрипт смены картинок при наведении на ссылку Андрей79 JavaScript, Ajax 1 20.08.2009 15:41
поиск максимума.(16 бит,uns – число без знака) JNN Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 04.06.2009 23:24
Запрет смены фокуса чекбокса. Mixasik Общие вопросы Delphi 7 25.02.2009 23:43
Алгоритм смены столбцов в массиве DeFace Общие вопросы C/C++ 23 21.11.2008 01:30