Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TigerSHARC
0 / 0 / 0
Регистрация: 01.03.2010
Сообщений: 24
#1

Два новых массива переходов через "0" - C++

08.03.2010, 20:36. Просмотров 299. Ответов 1
Метки нет (Все метки)

имеется массив double x = { 0.2, -0.02, 0.6, 0.98, 0.5, -0.35, 1.5};


необходимо создать код, который создает заполняет два массива
1-й массив типа инт содержит номера элементов окружающих положительный переход через ноль :
для данного массива int y[4] = {2, 3, 6, 7};
2-й массив типа double содержит значения по этим номерам
для данного случая double z[4] = {-0.02, 0.6, -0.35, 1.5};


причём необходимо учесть, что если в массиве x больше переходов через "0" чем 2 то в массивы y и z должны записаться только первые два перехода через ноль.
Т.е. длина массивов y и z должна быть всегда 4 независимо от того сколько раз меняется знак в массиве x.

Буду очень благодарен за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2010, 20:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Два новых массива переходов через "0" (C++):

Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет" - C++
void check_same(const int* a) { for (const int* p = a; p < a + 9; p++) for (const int* q = p+1; q < a + 10; q++) ...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей"; - C++
Помогите пожалуйста с задачей. Могу сделать ее просто, но надо через ООП и у меня не получается. Дано натуральное число N (N<20),...

Где ошибка невозможно преобразовать указатель "this" из "const pers" в "pers &" при выводе объектов через cout - C++
Добрый день! Переписал код из книг Лафоре, создание мультимножества из собственных объектов- справочник телефонный, с именем и фамилией. ...

Как сгенерить два массива с неповторяющимися "случайными" точками (X, Y)? - C++
Добрый вечер! Помогите пожалуйста с задачей. есть структура: struct{ double X; double Y;} Нужно сгенерировать два массива с...

Два числа, действительное "a" и натуральное "n" вводятся с клавиатуры - C++
Два числа, действительное "a" и натуральное "n" (n>=10) вводятся с клавиатуры, необходимо найти значение выражения : ...

1
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.03.2010, 09:40 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <stdlib.h>
 
int main(void) /* ANSI C89 */
{
    double x[] = {
        0.2, -0.02, 0.6, 0.98,
        0.5, -0.35, 1.5, -3.0, 5.0
    };
 
    int y[6] = { 0 };
    double z[6] = { 0.0 };
    int i, j, n, size;
    
    size = sizeof x / sizeof x[0];
    
    n = 0;
    for (i = 0; i < size-1 && (n+1) / 2 < 2; i++)
        if (x[i] < 0.0) {
 
            y[n] = i+1;
            z[n] = x[i];
            n++;
                    
            for (j = i+1; j < size; j++)
                if (x[j] > 0.0) {
                    y[n] = j+1;
                    z[n] = x[j];
                    n++;
                    break;
                }
        }
    
    for (i = 0; i < 6; i++)
        printf("%d %.2f" "\n", y[i], z[i]);
    
    exit(EXIT_SUCCESS);
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <stdlib.h>
 
int main(void) /* ANSI C89 */
{
    double x[] = {
        0.2, -0.02, 0.6, 0.98,
        0.5, -0.35, 1.5
    };
 
    int y[4] = { 0 };
    double z[4] = { 0.0 };
    int i, j, n, size;
    
    size = sizeof x / sizeof x[0];
    
    n = 0;
    for (i = 0; i < size-1 && (n+1) / 2 < 2; i++)
        if (x[i] < 0.0) {
 
            y[n] = i+1;
            z[n] = x[i];
            n++;
                    
            for (j = i+1; j < size; j++)
                if (x[j] > 0.0) {
                    y[n] = j+1;
                    z[n] = x[j];
                    n++;
                    break;
                }
        }
    
    for (i = 0; i < 4; i++)
        printf("%d %.2f" "\n", y[i], z[i]);
    
    exit(EXIT_SUCCESS);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2010, 09:40
Привет! Вот еще темы с ответами:

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

чем отличается вызов объекта через "." и через "->" - C++
Здравствуйте. Вот создал топик для тех, кто желает сам познать С++, но у которых есть вопросы по базовым знаниям. Начну с вопроса:...

Иерархия классов "список"-"очередь", вызов метода через класс интерфейс - C++
Есть небольшая иерархия классов, контейнер (список) для хранения объектов каждого класса, контейнер (очередь) с указателями на объект...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru