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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2010, 18:00   #1
imperceptible4462
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 26
По умолчанию перестановка строк двухмерного массива

надо составить программу циклической перестановки строк двумерного массива m*k, при котором смещение происходит вниз на n строк
вот код проги:
Код:
#include <iostream.h>
//Функция возвращает случайное число в диапазоне [0..n]
unsigned long random_(unsigned long n)
{
	return (unsigned long) rand() % (n+1);
}

void swap2(int &a, int &b)
{
	int temp;
	temp=a;
	a=b;
	b=temp;
}

void main(void)
{
	const m=10, k=10, n=3;
	int massiv[m][k], temp[k];
	int i, j, f;

	srand(time(NULL)); //Инициализируем генератор случайных чисел

	//Заполняем массив случайными числами
	for (i = 0; i < m; i++) {
		for (j = 0; j < k; j++) {
			massiv[i][j]=random_(100);
		}
	}

	//Выводим массив char(9) - символ горизонтальной табуляции
	for (i = 0; i < m; i++) {
		for (j = 0; j < k; j++) {
			cout << massiv[i][j] << char(9);
		}
		cout << endl;
	}

	//Смещаем строки перестановкой элементов в каждом столбце
	//снизу вверх n раз
	for (j = 0; j < k; j++) {
		for (f = 0; f < n; f++){
			for (i = m-2; i >= 0; i--) {
				swap2(massiv[i][j], massiv[i+1][j]);
			}
		}

	}

	cout << "\n" 
//Выводим полученный массив char(9) - символ горизонтальной табуляции
	for (i = 0; i < m; i++) {
		for (j = 0; j < k; j++) {
			cout << massiv[i][j] << char(9);
		}
		cout << endl;
	}

do ;
while (true);

}

но компилятор выдаёт ряд ошибок, я их не могу найти. вот ошибки:
Compiling...
d:\work\math-fac\1_kurs\group_v\chernt~1.a\ind\i nd2se~1\6\n6v25.cpp
d:\work\math-fac\1_kurs\group_v\chernt~1.a\ind\i nd2se~1\6\n6v25.cpp(5) : error C2065: 'rand' : undeclared identifier
d:\work\math-fac\1_kurs\group_v\chernt~1.a\ind\i nd2se~1\6\n6v25.cpp(5) : error C2064: term does not evaluate to a function
d:\work\math-fac\1_kurs\group_v\chernt~1.a\ind\i nd2se~1\6\n6v25.cpp(20) : error C2065: 'srand' : undeclared identifier
d:\work\math-fac\1_kurs\group_v\chernt~1.a\ind\i nd2se~1\6\n6v25.cpp(20) : error C2065: 'time' : undeclared identifier
d:\work\math-fac\1_kurs\group_v\chernt~1.a\ind\i nd2se~1\6\n6v25.cpp(20) : error C2064: term does not evaluate to a function
d:\work\math-fac\1_kurs\group_v\chernt~1.a\ind\i nd2se~1\6\n6v25.cpp(20) : error C2064: term does not evaluate to a function
d:\work\math-fac\1_kurs\group_v\chernt~1.a\ind\i nd2se~1\6\n6v25.cpp(24) : warning C4135: conversion between different integral types
CL returned error code 2.
N6V25.EXE - 6 error(s), 1 warning(s)

Последний раз редактировалось Stilet; 03.09.2010 в 09:32.
imperceptible4462 вне форума Ответить с цитированием
Старый 02.09.2010, 18:25   #2
chesser
Пользователь
 
Регистрация: 02.08.2010
Сообщений: 17
По умолчанию

У вас не все библиотеки подключены.
chesser вне форума Ответить с цитированием
Старый 03.09.2010, 09:36   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Согласно Visual studio
1)
Цитата:
#include <iostream.h>
замени на
Код:
#include <iostream>
2)
Цитата:
const m=10, k=10, n=3;
Явно указать тип стоит:
Код:
const int m=10, k=10, n=3;
3)
Не хватает
Код:
#include <time.h>
4) дописать:
Код:
using namespace std;
Либо же пиши
Код:
std::cout...
5)
Цитата:
cout << "\n"
А точка-запятая где?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2010, 09:51   #4
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

Напишу сию программу взамен на решение мне асма ))
rozz вне форума Ответить с цитированием
Старый 10.09.2010, 13:04   #5
imperceptible4462
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 26
По умолчанию

Люди, помогите правильно решить сию задачу, вт мой код...

/*Составьте программу циклической перестановки строк двумерного
массива m x k, при которой смещение происходит вниз на n строк.*/
Код:
#include <stdlib.h>
#include <iostream.h>
#include <time.h>

//Функция возвращает случайное число в диапазоне [0..n]
unsigned long random_(unsigned long n)
{
	return (unsigned long) rand() % (n+1);
}

void swap2(int &a, int &b)
{
	int temp;
	temp=a;
	a=b;
	b=temp;
}

void main(void)
{
	const m=10, k=10, n=3;
	int massiv[m][k], temp[k];
	int i, j, f;

	srand(time(NULL)); //Инициализируем генератор случайных чисел

	//Заполняем массив случайными числами
	for (i = 0; i < m; i++) {
		for (j = 0; j < k; j++) {
			massiv[i][j]=random_(100);
		}
	}

	//Выводим массив char(9) - символ горизонтальной табуляции
	for (i = 0; i < m; i++) {
		for (j = 0; j < k; j++) {
			cout << massiv[i][j] << char(9);
		}
		cout << endl;
	}

	//Смещаем строки перестановкой элементов в каждом столбце
	//снизу вверх n раз
	for (j = 0; j < k; j++) {
		for (f = 0; f < n; f++){
			for (i = m-2; i >= 0; i--) {
				swap2(massiv[i][j], massiv[i+1][j]);
			}
		}

	}

	cout << "------------------------------------------------" << endl;;
	//Выводим полученный массив char(9) - символ горизонтальной табуляции
	for (i = 0; i < m; i++) {
		for (j = 0; j < k; j++) {
			cout << massiv[i][j] << char(9);
		}
		cout << endl;
	}
}
не выводит он массив

Последний раз редактировалось Stilet; 10.09.2010 в 13:26.
imperceptible4462 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Увиличить размеры двухмерного массива SWAT Паскаль, Turbo Pascal, PascalABC.NET 0 07.06.2009 18:40
Увиличить размеры двухмерного массива SWAT Помощь студентам 0 07.06.2009 11:40
Сортировка строк двухмерного массива EfiopianDIMON Общие вопросы C/C++ 9 26.05.2009 22:52
Сортировка вставками двухмерного массива ponchikpk Помощь студентам 6 09.03.2009 13:34
Передача двухмерного массива в функцию IgorKr Общие вопросы C/C++ 2 28.03.2008 01:11