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

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

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

Восстановить пароль

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

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

Возможно ли реализовать такой вариант решения или надо все переделывать?
Ошибка 2 error C2440: =: невозможно преобразовать "double *" в "double" 41, 43
Код:
#include <iostream>
#include <ctime>
using namespace std;

template <typename T>
void input(T ar, int n);
template <typename T>
void sort (T ar, int n);
template <typename T>
void io (T ar, T arr, T ptz, int n);
template <typename T>
void out (T ar, int n);

void main (){
const int n=10;
double ar[n], arr[n], *ptz;
srand (time(NULL));
input (ar, n);
input (arr, n);
sort (ar, n);
sort (arr, n);
out (ar, n);
out (arr, n);
io (ar, arr, ptz, n);
sort (ptz, 2*n);
out (ptz, 2*n);
}

template <typename T>
void input(T ar, int n){
for (int i=0; i<n; i++)
	ar[i]=rand()%50;
}

template <typename T>
void sort (T ar, int n){
	T temp=0;
	for (int i=0; i<n; i++){
		for (int j=i; j<n; j++ ){
			if (ar[j]<ar[i]){
			ar[i]=temp;
			ar[i]=ar[j];
			ar[j]=temp;
			}	
		}
	}
}

template <typename T>
void io (T ar, T arr, T ptz, int n){
	ptz=ar;
	for(int i=1; i<n; i++)
	*(ptz+i)=ar[i];
	for (int j=n;j<2*n; j++)
	*(ptz+j)=ar[j];
}

template <typename T>
void out (T ar, int n){
for (int i=0; i<n; i++)
	cout <<ar[i]<<"\t";
cout <<"\n";
}
проблемы в sort

Последний раз редактировалось Stilet; 12.09.2014 в 08:13.
Vladislavv вне форума Ответить с цитированием
Старый 12.09.2014, 09:47   #2
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

В данном случае T - это double*.
Судя по всему желаемое должно выглядеть так:
Код:
if (ar[j]<ar[i]){
			*temp = ar[i];
			ar[i]=ar[j];
			ar[j]=*temp;
			}
Только в таком случае под temp надо выделить память.

Хотя в идеале нужно сделать по другому:
Код:
void sort (T* ar, int n){
и со всеми остальными функциями тоже самое.
Помог? Оставляем отзыв =)

Последний раз редактировалось Helloween; 12.09.2014 в 09:49.
Helloween вне форума Ответить с цитированием
Старый 12.09.2014, 17:53   #3
Vladislavv
Пользователь
 
Регистрация: 30.07.2014
Сообщений: 35
По умолчанию

Изменил тип в temp (double) выда%u

Последний раз редактировалось Stilet; 12.09.2014 в 18:47.
Vladislavv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение массивов VBA Akika Помощь студентам 5 03.06.2013 22:21
объединение массивов -=Andriushka=- Общие вопросы C/C++ 1 02.11.2011 22:11
объединение массивов любаша Паскаль, Turbo Pascal, PascalABC.NET 4 02.10.2010 11:23
Объединение массивов MilenaR Помощь студентам 10 30.03.2010 13:18
реализация бинарного дерева с помощью указателя Anastasia.K Помощь студентам 0 01.11.2009 16:20