Форум программистов, компьютерный форум, киберфорум
Наши страницы

Выяснить, сколько чисел входит в последовательность по одному разу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести на экран линию из символов http://www.cyberforum.ru/cpp-beginners/thread374513.html
Нужно написать программу c помощью цикла While, вот условие: Написать программу, которая выводит на экран линию из символов. Число символов, какой использовать символ, и какая будет линия -...
C++ Помогите написать прогу в С++ Люди пожалуйста помогите написать в С++ программы для задач ,буду очень благодарен Задача1 Lin18. Найти решение системы уравнений вида A1·x + B1·y = C1, A2·x + B2·y = C2, заданной своими... http://www.cyberforum.ru/cpp-beginners/thread374507.html
C++ русские буквы
можно ли как-нибудь ввести в консоль русский текст, получить его, а затем работать с ним, а затем вывести его. посьню: есть код: char st = {0}; cout<<"Введите строку: "; cin>>st;...
C++ Выравниваем строки по правому и левому краям
Задача: Создать программу, которая бы запрашивала у пользователя строки до тех пор, пока он не введет пустую строку, после чего программа должна вывести список введенных строк в два столбца,...
C++ Что не так в программе? (цикл While) http://www.cyberforum.ru/cpp-beginners/thread374488.html
Условие: Написать программу, которая находит сумму всех целых нечетных чисел в диапазоне, указанном пользователем. #include <iostream> using namespace std; int main() { int summa=0,a,b,n=a;...
C++ Что такое композиция? Добрый день. Тут читаю книгу и в ней приводится длинющий и непонятный пример композиции. Попросил бы Вас привести простенький пример композиции, то есть классы как элементы других классов. Желательно... подробнее

Показать сообщение отдельно
Glam_Man
6 / 6 / 0
Регистрация: 15.10.2011
Сообщений: 73
04.11.2011, 17:35  [ТС]
Вот новый код, работающий. Но проблема осталась той же. Кто подскажет, что нужно изменить в коде программы, чтобы препод не ругался?
Код
//Даны натуральное n, целые числа a1, ..., an. Внутри данной последовательности могут быть поваторяющиеся члены. 
//Выяснить, сколько чисел входит в последовательность по одному разу
#include <stdio.h>
const int N=100;
void inMas1(int &n, int a[N])
{
	//ввод размерности массива
	printf ("Vvedite razmernost massiva n=");
	scanf ("%d", &n);
	//проверка на корректность введённой размерности массива
	if (n<=0)
	{
		printf ("Nekorrektniy vvod \n");
	}
	for (int i=0; i<n; i++)
	{
		//ввод a[i]
		printf ("a[%d]=", i);
		scanf ("%d", &a[i]);
	}
}
void MasNoPovtor(int n, int a[], int &k)
{
	//начальное присвоение
	k=0;
	int j=0;
	//Просмотр массива a[N] с занесением всех неповторяющихся элементов этого массива в b[N]
	for (int i=0; i<n; i++)
	{
		//начальное присвоение
		bool flagNo=true;
		while ((flagNo)&&(j<k))
		{
			//цикл сравнения
			if (a[i]==a[j])
			{
				//Если a[i] равен b[j], то продолжаем выполнять цикл без занесения в b текущего элемента
				flagNo=false;
			}
			j++;
		}
		if (flagNo)
		{
			//добавление a[i] в b[k]
			a[k]=a[i];
			k++;
		}
	}
}
void main()
{
	//определение переменных
	int n, k, a[N];
	//ввод исходных данных
	inMas1(n, a);
	//вычисление b
	MasNoPovtor(n, a, k);
	//вывод результата
	if (n>0)
	{
	printf ("%d", k);
	printf ("\n");
	}
}
Добавлено через 37 минут
Нужно как-то сделать так, чтобы a[i] для i от 0 до n<=100 (n задаётся пользователем в пределах 100) сравнивался со всеми элементами массива a[N], и при нахождении элемента, равного текущему элементу этот a[j] не заносился в массив a[k]. Я пока что не догоняю, как

Добавлено через 1 час 46 минут
Извиняюсь за ошибочные комментарии в коде, вот исправленный вариант кода:
Код
//Даны натуральное n, целые числа a1, ..., an. Внутри данной последовательности могут быть поваторяющиеся члены. 
//Выяснить, сколько чисел входит в последовательность по одному разу
#include <stdio.h>
const int N=100;
void inMas1(int &n, int a[N])
{
	//ввод размерности массива
	printf ("Vvedite razmernost massiva n=");
	scanf ("%d", &n);
	//проверка на корректность введённой размерности массива
	if (n<=0)
	{
		printf ("Nekorrektniy vvod \n");
	}
	for (int i=0; i<n; i++)
	{
		//ввод a[i]
		printf ("a[%d]=", i);
		scanf ("%d", &a[i]);
	}
}
void MasNoPovtor(int n, int a[], int &k)
{
	//начальное присвоение
	k=0;
	int j=0;
	//Просмотр массива a[N] с занесением всех неповторяющихся элементов этого массива в a
	for (int i=0; i<n; i++)
	{
		//начальное присвоение
		bool flagNo=true;
		while ((flagNo)&&(j<k))
		{
			//цикл сравнения
			if (a[i]==a[j])
			{
				//Если a[i] равен ф[j], то продолжаем выполнять цикл без занесения в a текущего элемента
				flagNo=false;
			}
			j++;
		}
		if (flagNo)
		{
			//добавление a[i] в a[k]
			a[k]=a[i];
			k++;
		}
	}
}
void main()
{
	//определение переменных
	int n, k, a[N];
	//ввод исходных данных
	inMas1(n, a);
	//вычисление b
	MasNoPovtor(n, a, k);
	//вывод результата
	if (n>0)
	{
	printf ("%d", k);
	printf ("\n");
	}
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru