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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2014, 13:13   #1
Vladislavv
Пользователь
 
Регистрация: 30.07.2014
Сообщений: 35
По умолчанию убывание возрастание

Дан массив из 20 целых чисел со значениями от 1 до 20.

Необходимо:

написать функцию, разбрасывающую элементы массива произвольным образом;
создать случайное число из того же диапазона и найти позицию этого случайного числа в массиве;
отсортировать элементы массива, находящиеся слева от найденной позиции по убыванию, а элементы массива, находящиеся справа от найденной позиции по возрастанию.

пишет ошибки:

Ошибка 5 error LNK1120: 1 неразрешенных внешних элементов
Ошибка 4 error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl input<double>(double * const,int * const,int)" (??$input@N@@YAXQANQAHH@Z) в функции _main



Код:
#include <iostream>
#include <ctime>
#include <cmath>
#include <conio.h>
using namespace std;

template <typename T>
void input (T ar[], int arr[], int n);
template <typename T>
void asort (T ar[],  int n);
void arsort(double ar[], int arr[], int n);
template <typename T>
int fd (T ar[], int n);
template <typename T>
void b (T ar[], int n, int pf);
template <typename  T>
void s (T ar[], int n, int pf);

void main(){
const int n=3;
srand (time(NULL));
int f=0, arr[n];
double ar[n];
input (ar, arr, n);
asort (arr, n);
arsort (ar, arr, n);
f=fd (ar, n);
b (ar, n, f);
s (ar, n, f);
for (int i=0; i<n; i++)
cout <<ar[i]<<"\t";
cout <<endl;
}

template <typename T>
void input (T ar[], T arr[], int n){
	for (int i=0; i<n; i++){
	cout <<"input "<<i<<" element of arange\n";
	cin >>ar[i];
	}
}

template <typename T>
void asort (T arr[], int n){
int p=0; 
bool ch=0;
arr [0]=rand()%n;
cout <<arr[0]<<endl;
for (int i=1; i<n; i++){
	do{
	p=rand()%n;
	cout <<p<<"p"<<endl;
	for (int j=0; j<i; j++){
		if (p==arr[j])
			ch=1;
	}
	if (ch==1){
		i--;
		ch=0;
	}
	else
		arr[i]=p;
	}
	while (ch==1);
} 
}

void arsort(double ar[], int arr[], int n){
double x=0;
for (int i=0; i<n; i++){
	for (int j=0; j<n; j++){
		if (i==ar[j]){
			x=ar[i];
			ar[i]=ar[j];
			ar[j]=x;
			j=0;
		}
	}
}
}

template <typename T>
int fd (T ar[], int n){
T f=0;
int pf=0;
bool ch=0;
do{
cout <<"input your figure\n";
cin >>f;
for (int i=0; i<n; i++){
	if (f==ar[i]){
	pf=i;
			}
	else{
		ch=1;
	}
}
}
while (ch==1);
return pf;
}

template <typename T>
void b (T ar[], int n, int pf){
	int x=0;
	for (int i=pf; i<n; i++){
	for (int j=n-1; j>pf+1; j--){
	if (ar[j]< ar[j-1]){
			x=ar[j];
			ar[j]=ar[j-1];
			ar[j-1]=x;
			}
		}
	}
}


template <typename  T>
void s (T ar[], int n, int pf){
	int x=0;
	for (int i=0; i<pf; i++){
	for (int j=pf-1; j>0; j--){
	if (ar[j]< ar[j-1]){
			x=ar[j];
			ar[j]=ar[j-1];
			ar[j-1]=x;
			}
		}
	}
}


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 02.09.2014 в 20:52.
Vladislavv вне форума Ответить с цитированием
Старый 02.09.2014, 13:39   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Код:
void input (T ar[], T arr[], int n){
Не соответствуют аргументы в прототипе функции и реализации.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 02.09.2014, 19:44   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
#include <iostream>
#include <vector>
#include <functional>
#include <algorithm>

#define from 1
#define to 20
#define size 20 

using namespace std;

void init_vector(vector<int> &v)
{
	for (int i = 0; i < size; i++)
		cin >> v[i];
}

void print_vector(const vector<int> &v)
{
	cout << endl;
	for (vector<int>::const_iterator p = v.begin(); p != v.end(); ++p)
		cout << *p << " ";

	cout << endl;
}

void random_swap(vector<int> &v)
{
	random_shuffle(v.begin(), v.end());
}

int get_random(int f, int t)
{
	return rand() % t + f;
}

int main()
{
	vector<int> v(size);
	int k;
	
	init_vector(v);

	random_swap(v);
	print_vector(v);

	k = get_random(from, to);
	cout << k << endl;
	vector<int>::iterator p = find(v.begin(), v.end(), k);
	
	if (p == v.end()) return 0;
	sort(v.begin(), p);
	print_vector(v);
	sort(p+1, v.end(), greater<int>());
	print_vector(v);

	
}
Не проверял
Poma][a вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить рекурсию на 'возрастание Gefo PHP 8 22.01.2013 19:27
C++, убывание методом пузырька STIFLER32 Общие вопросы C/C++ 2 07.02.2011 01:40
На печать выдать новую строку в которой все слова расположены в порядке возрастание длин слов Siluet Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2008 00:12