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

В одномерном массиве, который состоит из n действительных элементов, вычислить: - C++

Восстановить пароль Регистрация
 
TheSecret
10 / 25 / 1
Регистрация: 20.09.2013
Сообщений: 461
07.11.2013, 22:52     В одномерном массиве, который состоит из n действительных элементов, вычислить: #1
Народ значит стоит пере домной такая вот задача:
В одномерном массиве, который состоит из n действительных элементов, вычислить:
а) количество элементов массива, больше за С;
б) произведение элементов массива, расположенных после максимального по модулю элемента;
в) превратить массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом - все положительные(элементы, которые равняются 0, считать положительные).
Вот пытался сделать пункт а:
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
#include <math.h>
#include <conio.h>
#include <iostream.h>
int aa(const int *ma, int nn, int cc);
int main()
{ int n,c,mas[15],i,a,d;
cout<<endl<<"Vvedite kolichectvo elementov maciva(ot 2 do 15):";
cin>>n;
if(n<2||n>15)
 {
  cout<<endl<<"Ne korektnoe kolichectvo elementov!";
 }
else
 {
  for(i=0; i<n; i++)
    {
     cout<<endl<<"Vvedite ["<<i+1<<"]-element maciva:";
     cin>>mas[i];
    }
  clrscr();
  cout<<endl<<"Vvedenie maciv:";
  for(i=0; i<n; i++)
   {
    cout<<mas[i]<<"|";
   }
  cout<<endl<<"Vvedite C:";
  cin>>c;
  aa(mas,n,c);
  cout<<endl<<"Kolichectvo elementov bolche chem C="<<a<<";";
 }
 getch();
 return 0;
}
int aa(const int *ma, int nn, int cc)
{int i;
 int a;
 for(i=0; i<nn; i++)
 {
  if(ma[i]>cc)
   a++;
 }
 return a;
}
Подскажите что не так, что где подправить или напишите полностью программу!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2013, 22:52     В одномерном массиве, который состоит из n действительных элементов, вычислить:
Посмотрите здесь:

C++ В одномерном массиве, который состоит из n вещественных элементов подсчитать номер минимального элемента массива
C++ С++ В одномерном массиве, состоящий из N действительных элементов
C++ В одномерном массиве, состоящий из N действительных элементов, вычислить:
C++ В однородном массиве, который состоит из n действительных елементав, вычислить:
В одномерном массиве, состоящем из N действительных элементов, вычислить C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avalan4er
3 / 3 / 0
Регистрация: 30.11.2012
Сообщений: 41
07.11.2013, 23:21     В одномерном массиве, который состоит из n действительных элементов, вычислить: #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
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include <math.h>
 
using namespace std;
 
int kolvo_bolshe_c(int *mas, int razmer, int c)
{
    int kolvo = 0;
 
    for(int i = 0; i < razmer; i++)
    {
        if(mas[i] > c) kolvo++;
    }
    return kolvo;
}
 
int proizvedenie(int *mas, int razmer)
{
    int maksimaln = 0;
    int proizv = 1;
 
    for(int i = 0; i < razmer; i++)
    {
        if(abs(mas[maksimaln]) < abs(mas[i]))
        {
            maksimaln = i;
        }
    }
 
    for(int i = maksimaln+1; i < razmer; i++)
    {
        proizv *= mas[i];
    }
 
    return proizv;
}
 
void raspolozh(int *mas1, int *mas2, int razmer)
{
    int mas2_counter = 0;
 
    for(int i = 0; i < razmer; i++)
    {
        if(mas1[i] < 0)
        {
            mas2[mas2_counter] = mas1[i];
            mas2_counter++;
        }
    }
 
    for(int i = 0; i < razmer; i++)
    {
        if(mas1[i] >= 0)
        {
            mas2[mas2_counter] = mas1[i];
            mas2_counter++;
        }
    }
}
 
