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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Ruslan737
 Аватар для Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 21:54     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #1
Заданы массивы вещественных чисел 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++
C++ Сформировать массив из элементов исходных массивов, меньших произведения последних элементов заданных массивов.
C++ Заданы два массива. Сравнить соответствующие элементы массивов и вывести на экран массив, состоящий из совпавших элементов.
Сформировать массив из тех его положительных элементов, которые меньше, чем логарифм этих элементов C++
C++ Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не превышает 5
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.04.2012, 22:16     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #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
 Аватар для Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 22:29  [ТС]     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #3
Не работает,выдаёт ошибки(((
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.04.2012, 22:32     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #4
Компилятор старый.
Ruslan737
 Аватар для Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 22:37  [ТС]     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #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
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.04.2012, 22:41     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #6
Ruslan737, обновить компилятор, или переписать под c++03
Ruslan737
 Аватар для Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 22:50  [ТС]     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #7
А вы на чём работаете?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.04.2012, 08:34     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #8
g++ 4.7
Catstail
Модератор
 Аватар для Catstail
21490 / 10243 / 1668
Регистрация: 12.02.2012
Сообщений: 17,123
05.04.2012, 09:04     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #9
RUSLAN-у 737 (навскидку). У тебя массив Z имеет фикс. размеры (15), а если нужных элементов окажется больше, будет ошибка...
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
05.04.2012, 13:44     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #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;
}
Не смешивай код с СИ с С++ пиши в определенном,ошибку одну поправил.пробуй
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2012, 17:31     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y.
Еще ссылки по теме:

Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не превышает 5 C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массив C++
Сформировать новый массив С из элементов массивов А и В по правилу C++

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

Или воспользуйтесь поиском по форуму:
Ruslan737
 Аватар для Ruslan737
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
05.04.2012, 17:31  [ТС]     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y. #11
Спасибо большое)Всё замечательно работает
Yandex
Объявления
05.04.2012, 17:31     Заданы массивы вещественных чисел X и Y. Сформировать массив Z из положительных элементов массивов X и Y.
Ответ Создать тему
Опции темы

Текущее время: 12:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru