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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2010, 10:45   #1
Максикок
Пользователь
 
Регистрация: 07.10.2010
Сообщений: 71
По умолчанию опять матрицы

Найти минимальный элемент из элементов квадратной матрицы N x N, располагающихся ниже главной диагонали.
Код:
#include<stdio.h>
#include<conio.h>
void main(void)
{int mas[4][4]={{-76,-6,-2,-52},{-134,-67,2,2},{3,-74,-85,3},{-1,-4,-89,-100}};
int i,j,min;
clrscr();
for(i=0;i<4;i++)
for(j=0;j<4;j++)
puts("\n vi vveli matrix:"); 
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(j==3) printf(" %d\n",mas[i][j]);//if(j==N-1)
else printf(" %d ",mas[i][j]);
}
min=mas[0][0];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(j<i) if(mas[i][j]<min)
{
min=mas[i][j];
}
}

printf("\n min element %d", min);
getch();
}
обьясните пожалуйста для чего выполняется вот это if(j==3) printf(" %d\n",mas[i][j]);//if(j==N-1).
И почему первый элемент матрицы он считает как элемент который находится нижней главной диагонали??

Последний раз редактировалось Stilet; 23.11.2010 в 13:40.
Максикок вне форума Ответить с цитированием
Старый 23.11.2010, 11:54   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

держи нямку

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

#define newMatr(m, N) (m = (int *)calloc(N * N, sizeof(int)))

int Min(int *m, int N) {
  int i, j, min;
  min = m[0];
  for (i = 0; i < N; i++)
    for (j = 0; j < N; j++)
      if (min > m[i * N + j]) 
        min = m[i * N + j];
  return min;
}

int main() {
  int *matrix = NULL;
  int N = 0;
  int i, j;
  printf("Enter matrix dimension: ");
  scanf("%u", &N);
  if (N > 1) {
    newMatr(matrix, N);
    if (matrix) {
      for (i = 0; i < N; i++)
        for (j = 0; j < N; j++)
          scanf("%i", &matrix[i * N + j]);
    printf("\n\nMinimal matrix element is %u\n", Min(matrix, N));
    free(matrix);
    }
    else {
      printf("Unknown error memory!\n")
    }
  }
  else {
    printf("Error dimension! dimension must be > 1\n")
  }
  //----------
  printf("\n\n\tPress any key for exit...");
  flushall();
  getchar();
  return 0;
}
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 23.11.2010, 11:54   #3
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Советую почитать тут
http://programmersforum.ru/showthread.php?t=70310
psycho-coder вне форума Ответить с цитированием
Старый 23.11.2010, 11:56   #4
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

а под главную диагональ сделай сам
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 23.11.2010, 20:12   #5
Максикок
Пользователь
 
Регистрация: 07.10.2010
Сообщений: 71
По умолчанию

спасибо большое!
Максикок вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TurboPascal: графы, матрицы смежности и матрицы инцидентности. ulala Помощь студентам 1 03.03.2011 19:28
Матрицы:функция изменения порядка столбцов матрицы Fajyz Помощь студентам 0 13.01.2010 09:40
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19
И опять мэйлы.. Опять... Pusher PHP 6 28.06.2008 03:08