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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
#1

Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. - C++

04.04.2012, 21:54. Просмотров 1743. Ответов 10
Метки нет (Все метки)

Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. Определить номера максимального и минимального элементов в массиве Z.
Почему она вылетает?Делаю на Microsoft Visual Studio.Помогите довести до ума программу)Может здесь есть что-то лишнее?
C++ (Qt)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include <stdio.h>
int main()
{
   int  k, n, m, i, x[10], y[10];
   puts("BBe9iTe 4icLo ELEMEHTOB MACCIBA X:");
   scanf("%d",&n);
   for(i=0;i<n;i++)
   {
     printf("x[%2d]=",i);
     scanf("%d",&x[i]);
   }
   puts("BBe9iTe 4icLo ELEMEHTOB MACCIBA Y:");
   scanf("%d",&m);
   for(i=0;i<m;i++)
   {
     printf("y[%2d]=",i);
     scanf("%d",&y[i]);
   }
   int *z=new int[15]; // выделение памяти под массив Z
   k=0;
   for(i=1;i<n;i+=2)
   {
    if(x[i]>0)
    {
     z[k]=x[i];
     k++;
    }
   }
   for(i=0;i<m;i++)
   {
    if(y[i]>x[0])
    {
     z[k]=y[i];
     k++;
    }
   }
   puts("MacciB X:");
   for(i=0;i<n;i++)
    printf("x[%d]=%d\n",i,x[i]);
   puts("MacciB Y:");
   for(i=0;i<m;i++)
    printf("y[%d]=%d\n",i,y[i]);
   if(k==0)
     puts("MacciB Z HE CformiroBaH.");
   else
   {
      puts("MacciB Z:");
      for(i=0;i<k;i++)
      printf("z[%d]=%d\n",i,z[i]);
   }
   delete[] z; // освобождение памяти
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2012, 21:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. (C++):

Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не превышает 5 - C++
Привет всем. помогите пожалуйста с задачей. Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов...

Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не превышает 5 - C++
Здравствуйте. Помогите решить задачу. Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не...

Даны массивы целых чисел: A[n] и B[m]. Сформировать массив C из элементов массива B, содержащихся в массиве A - C++
Добрый. Даны массивы целых чисел: A и B. Сформировать массив C из элементов массива B, содержащихся в массиве A. Я нашёл пример...

Сформировать массив из элементов исходных массивов, меньших произведения последних элементов заданных массивов. - C++
Программа должна: 1)генерировать случайным образом элементы исходных массивов; 2)выполнять действия в соответствии с условием задачи; ...

В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массив - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массива; • произведение...

