Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
1

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

04.04.2012, 21:54. Показов 3520. Ответов 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; // освобождение памяти
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2012, 21:54
Ответы с готовыми решениями:

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

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

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

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

10
2553 / 1318 / 178
Регистрация: 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;
}
1
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 22:29  [ТС] 3
Не работает,выдаёт ошибки(((
0
2553 / 1318 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.04.2012, 22:32 4
Компилятор старый.
1
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>СБОЙ построения.
0
2553 / 1318 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.04.2012, 22:41 6
Ruslan737, обновить компилятор, или переписать под c++03
0
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
04.04.2012, 22:50  [ТС] 7
А вы на чём работаете?
0
2553 / 1318 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.04.2012, 08:34 8
g++ 4.7
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
30648 / 16875 / 3476
Регистрация: 12.02.2012
Сообщений: 28,294
Записей в блоге: 5
05.04.2012, 09:04 9
RUSLAN-у 737 (навскидку). У тебя массив Z имеет фикс. размеры (15), а если нужных элементов окажется больше, будет ошибка...
1
138 / 138 / 39
Регистрация: 26.02.2011
Сообщений: 545
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;
}
Не смешивай код с СИ с С++ пиши в определенном,ошибку одну поправил.пробуй
1
1 / 1 / 0
Регистрация: 02.02.2012
Сообщений: 33
05.04.2012, 17:31  [ТС] 11
Спасибо большое)Всё замечательно работает
0
05.04.2012, 17:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2012, 17:31

Даны массивы вещественных чисел А и B с одинаковым кол-вом элементов, необходимо найти сумму положительных элементов в этих массивах
У меня такая задача: Даны массивы вещественных чисел А и B с одинаковым кол-вом элементов,...

Массивы - Новый массив из положительных элементов массивов
Создала 2 массива x и y, как сделать новый массив - z из положительных элементов массивов x и y ...

Массивы - Новый массив из положительных элементов массивов
Создала 2 массива x и y, как сделать новый массив - z из положительных элементов массивов x и yint...

Сформировать массив из положительных элементов двух других массивов
Сформировать массив С из положительных элементов двух других массивов A(8) и B(10) Исходные...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru