Kamrad.ru
 
 
дневники | кабинет | регистрация | календарь | участники | faq | правила | поиск | фотоальбом | каська | выйти
Kamrad.ru Kamrad.ru » Авторские форумы » Убей в себе ламера » Помогите плз с простенькой програмкой на C
новая тема  ответить следующая тема | предыдущая тема
Автор
 
WiCKed - offline WiCKed
11-09-2005 15:05 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Помогите плз с простенькой програмкой на C

Вот собственно такое задание, сдать нужно завтра, я не успею освоить язык за 1 день, помогите плиз, отцы программизма

Дана матрица f(N,N) порядка N (N<=15), то есть N случайное от 1 до 15. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. Отпечатать полученную матрицу в общепринятом виде.

Заранее большое спасибо!

Alexvn - offline Alexvn
11-09-2005 18:16 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Администратор
Буржуин проклятый



code:
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include <conio.h>

int CreateMatrix (int **, int);
void DestroyMatrix (int **, int);
void ProcessMatrix (int **, int);
void PrintMatrix (int **, int);

int main ()
{
int **matrix;
int size = 0;

printf ("Введите размер матрицы:");
scanf ("%d", &size);
if (size <= 0 || size > 15)
{
printf ("\nНеверно указан размер матрицы");
return 0;
}


if (!CreateMatrix (matrix, size))
{
printf ("\nОшибка при создании матрицы");
goto end;
}

ProcessMatrix (matrix, size);

PrintMatrix (matrix, size);

end:
DestroyMatrix (matrix, size);

return 0;
}

int CreateMatrix (int **matrix, int size)
{
int i = 0;
int j = 0;

if ((*matrix = (int*) malloc (sizeof (int*) * size)) != NULL)
{
for (i = 0; i < size; i++)
{
if ((matrix [i] = (int*) malloc (sizeof (int) * size)) == NULL)
{
return 0;
}
}

for (i = 0; i < size; i++)
{
printf ("\nВведите строку %d: ", i);
for (j = 0; j < size; j++)
{
scanf ("%d", &matrix [i] [j]);
}
}

return 1;
}

return 0;
}

void DestroyMatrix (int **matrix, int size)
{
if (*matrix)
{
for (int i = 0; i < size; i++)
{
if (matrix[i] != NULL)
{
free ((void*) matrix[i]);
}
}
free ((void*) *matrix) ;
}
}


void PrintMatrix (int **matrix, int size)
{
printf ("\n\nРезультат:\n");
for (int i = 0; i < size; i++)
{
for (j = 0; j < size; j++)
{
printf ("%d ", matrix [i] [j]);
}
putchar ('\n');
}
}

void ProcessMatrix (int **matrix, int size)
{
int max = 0;
int maxpos = 0;

for (int i = 0; i < size; i++)
{
max = matrix [i] [0];
maxpos = 0;
for (j = 1; j < size; j++)
{
if (matrix [i] [j] > matrix [i] [j - 1])
{
max = matrix [i] [j];
maxpos = j;
}
}

matrix [i] [maxpos] = matrix [i] [i];
matrix [i] [i] = max;
}
}

Alexvn - offline Alexvn
11-09-2005 18:18 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Администратор
Буржуин проклятый



Работу не гарантирую, компиляторов у меня дома нет.

WiCKed - offline WiCKed
11-09-2005 20:04 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Спасибо огромное, щас затестим

Текущее время: 05:44
новая тема  ответить следующая тема | предыдущая тема
 
Перейти:

версия для печати   отправить эту страницу по e-mail   подписаться на эту тему

 
Powered by: vBulletin Version 2.0.1
Copyright ©2000, 2001, Jelsoft Enterprises Limited.
Любое использование материалов сайта
возможно только с разрешения его администрации.


 

Рейтинг@Mail.ru
Рейтинг@Mail.ru