Показать сообщение отдельно

  #8  
Старый 13.12.2008, 23:24
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

Репутация: 110
По умолчанию

2HencH_MaN
Башка не рабатает, так что вот тебе немножечко моего говнокода;

На что стоит обратить внимания:
1. Нет никакой обработки случаев когда malloc возвращает нулевые указатели вместо валидных. Это фигово, но мне влом.
2. В задании нет указания на то, что надо обменивать элементы - первый с минимальным, последний с максимальным. Так что я сделал затирание максимальным и минимальным значением последнего и первого элемента строки.
3. Костыли в виде инициализации iMax, iMin максимально и минимально возможными значениями для int сделаны по причине нулевой мотивации облагораживать код и вводить дополнительные if. Так, что если хочешь сделать не машиннозависимый код, то вперёд ^____^

Код:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int iRowsSize, iColsSize, iMin, iMax;
	int i, j;
	int **pCol;
	int *pRow;
	
	iRowsSize = iColsSize = 0;
        iMax = 0x80000000;
	iMin = 0x7FFFFFFF;
	
	printf("Input number of rows : ");
	scanf("%d", &iRowsSize);	
	printf("Input number of columns :");
	scanf("%d", &iColsSize);

	pCol = (int **)malloc(iColsSize * sizeof(int **));
	
	for(i = 0; i < iColsSize; i++)
	{
		pRow = (int *)malloc(iRowsSize * sizeof(int));
		pCol[i] = pRow;
		for(j = 0; j < iRowsSize; j++)
		{
			printf("Input [%d][%d] element : ", i, j);
			scanf("%d", &pCol[i][j]);
		}
	}

	for(i = 0; i < iColsSize; i++)
	{
		for(j = 0; j < iRowsSize; j++)
		{
			iMax = (pCol[i][j] > iMax) ? pCol[i][j] : iMax;	
			iMin = (pCol[i][j] < iMin) ? pCol[i][j] : iMin;
		}
		pCol[i][0] = iMin;
		pCol[i][iRowsSize - 1] = iMax;
		iMax = 0x80000000;
		iMin = 0x7FFFFFFF; 
	}

	for(i = 0; i < iColsSize; i++)
	{
		for(j = 0; j < iRowsSize; j++)
		{
			printf("[%d][%d] element : %d ", i, j, pCol[i][j]);
			
		}
                free(pCol[i]);
		printf("\n");
	}
        free(pCol);

	return 0;
}

Последний раз редактировалось izlesa; 14.12.2008 в 00:26..
 
Ответить с цитированием