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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2009, 18:26   #1
Maxc
Новичок
Джуниор
 
Регистрация: 27.06.2009
Сообщений: 2
По умолчанию размещение значений в массиве в обратном порядке

Код:
// k12.cpp : Defines the entry point for the console application.
//


#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cmath>
using namespace std ;

void init_mas(int*,   int, int=20, int=-10);
void show_mas(const int*, int);

int _tmain(int argc, _TCHAR* argv[])
{

	const int n=6;
	char const* pS [ n ] = 
	{	"1. Zapolnitj massiv", "2. Posmotretj na massiv", "3. razme6jenie zna4enij massiva v obratnom porjadke", "4. -", "5. - ","0. Exit" } ;

	int v;
	int size_mas=1,*mas,*mast1,*mast2,*mast3,diapazon,minnum,dimin, max, *temp, tmp,m,k,ma,p,ne,k1=0,a,b=0,t,j=0;
	bool zapolnen=false;
	mas=new int [size_mas];
	do
	{
		cout << "Menu\n" ;
		for ( int i = 0; i < n; i++ ) cout << pS [ i ] << endl ;
		cout << "\nYour choice - > " ;
		cin >> v ;
		cin.get();
		
		switch ( v )
		{
		case 1 : 
			cout << '\n' << pS [ 0 ] << "\n\n" ; 
			//
			delete [] mas;
						cout<<"your diapazon and min. number - 0, default  - any number:\n";
		cin>>dimin;
		cin.get();
																

	
			cout<<"razmer massiva?"<<endl;
			cin>>size_mas;
			cin.get();
			mas=new int[size_mas];
		if (dimin==0)
		{
			cout<<"diapazon=?";
			cin>>diapazon;
			cin.get();
			cout<<"min. number=?";
			cin>>minnum;
			cin.get();
			init_mas(mas,size_mas,diapazon,minnum);				
		}

		else
			init_mas(mas,size_mas);								
			
			show_mas(mas,size_mas);								
			cin.get();
			zapolnen=true;
			

			break ;
		case 2 : 
			cout << '\n' << pS [ 1 ] << "\n\n" ;
			//
			if (zapolnen==false)
				cout<<"massiv ne zapolnen"<<endl;
			else
				show_mas(mas,size_mas);	
			break ;
		case 3 :
			cout << '\n' << pS [ 2 ] << "\n\n" ;
			//
			if (zapolnen==false)
				cout<<"massiv ne zapolnen"<<endl;
			else
			{
				

			}
			break ;
		case 4 : 
			cout << '\n' << pS [ 3 ] << "\n\n" ; 
			//
			if (zapolnen==false)
				cout<<"massiv ne zapolnen"<<endl;
			else
			{

			}

			break ;
		case 5:
			cout << '\n' << pS [ 4 ] << "\n\n" ; 
			//

			break;
		case 0 :
			delete [] mas;
			break ;
		default  : cout << "\nIllegal choice\n\n";
			}
	} while ( v != 0 ) ;


	return 0;
}

void init_mas(int *pm, int n, int diapazon, int minnum)
{
		srand(unsigned int(time(NULL)%32767));
		for(int i=0;i<n;i++)
		*(pm+i)=int(rand()/32767.*diapazon)+minnum;

}

void show_mas(const int* p, int n)
{
	cout<<endl;
	for (int nc=0;nc<n;nc++)
			cout<<nc<<"\t\t"<<*(p+nc)<<endl;
	cout<<endl;
}
нужно чтобы числа в массиве записывались в обратном порядке
Maxc вне форума Ответить с цитированием
Старый 27.06.2009, 18:48   #2
ISharp
Developer
Пользователь
 
Регистрация: 15.06.2009
Сообщений: 44
По умолчанию

И в чем же проблема?
ISharp вне форума Ответить с цитированием
Старый 27.06.2009, 18:52   #3
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

Цитата:
И в чем же проблема?
Чёто тоже не врубился пошёл курить бамбук))))
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 27.06.2009, 19:48   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Вот вам код. Функция делает реверс массива. Вставите в свою прогамму и поменяете размерность.
Код:
#include <iostream>
#include <cstdlib>
#include <ctime>

int *reverse(int *mas)			//функция обращения массива
{
	int *temp = new int [10];
	int j = 9;
	for(int i = 0; i < 10; i++)
		temp[i] = mas[j--];
	return temp;
}

int main()
{
	int *mas = new int[10];
	int *reversed;
	int range = 128;	//диапазон
	srand(time(0));
	for(int i = 0; i < 10; i++)
		mas[i] = rand()%range;
	for(int i = 0; i < 10; i++)
		std::cout << mas[i] << ' ';
	std::cout << "\n";
	reversed = reverse(mas);
	for(int i = 0; i < 10; i++)
		std::cout << reversed[i] << ' ';
	std::cout << "\n";
	return 0;
}
MaTBeu вне форума Ответить с цитированием
Старый 28.06.2009, 02:53   #5
Maxc
Новичок
Джуниор
 
Регистрация: 27.06.2009
Сообщений: 2
По умолчанию

спасибо большое)
Maxc вне форума Ответить с цитированием
Старый 28.06.2009, 10:06   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Справедливо в конце было бы сделать так (перед return 0)
Код:
delete []mas;
delete []reversed;
Все таки с динамической памятью работаем.
profi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заданную строку записать в обратном порядке Defa4ka Помощь студентам 1 13.05.2009 11:50
печать страниц в обратном порядке Олекса Microsoft Office Word 4 30.03.2009 09:45
В обратном порядке mari.ha Общие вопросы C/C++ 7 25.12.2008 21:36
Вывод кольцевого списка в обратном порядке parinoff Паскаль, Turbo Pascal, PascalABC.NET 5 22.11.2008 12:03