Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2019, 00:16   #1
bylbyl9tor
Пользователь
 
Регистрация: 07.10.2018
Сообщений: 28
Восклицание НЕправильно что-то делаю пр передаче значений между функциями

Подсчитать количество неотрицательных элементов массива и вывести их порядковые номера
Укажите на ошибку пожалуйста
Код:
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
int check( int n )
{
	do
	{
		cout << "Введите количество эллементов массива: " << endl;
		cin >> n;
		if (n <= 0 || n >= 1000)
		{
			cout << "Количество элементов массива должно быть больше нуля и меньше 1000, пожалуйста повторите ввод: " << endl;
			cout << "________________________________________________________________________________" << endl;
		}
	} while (n <= 0 || n >= 1000);
	return n;
}
void generator( int *mas,int n)
{
	for (int i = 0; i < n; i++)
	{
		mas[i] = 1 + rand() % 201 - 100;
	}

	cout << "________________________________________________________________________________" << endl;
	cout << "Элементы массива:" << endl;
	
}
void coout(int* mas, int n)
{
	for (int i = 0; i < n; i++)
	{
		cout << "Элемент массива номер " << i + 1 << " " << "=" << " " << mas[i] << endl;

	}
	cout << "________________________________________________________________________________" << endl;
}
void end(int *mas,int n ,int sum ,int l, int j )
{
	for (int i = 0; i < n; i++)
	{
		if (mas[i] >= 0) cout << "Элемент массива номер " << i + 1 << " неотрицателен " << endl;
		if (mas[i] >= 0) { j++; }
	}
	cout << endl;
	cout << "Количество неотрицательных элементов массива: " << j << endl;
}
int main()
{
	srand(time(0));
	int mas[1000],  n=0, sum = 0, l = 0, j = 0;
	setlocale(LC_ALL, "ru");
	check(n);
	int* mas = new int[n];
	generator(mas, n);
	coout(mas, n);
	end(mas, n, sum, l, j);
	system("pause");
	return 0;
}
bylbyl9tor вне форума Ответить с цитированием
Старый 12.03.2019, 00:31   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Начните с
Код:
	int mas[1000]
	int* mas = new int[n];
p51x вне форума Ответить с цитированием
Старый 12.03.2019, 00:32   #3
bylbyl9tor
Пользователь
 
Регистрация: 07.10.2018
Сообщений: 28
По умолчанию

убираю int mas[1000] и в итоге прога работает но ничего не считает
bylbyl9tor вне форума Ответить с цитированием
Старый 12.03.2019, 00:36   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так вы 0 элементов считаете... что вы от них хотите?

Код:
check(n);
Вы возвращаемое значение не сохранили, n без ссылки/указателя, а значит копия...
p51x вне форума Ответить с цитированием
Старый 12.03.2019, 00:42   #5
bylbyl9tor
Пользователь
 
Регистрация: 07.10.2018
Сообщений: 28
По умолчанию

ООООООООООООООо, О_о, спасибо ВАМ огромное, все работает, сколько ещё Вы будете меня выручать)
bylbyl9tor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ [передача значений между функциями] bylbyl9tor Помощь студентам 7 19.02.2019 10:22
C++, передача значения строки между функциями denkorg Общие вопросы C/C++ 2 17.12.2017 09:52
Что я неправильно делаю? Illusiony PHP 25 01.02.2015 18:35
что делаю неправильно zidane007_06 БД в Delphi 2 10.05.2011 22:28
Передача значений переменных функциями HostileZeth Общие вопросы C/C++ 4 02.12.2010 16:29