int main()
{
    int n,c;
    int *mas;
 
    cout << "Vvedite kol-vo elementov massiva: ";
    cin >> n;
    if(n < 2) return -1;
    mas = new int[n];
 
    for (int i = 0; i < n; i++)
    {
        cout << "Vvedite ["<<i+1<<"]-element maciva: ";
        cin >> mas[i];
    }
    system("CLS");
 
    cout << "Vvedenie maciv:\n";
    for(int i=0; i<n; i++)
    {
        cout << mas[i] << "\t";
    }
    cout << endl;
 
    cout<<endl<<"Vvedite C: ";
    cin>>c;
 
    int kolvo = kolvo_bolshe_c(mas, n, c);
    cout << "Kolichectvo elementov bolche chem C: " << kolvo << endl;
 
    int proizv = proizvedenie(mas, n);
    cout << "Proizvedenie posle maksimalnogo: " << proizv << endl;
 
    int *mas2 = new int[n];
    raspolozh(mas, mas2, n);
    cout << "Raspolozhit elementi: " << endl;
    for(int i = 0; i < n; i++)
    {
        cout << mas2[i] << '\t';
    }
    cout << endl;
 
    system("PAUSE");
    return 0;
}
TheSecret
10 / 25 / 1
Регистрация: 20.09.2013
Сообщений: 461
07.11.2013, 23:34  [ТС]     В одномерном массиве, который состоит из n действительных элементов, вычислить: #3
Цитата Сообщение от Avalan4er Посмотреть сообщение
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include <math.h>
 
using namespace std;
 
int kolvo_bolshe_c(int *mas, int razmer, int c)
{
    int kolvo = 0;
 
    for(int i = 0; i < razmer; i++)
    {
        if(mas[i] > c) kolvo++;
    }
    return kolvo;
}
 
int proizvedenie(int *mas, int razmer)
{
    int maksimaln = 0;
    int proizv = 1;
 
    for(int i = 0; i < razmer; i++)
    {
        if(abs(mas[maksimaln]) < abs(mas[i]))
        {
            maksimaln = i;
        }
    }
 
    for(int i = maksimaln+1; i < razmer; i++)
    {
        proizv *= mas[i];
    }
 
    return proizv;
}
 
void raspolozh(int *mas1, int *mas2, int razmer)
{
    int mas2_counter = 0;
 
    for(int i = 0; i < razmer; i++)
    {
        if(mas1[i] < 0)
        {
            mas2[mas2_counter] = mas1[i];
            mas2_counter++;
        }
    }
 
    for(int i = 0; i < razmer; i++)
    {
        if(mas1[i] >= 0)
        {
            mas2[mas2_counter] = mas1[i];
            mas2_counter++;
        }
    }
}
 
int main()
{
    int n,c;
    int *mas;
 
    cout << "Vvedite kol-vo elementov massiva: ";
    cin >> n;
    if(n < 2) return -1;
    mas = new int[n];
 
    for (int i = 0; i < n; i++)
    {
        cout << "Vvedite ["<<i+1<<"]-element maciva: ";
        cin >> mas[i];
    }
    system("CLS");
 
    cout << "Vvedenie maciv:\n";
    for(int i=0; i<n; i++)
    {
        cout << mas[i] << "\t";
    }
    cout << endl;
 
    cout<<endl<<"Vvedite C: ";
    cin>>c;
 
    int kolvo = kolvo_bolshe_c(mas, n, c);
    cout << "Kolichectvo elementov bolche chem C: " << kolvo << endl;
 
    int proizv = proizvedenie(mas, n);
    cout << "Proizvedenie posle maksimalnogo: " << proizv << endl;
 
    int *mas2 = new int[n];
    raspolozh(mas, mas2, n);
    cout << "Raspolozhit elementi: " << endl;
    for(int i = 0; i < n; i++)
    {
        cout << mas2[i] << '\t';
    }
    cout << endl;
 
    system("PAUSE");
    return 0;
}
Спасибо большое) +1 тебе) сейчас буду сидеть разбираться)

Добавлено через 4 минуты
Цитата Сообщение от TheSecret Посмотреть сообщение
Спасибо большое) +1 тебе) сейчас буду сидеть разбираться)
Что такое using namespace std;
у меня на него ошибку выбивает!!!
Потом в 30 строке пишет Multiple declaration for 'i' такое же в 51,79,97 строке
в 76 строке Function 'system' should have a prototype
WebMacTep
 Аватар для WebMacTep
