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

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

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

Заменить отрицательные элементы одномерного массива целых чисел на нули - C++

27.09.2012, 17:26. Просмотров 685. Ответов 12
Метки нет (Все метки)

Заменить отрицательные элементы одномерного массива целых чисел на нули, а затем подсчитать количество нулевых элементов.
1. отформатировать исходный код программы согласно требованиям к оформлению исходного кода;
2. использовать динамические массивы (размер массива вводится пользователем с проверкой ввода);
3. выявить ограничения на вводимые пользователем значения и, если таковые имеются, не допустить их ввода.
4. организовать повтор программы по желанию пользователя.
5. реализовать меню пользователя, состоящее как минимум из 4-х пунктов:
a. ввод элементов массива;
b. обработка массива;
c. вывод массива на экран
d. выход

В общем не получается написать прогу,начал с меню и дальше не могу понять что делать,кому не лень,напишите пожалуйста
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2012, 17:26     Заменить отрицательные элементы одномерного массива целых чисел на нули
Посмотрите здесь:

C++ Заменить отрицательные элементы одномерного массива целых чисел на нули
C++ Расположить элементы одномерного массива в следующем порядке: сначала отрицательные, затем нули, потом положительные
Дано двумерный массив целых чисел. Все нечетные элементы заданного массива заменить суммой номеров их строки и столбца C++
C++ В матрице целых чисел заменить все отрицательные элементы нулями
C++ Ввод одномерного массива из N целых чисел
Удалить из массива целых чисел все нули C++
Заменить нулями все отрицательные элементы массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
27.09.2012, 17:41     Заменить отрицательные элементы одномерного массива целых чисел на нули #2
Различные приемы работы с матрицами - готовое решение на мноооого больше, помимо твоего задания. пятерку получишь
no_wearines
52 / 48 / 2
Регистрация: 01.01.2012
Сообщений: 324
28.09.2012, 01:50     Заменить отрицательные элементы одномерного массива целых чисел на нули #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
//Приложение №1;
 
#include <windows.h>
#include <iostream.h>
#include <conio.h>
 
int *ptr_1, count;
 
void rus_text(const char *s_1)
{
char s_2[50];
CharToOemA(s_1, s_2);
cout<<s_2;
}
 
void inform_function()
{
clrscr();
if(ptr_1 == NULL)
{
rus_text("1 - Создать массив"); cout<<endl;
rus_text("6 - Выход"); cout<<endl;
}
else
{
rus_text("2 - Ввести элементы массива"); cout<<endl;
rus_text("3 - Обработать массив"); cout<<endl;
rus_text("4 - Вывести на печать"); cout<<endl;
rus_text("5 - Очистить дисплей"); cout<<endl;
rus_text("6 - Выход"); cout<<endl;
}
}
 
void create_array()
{
int value_1;
 
rus_text("Введите кол-во элементов: ");
cin>>value_1;
 
if(value_1 <= 0)
{
rus_text("Ошибка: параметр слишком мал, приложение будет закрыто (нажмите любую клавишу...)");
getch();
exit(1);
}
 
ptr_1 = new int[value_1];
 
if(ptr_1 == NULL)
{
rus_text("Ошибка: ошибка памяти приложение будет закрыто (нажмите любую клавишу...)");
getch();
exit(1);
}
 
::count = value_1;
rus_text("Массив создан успешно (нажмите любую клавишу...)");
getch();
inform_function();
}
 
void entering_element_array()
{
for(int index_1 = 0; index_1 < ::count; ++index_1)
cin>>ptr_1[index_1];
}
 
void function_1()
{
int value_1 = 0;
 
for(int index_1 = 0; index_1 < ::count; ++index_1)
if(ptr_1[index_1] < 0)
{
ptr_1[index_1] = 0;
++value_1;
}
else if(ptr_1[index_1] == 0)
++value_1;
 
rus_text("всего нулей: ");
cout<<value_1<<endl;
}
 
void print_array()
{
rus_text("массив: ");
for(int index_1 = 0; index_1 < ::count; ++index_1)
cout<<ptr_1[index_1]<<" ";
cout<<endl;
}
 
void clear()
{
clrscr();
inform_function();
}
 