Из положительных значений двух целочисленных массивов различной размерности сформировать общий массив - C++
Из положительных значений двух целочисленных массивов различной размерности сформировать общий массив. Найти среднее арифметическое...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.04.2012, 22:16 #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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <vector>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <random>
#include <iterator>
#include <cstdlib>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_real_distribution<> urd(-10., 10.);
    const std::size_t size = 10;
    std::vector<double> v1(size), v2(size);
    std::generate(v1.begin(), v1.end(), [&urd, &gen] () { return urd(gen); });
    std::generate(v2.begin(), v2.end(), [&urd, &gen] () { return urd(gen); });
    for(const auto& elem: v1)
        std::cout << std::setw(10) << elem;
    std::cout << std::endl;
    for(const auto& elem: v2)
        std::cout << std::setw(10) << elem;
    std::cout << std::endl;
    std::vector<double> v3;
    std::copy_if
    (
        v1.begin(),
        v1.end(),
        std::back_inserter(v3),
        [] (const int& elem)
        {
            return elem > 0;
        }
    );
    std::copy_if
    (
        v2.begin(),
        v2.end(),
        std::back_inserter(v3),
        [] (const int& elem)
        {
            return elem > 0;
        }
    );
    for(const auto& elem: v3)
        std::cout << std::setw(10) << elem;
    std::cout << std::endl;
    std::cout   << std::min_element(v3.begin(), v3.end()) - v3.begin()
                << std::endl
                << std::max_element(v3.begin(), v3.end()) - v3.begin()
                << std::endl;
    return 0;
}
Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 22:29  [ТС] #3
Не работает,выдаёт ошибки(((
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.04.2012, 22:32 #4
Компилятор старый.
Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 22:37  [ТС] #5
А что можно сделать,чтобы она заработала?Ошибки:
: error C2001: newline в константе
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(20): error C2143: синтаксическая ошибка: отсутствие "," перед ":"
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(20): error C2530: elem: ссылки должны быть инициализированы
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(20): error C3531: elem: символ, тип которого содержит спецификатор "auto" должен иметь инициализатор
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(23): error C2143: синтаксическая ошибка: отсутствие "," перед ":"
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(23): error C2530: elem: ссылки должны быть инициализированы
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(23): error C3531: elem: символ, тип которого содержит спецификатор "auto" должен иметь инициализатор
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(32): error C2365: elem: переопределение; предыдущим определением было "переменная данных"
1> c:\ruslan\лаб\laba3\laba3\laba3.cpp(23): см. объявление "elem"
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(34): error C3493: "elem" нельзя передать неявно, поскольку не задан режим передачи по умолчанию
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(42): error C2365: elem: переопределение; предыдущим определением было "переменная данных"
1> c:\ruslan\лаб\laba3\laba3\laba3.cpp(23): см. объявление "elem"
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(44): error C3493: "elem" нельзя передать неявно, поскольку не задан режим передачи по умолчанию
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(47): error C2143: синтаксическая ошибка: отсутствие "," перед ":"
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(47): error C2530: elem: ссылки должны быть инициализированы
1>c:\ruslan\лаб\laba3\laba3\laba3.cpp(47): error C3531: elem: символ, тип которого содержит спецификатор "auto" должен иметь инициализатор
1>
1>СБОЙ построения.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.04.2012, 22:41 #6
Ruslan737, обновить компилятор, или переписать под c++03
Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 22:50  [ТС] #7
А вы на чём работаете?
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.04.2012, 08:34 #8
g++ 4.7
Catstail
Модератор
22538 / 10943 / 1775
Регистрация: 12.02.2012
Сообщений: 18,080
05.04.2012, 09:04 #9
RUSLAN-у 737 (навскидку). У тебя массив Z имеет фикс. размеры (15), а если нужных элементов окажется больше, будет ошибка...
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
05.04.2012, 13:44 #10
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int main()
{
   int  k=0,n, m, i;
   while(!fflush(stdin)&&printf("Vvedite razmernost massiva X: ")&&!scanf("%i",&n));
   int *x=(int*)malloc(n*sizeof(int));
   for(i=0;i<n;i++)
   {
                   while(!fflush(stdin)&&printf("X[%d] = ",i+1)&&!scanf("%i",&x[i]));
   }
   system("cls");//чистим экран
   while(!fflush(stdin)&&printf("Vvedite razmernost massiva Y: ")&&!scanf("%i",&m));
   int *y=(int*)malloc(m*sizeof(int));
   for(i=0;i<m;i++)
   {
                   while(!fflush(stdin)&&printf("Y[%d] = ",i+1)&&!scanf("%i",&y[i]));
   }
   system("cls");//чистим экран
   int *z=(int*)malloc((n+m)*sizeof(int)); // Выделям память под масиис Z под(m+n) элементов чтобы точно хватило
   for(i=0;i<n;i++)
   {
                   if(x[i]>0)
                   {
                              z[k]=x[i];
                              k++;
                   }
   }
   for(i=0;i<m;i++)
   {
                   if(y[i]>0)
                   {
                               z[k]=y[i];
                               k++;
                   }
   }
   printf("MacciB X: ");
   for(i=0;i<n;i++)
   {
                    printf("%d ",x[i]);
   }
   printf("\nMacciB Y: ");
   for(i=0;i<m;i++)
   {
                    printf("%d ",y[i]);
   }
   if(k==0)
   {
                    printf("\nPolozitelnyh elementov v massivah X i Y net.");
   }
   else
   {
      int max=z[0]; 
      int min=z[0]; 
      printf("\nMacciB Z: ");
      for(i=0;i<k;i++)
      {
                    if(z[i]>max)
                    {
                             max=z[i];
                    }
                    if(z[i]<min)
                    {
                             min=z[i];
                    }
                    printf("%d ",z[i]);
      }
   printf("\n\nMax.Elements Z: %d",max);  
      printf("\nMin.Elements Z: %d",min); 
   }
   free(x);
   free(y);
   free(z);
   getch();
   return 0;
}
Не смешивай код с СИ с С++ пиши в определенном,ошибку одну поправил.пробуй
Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
05.04.2012, 17:31  [ТС] #11
Спасибо большое)Всё замечательно работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2012, 17:31
Привет! Вот еще темы с ответами:

Из положительных значений двух целочисленных массивов различной размерности сформировать общий массив - C++
Из положительных значений двух целочисленных массивов различной размерно- сти сформировать общий массив. Найти среднее арифметическое...

Вычислить сумму положительных элементов каждого из трёх массивов (функции и массивы) - C++
Помогите пожалуйста:cry:очень нужно.. Дано три одномерные массива разной длинны. Сложить программу для вычисления суммы только...

Заданы два массива. Сравнить соответствующие элементы массивов и вывести на экран массив, состоящий из совпавших элементов. - C++
Помогите пожалуйста решить пару задач :3 Заданы два массива целых чисел одинаковой размерности. Сравнить соответствующие элементы...

Сформировать массивы. Вычислить кол-во положительных элементов, расположенных после минимального элемента - C++
Массив K из N элементов. Из ненулевых элементов массива K сформировать массив Х. Вывести оба массива на экран. Вычислить кол-во...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.04.2012, 17:31
Ответ Создать тему
Опции темы

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