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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 21:26   #1
Dead Romantic
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 32
По умолчанию Помогите, не могу понять, как объяснить программе, что именно я от нее хочу

Задача:"Сформировать одномерный массив В из элементов массива А таким образом, чтобы элементы массива, имеющие одинаковые значения, вносились в массив В только один раз".
Не могу сообразить, как собрать цикл, чтоб он проверял равенство данного элемента массива с любым другим. По сути надо, чтобы сверялись 2 элемента, сравниваемый должен иметь определенный порядковый номер в массиве, а тот, с которым сравниваем, должен быть из числа тех элементов массива, порядковый номер которых не равен порядковому номеру сравниваемого. А вот с формированием второго массива вообще темный лес... Вот, посмотрите, я тут наваял:

Код:
//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <windows.h>
//---------------------------------------------------------------------------
#pragma argsused
void rus(char*a)
{char*b=new char [strlen(a)+1];
CharToOem (a,b);
cout<<b;
delete[]b;
}
int main(int argc, char* argv[])
{int x[10],i,z,y[10],d;
randomize();
for (i=0;i<10;i++)
{x[i]=random(100);
}
rus("исходный массив: ");
for (i=0;i<10;i++)
{cout<<" "<<x[i];
}
d=0;
z=0;
for (i=0;i<9;i++)
{if (x[i]=x[i+1]) d=x[i]; for (i=i+1;i<8;i++) {if (d=x[i]) z++;}
}


getch();
return 0;
}


//---------------------------------------------------------------------------
Строго не судите, я С++ только 2 месяца изучаю...

Последний раз редактировалось Stilet; 03.12.2009 в 07:45.
Dead Romantic вне форума Ответить с цитированием
Старый 02.12.2009, 22:33   #2
forsaken66
Куды бечь?
Форумчанин
 
Аватар для forsaken66
 
Регистрация: 05.10.2009
Сообщений: 104
По умолчанию

Попробуй вот так.

Код:
#include "stdafx.h"
#include "iostream"
#include "cstdio"
#include "conio.h"
#include "ctime"
using namespace std;

int main()
{
	int i=0,j=0,k=0,t=0;
	bool tr=false;
	const int N=10;
	int mas1[N],mas2[N];
	srand((unsigned)time(NULL));
//---------------------------------------
	cout<<"Isxodnuu massiv- ";
	for (i=0;i<N;i++)
	{
		mas1[i]=rand()%10+1;
		cout<<mas1[i]<<" ";
		mas2[i]=0;
	}
//---------------------------------------
	for (i=0;i<N;i++)
	{		
		for(j=0;j<k;j++)
			 if (mas1[i]==mas2[j])
			  	tr=true;
        
		if (!tr)
		{
			mas2[k]=mas1[i];
			k++;
		}
    	tr=false;
	}
//---------------------------------------
	cout<<"\n\nObrabotka- ";
	for (i=0;i<k;i++)
	{
		cout<<mas2[i]<<" ";
	}

_getch();
return 0;
}
Не хватало всего одного байта. Да-да, того самого, что из восьми бит состоит.
forsaken66 вне форума Ответить с цитированием
Старый 03.12.2009, 06:52   #3
Dead Romantic
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 32
По умолчанию

Пасиб огромное! Но думаю препод не поймет... Эх... Придется в электрики идти...
Dead Romantic вне форума Ответить с цитированием
Старый 03.12.2009, 07:54   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот чуть подправил твое:
Код:
int main(int argc, char* argv[])
{int x[10],i,z,cnt,y[10],d;
randomize();      cnt=0;
for (i=0;i<10;i++){
 x[i]=random(10);
// искаем первый повтор если не найден в конец дописываем
 for(z=0;(z<=cnt)&&(x[z]!=x[i]);z++);y[z]=x[i];
 if (cnt<z) {cnt=z;}
}
rus("исходный массив: \n");
for (i=0;i<10;i++){cout<<'\t'<<x[i];}
cout<<'\n';
rus("второй массив: \n");
for (i=0;i<cnt;i++){cout<<"\t"<<y[i];}


getch();
return 0;
}
Хотя электрик тоже профессия путевая.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.12.2009, 21:51   #5
Dead Romantic
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 32
По умолчанию

Спасибо) Так думаю препод не прикопается и мне все тут понятно!) Поживу программистом еще)
Dead Romantic вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите дописать программу на Delphi 7 не могу понять что здесь не так matrix8325 Помощь студентам 1 30.04.2009 23:34
не могу понять как решать(( что и как(( дурачок же я )) durachok) Паскаль, Turbo Pascal, PascalABC.NET 0 25.12.2008 14:45
Не могу понять, что требуется? Shuraken Общие вопросы Delphi 2 10.08.2007 11:41