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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2010, 20:50   #1
v1le
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 13
Вопрос Ошибка в программе. Матрицы.

Задача:
Отсортировать массив M(50) и строки матрицы A(6x7) в порядке убывания.

Вот мой код:
Код:
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>

void InArr(int *arr, int size);
void OutArr(int arr[], int size);
void InMtr(int matr[], int col, int row);
void OutMtr(int *matr, int col, int row);
void SortArr(int arr[], int size);
void SortMtr(int matr[], int col, int row);

int main(){
	const int size=50,
		row=6,
		col=7;
	int arr[size],
		matr[row][col];
	InArr(arr, size);
	printf("\n MASSIVE: \n");
	OutArr(arr, size);
	InMtr((*int)matr, col, row); //error C2062: тип "int" не требуется
	printf("\n MATRIX:  \n");
	OutMtr((*int)matr, col, row); //error C2062: тип "int" не требуется
	SortArr(arr, size);
	SortMtr((*int)matr, col, row); //error C2062: тип "int" не требуется
	printf("\n SORTED ARRAY: \n");
	OutArr(arr, size);
	printf("\n SORTED MATRIX: \n");
	OutMtr((*int)matr, col, row); //error C2062: тип "int" не требуется
	return 0;
}
void InArr(int *arr, int size){
	srand(unsigned(time(NULL)));
	for (int i=0; i<size; i++)
		arr[i]=rand()%100-50;
}
void OutArr(int arr[], int size){
	for (int i=0; i<size; i++)
		printf("%d\t",arr[i]);
}
void InMtr(int *matr, int col, int row){
	srand(unsigned(time(NULL)));
	for (int i=0; i<row; i++){
		for (int j=0; j<col; j++){
			matr[i*col+j]=rand()%100-50;
		}
	}
}
void OutMtr(int *matr, int col, int row){
	for (int i=0; i<row; i++){
		printf("\n");
		for (int j=0; j<col; j++){
			printf("%d\t", matr[i * col + j]  );

		}
	}
}
void SortArr(int arr[], int size){
	for (int i=0; i<size-1; i++){
		for (int j=0; j<size-1; j++){
			if (arr[j] > arr[j+1]){
				int buf = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = buf;
			}
		}
	}
}
void SortMtr(int *matr, int col, int row){
	int j=0;
	for (int i=0; i<row-1; i++){
		for (int k=0; k<row-1; k++){
			if (matr[i*col+j] > matr[i*col+j+1]){
				int buf = matr[i*col+j];
				matr[i*col+j] = matr[i*col+j+1];
				matr[i*col+j+1] = buf;
			}
			j++;
		}
	}
}
Я не могу понять почему не требуется, как я понимаю, мы пишем тип, чтобы программа работала с массивом, как с матрицей. Если мы же убираем эти типы, то появляются другие ошибки в этих же строках.
Объясните, где я не прав пожалуйста
v1le вне форума Ответить с цитированием
Старый 18.12.2010, 00:56   #2
v1le
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 13
По умолчанию

up. ну помогите!(
v1le вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в программе. ZeroCount Помощь студентам 2 18.12.2010 20:33
Ошибка в программе. v1le Общие вопросы C/C++ 4 04.12.2010 21:17
Ошибка в программе LuBuMaster Visual C++ 5 07.10.2010 17:19
Ошибка в программе w6120w Общие вопросы C/C++ 3 04.10.2010 19:37
Ошибка в программе RoadTrain Общие вопросы Delphi 5 24.10.2007 22:16