void main()
{
int value_1;
void (*menu[5])() = {create_array, entering_element_array, function_1, print_array, clear};
ptr_1 = NULL;
 
start:
inform_function();
 
rus_text("Введите команду: ");
while(cin>>value_1, value_1 < 6 && value_1 > 0)
{
(*menu[(value_1 - 1)])();
rus_text("Введите команду: ");
}
delete [] ptr_1;
ptr_1 = NULL;
 
rus_text("Выполнить программу еще раз? (1 - да, 2 - нет) ");
cin>>value_1;
 
if(value_1 == 1)
goto  start;
 
getch();
}
stalker2033
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 25
28.09.2012, 05:39  [ТС]     Заменить отрицательные элементы одномерного массива целых чисел на нули #4
Не работает прога,сразу вылетает как ввожу число.
no_wearines
52 / 48 / 2
Регистрация: 01.01.2012
Сообщений: 324
28.09.2012, 15:04     Заменить отрицательные элементы одномерного массива целых чисел на нули #5
Странно что не работает у меня работает на C++ Builder 6 и на Borland C++ 5.02

Добавлено через 1 минуту
Опишите проблему подробнее
stalker2033
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 25
28.09.2012, 17:58  [ТС]     Заменить отрицательные элементы одномерного массива целых чисел на нули #6
А на visual c++ должна вообще запускаться?
no_wearines
52 / 48 / 2
Регистрация: 01.01.2012
Сообщений: 324
28.09.2012, 18:10     Заменить отрицательные элементы одномерного массива целых чисел на нули #7
я не компилировал ее тем компилятором. Хотя все должно работать.
Кстати в функции rus_text увеличьте размер массива скажем до 80, а то туда строка в одном месте передается, превышающая размер массива.
stalker2033
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 25
28.09.2012, 18:23  [ТС]     Заменить отрицательные элементы одномерного массива целых чисел на нули #8
Изменил,добавил библиотеку #include <iostream> (без нее не работает),но компилятор какую то х выдает,типа cout,end1,clrscr,cin необъявленный идентификатор.
no_wearines
52 / 48 / 2
Регистрация: 01.01.2012
Сообщений: 324
28.09.2012, 18:26     Заменить отрицательные элементы одномерного массива целых чисел на нули #9
программа в неизменном виде работате?
Понятно,что без некоторых файлов она не будет работать. На что они по вашему там?

Добавлено через 46 секунд
просто скопируйте ее в среду откомпилируйте и напечатайте ошибки
stalker2033
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 25
28.09.2012, 18:39  [ТС]     Заменить отрицательные элементы одномерного массива целых чисел на нули #10
та вот ошибки с добавленной библиотекой 1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(14) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(19) : error C3861: clrscr: идентификатор не найден
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(22) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(22) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(23) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(23) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(27) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(27) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(28) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(28) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(29) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(29) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(30) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(30) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(31) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(31) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(40) : error C2065: cin: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(67) : error C2065: cin: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(84) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(84) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(91) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(92) : error C2065: cout: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(92) : error C2065: endl: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(97) : error C3861: clrscr: идентификатор не найден
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(111) : error C2065: cin: необъявленный идентификатор
1>c:\users\roma\documents\visual studio 2008\projects\08\08\08.cpp(111) : fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции

А вот без нее ошибка какая вылезает: fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
no_wearines
52 / 48 / 2
Регистрация: 01.01.2012
Сообщений: 324
28.09.2012, 18:42     Заменить отрицательные элементы одномерного массива целых чисел на нули #11
вы знаете я неработаю в средах линейки Visual. я не понимаю смысла этих ошибок. Но на средах линейки этот пример запускается прекрасно, без ошибок и Warining

Добавлено через 20 секунд
линейки borland
stalker2033
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 25
28.09.2012, 18:51  [ТС]     Заменить отрицательные элементы одномерного массива целых чисел на нули #12
спасибо за помощь,буду дальше сам разбираться
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2012, 19:40     Заменить отрицательные элементы одномерного массива целых чисел на нули
Еще ссылки по теме:

Заменить все отрицательные элементы массива C++
C++ Заменить все отрицательные элементы массива нулями
C++ Если элементы массива не образуют убывающей последовательности, то заменить его отрицательные элементы
Заменить все отрицательные элементы массива их квадратами C++

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

Или воспользуйтесь поиском по форуму:
Lynatik001
38 / 32 / 4
Регистрация: 28.09.2012
Сообщений: 617
28.09.2012, 19:40     Заменить отрицательные элементы одномерного массива целых чисел на нули #13
может вам поможет using mamespace std;
?
если ето вы сменили с <iostream.h> на <iostream> то что я написал в верху обезательно)
Yandex
Объявления
28.09.2012, 19:40     Заменить отрицательные элементы одномерного массива целых чисел на нули
Ответ Создать тему
Опции темы

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