21 / 21 / 1
Регистрация: 03.10.2013
Сообщений: 128
07.11.2013, 23:36     В одномерном массиве, который состоит из n действительных элементов, вычислить: #4
TheSecret, насколько я знаю: using namespace std – это определение пространства имён. Тут ошибки быть не должно. Какой компилятор у Вас?
TheSecret
10 / 25 / 1
Регистрация: 20.09.2013
Сообщений: 461
07.11.2013, 23:41  [ТС]     В одномерном массиве, который состоит из n действительных элементов, вычислить: #5
Цитата Сообщение от WebMacTep Посмотреть сообщение
TheSecret, насколько я знаю: using namespace std – это определение пространства имён. Тут ошибки быть не должно. Какой компилятор у Вас?
использую виндов 8, 64 разрадную
поэтому Borland C++ через DOSbox
если можете, скиньте ссылку на нормальный!
Avalan4er
3 / 3 / 0
Регистрация: 30.11.2012
Сообщений: 41
07.11.2013, 23:46     В одномерном массиве, который состоит из n действительных элементов, вычислить: #6
Цитата Сообщение от TheSecret Посмотреть сообщение
использую виндов 8, 64 разрадную
поэтому Borland C++ через DOSbox
если можете, скиньте ссылку на нормальный!
уф...борланд...
если попроще, то Code::Blocks сойдет, там есть сборки со встроенным компилятором, если посерьезнее, то VIsual Studio
P.S. Под w8 x64 работают обе прекрасно (проверенно на себе)
WebMacTep
 Аватар для WebMacTep
21 / 21 / 1
Регистрация: 03.10.2013
Сообщений: 128
07.11.2013, 23:50     В одномерном массиве, который состоит из n действительных элементов, вычислить: #7
TheSecret, кстати, Avalan4er прав. Code::Blocks – очень дельный компилятор (ссылка).
TheSecret
10 / 25 / 1
Регистрация: 20.09.2013
Сообщений: 461
07.11.2013, 23:55  [ТС]     В одномерном массиве, который состоит из n действительных элементов, вычислить: #8
Цитата Сообщение от Avalan4er Посмотреть сообщение
уф...борланд...
если попроще, то Code::Blocks сойдет, там есть сборки со встроенным компилятором, если посерьезнее, то VIsual Studio
P.S. Под w8 x64 работают обе прекрасно (проверенно на себе)
визуалка не устраивает, так как надо будет сдавать на стандартном борланде) ток без досбокс
а первое даже не слышал такое, можно ссылку

Добавлено через 4 минуты
Все исправил, заработало) Вылажую код, может кому то пригодиться еще
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
80
81
82
83
84
85
86
#include <iostream.h>
#include <math.h>
#include <conio.h>
int kolvo_bolshe_c(int *mas, int razmer, int c)
{
    int kolvo=0;
    for(int i=0; i<razmer; i++)
    {
        if(mas[i]>c) kolvo++;
    }
    return kolvo;
}
int proizvedenie(int *mas, int razmer)
{
    int maksimaln=0;
    int proizv=1;
    for(int i=0; i<razmer; i++)
    {
        if(abs(mas[maksimaln]) < abs(mas[i]))
        {
            maksimaln=i;
        }
    }
    for(i=maksimaln+1; i<razmer; i++)
    {
        proizv *=mas[i];
    }
 
    return proizv;
}
void raspolozh(int *mas1, int *mas2, int razmer)
{
    int mas2_counter = 0;
    for(int i=0; i<razmer; i++)
    {
        if(mas1[i]<0)
        {
            mas2[mas2_counter] = mas1[i];
            mas2_counter++;
        }
    }
    for(i=0; i<razmer; i++)
    {
        if(mas1[i]>=0)
        {
            mas2[mas2_counter]=mas1[i];
            mas2_counter++;
        }
    }
}
int main()
{
    int n,c;
    int *mas;
    cout<<"Vvedite kol-vo elementov massiva: ";
    cin>>n;
    if(n<2) return -1;
    mas=new int[n];
    for (int i=0; i<n; i++)
    {
        cout<<"Vvedite ["<<i+1<<"]-element maciva: ";
        cin>>mas[i];
    }
    cout<<"Vvedenie maciv:\n";
    for(i=0; i<n; i++)
    {
        cout<<mas[i]<<"\t";
    }
    cout<<endl;
    cout<<endl<<"Vvedite C: ";
    cin>>c;
    int kolvo=kolvo_bolshe_c(mas, n, c);
    cout<<"Kolichectvo elementov bolche chem C: "<<kolvo<<endl;
    int proizv = proizvedenie(mas, n);
    cout<<"Proizvedenie posle maksimalnogo: "<<proizv<<endl;
    int *mas2 = new int[n];
    raspolozh(mas, mas2, n);
    cout<<"Raspolozhit elementi: "<<endl;
    for(i=0; i<n; i++)
    {
        cout<<mas2[i]<<'\t';
    }
    cout<<endl;
    getch();
    return 0;
}
Avalan4er
3 / 3 / 0
Регистрация: 30.11.2012
Сообщений: 41
07.11.2013, 23:57     В одномерном массиве, который состоит из n действительных элементов, вычислить: #9
Цитата Сообщение от TheSecret Посмотреть сообщение
визуалка не устраивает, так как надо будет сдавать на стандартном борланде) ток без досбокс
а первое даже не слышал такое, можно ссылку
Интересно, где это требуют именно Borland C++. Если честно, я думал что борланд уже никем не используется...
Ну а если вам нужен именно борланд, то можете вначале (до int main()) поставить
C++
1
int i = 0;
и везде в for
C++
1
int i = 0
заменить на
C++
1
i=0
а
C++
1
using namespace std;
убрать, если ваш код у вас нормально компилировался
P.S. что-то я загнул с заменами...
TheSecret
10 / 25 / 1
Регистрация: 20.09.2013
Сообщений: 461
08.11.2013, 00:00  [ТС]     В одномерном массиве, который состоит из n действительных элементов, вычислить: #10
Цитата Сообщение от Avalan4er Посмотреть сообщение
Интересно, где это требуют именно Borland C++. Если честно, я думал что борланд уже никем не используется...
Ну а если вам нужен именно борланд, то можете вначале (до int main()) поставить
C++
1
int i = 0;
и везде в for
C++
1
int i = 0
заменить на
C++
1
i=0
а
C++
1
using namespace std;
убрать, если ваш код у вас нормально компилировался
та я уже выше выложил исправленное все)
Sendy
1 / 1 / 0
Регистрация: 07.11.2013
Сообщений: 13
08.11.2013, 00:12     В одномерном массиве, который состоит из n действительных элементов, вычислить: #11
Да
C++
1
using namespace std;
это фича которая в вижуалке появилась. В кодеблоксе и других прогах, нужно либо в настройках, ставить другой компилятор, либо делать все другим способом.

