
13.12.2008, 23:24
|
|
Участник форума
Регистрация: 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..
|
|
|