А про
C++
1
for(int i=0; i<15;i++)
в большинстве компиляторов требуется чтобы все элементы были инициализированы 1 раз, а мы в каждом for объявляем новый элемент который уже существует, вот компиль и ругается.
Avalan4er
3 / 3 / 0
Регистрация: 30.11.2012
Сообщений: 41
08.11.2013, 00:16     В одномерном массиве, который состоит из n действительных элементов, вычислить: #12
[QUOTE=Sendy;5302525]Да
C++
1
using namespace std;
это фича которая в вижуалке появилась. В кодеблоксе и других прогах, нужно либо в настройках, ставить другой компилятор, либо делать все другим способом.

хм, что-то не замечал, чтобы в gcc надо было что-то настраивать для использования using namespace std
использую Code::Blocks "из коробки" и все отлично компилится
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2013, 00:26     В одномерном массиве, который состоит из n действительных элементов, вычислить:
Еще ссылки по теме:

C++ В одномерном массиве, состоящем из N действительных элементов, вычислить:
C++ В одномерном массиве, состоящий из n действительных элементов, вычислить:
В одномерном массиве В, состоящий из N действительных элементов, из промежутка [-30; 30] C++

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

Или воспользуйтесь поиском по форуму:
Sendy
1 / 1 / 0
Регистрация: 07.11.2013
Сообщений: 13
08.11.2013, 00:26     В одномерном массиве, который состоит из n действительных элементов, вычислить: #13
[QUOTE=Avalan4er;5302537]
Цитата Сообщение от Sendy Посмотреть сообщение
Да
C++
1
using namespace std;
это фича которая в вижуалке появилась. В кодеблоксе и других прогах, нужно либо в настройках, ставить другой компилятор, либо делать все другим способом.

хм, что-то не замечал, чтобы в gcc надо было что-то настраивать для использования using namespace std
использую Code::Blocks "из коробки" и все отлично компилится
Я на данный момент не могу точно сказать, но помню точно, что в вижулке проще работать с пространствами имен. ... Ах да.... если не ошибаюсь то в кодеблоксе если открыть просто фаил, а не проект, и скомипилить там строчку using namespace std, то компиль будет ругаться. Там вроде библиотеки над будет добавить...... Да че обсуждать) У каждого свой подход)
Yandex
Объявления
08.11.2013, 00:26     В одномерном массиве, который состоит из n действительных элементов, вычислить:
Ответ Создать тему
Опции темы

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