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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2009, 22:06   #1
Lexeres
Новичок
Джуниор
 
Регистрация: 15.11.2009
Сообщений: 54
По умолчанию Массивы, квадратная матрица(срочно, через день зачёт!)

Срочно народ, помогите исправить ошибки т.к. зачёт через день, а как переделать я не знаю..

вот первое задание
1) дана квадратная матрица действительных чисел размерности n(n<=18). Найти наибольшее из значений элементов, расположенных в заштрихованной части
____________
|-\*********/-|
|--\*******/--|
|---\*****/----|
|----\***/-----|
|-----\*/------|
|--------------|
так вот есть какая то закономерность(я её не очень помню), что над диагональю слева на право кол-во строк больше какого-то кол-ва столбцов (или как то так) и наоборот для другой диагонали.
помогите дописать код вконце(выделенный)

Код:
main()
{ int n,i,j,max,counter;
int a[18][18], c[18];
clrscr();
printf("enter demensh. of matrix: \n");
scanf("%d",&n);
for(i=0;i<n;i++)
{ for(j=0; j<n; j++)
{ printf("enter row %i colomn %i member of matrix: ",i+1,j+1);
scanf("%i",&a[i][j]);
}
}
printf("\n\t Debug info:\n");
printf("\n\n Matrix: \n\n");
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
{printf("\t%i",a[i][j]);
}
printf("\n\n");
}
i=0;
j=0;
printf("\n\n Matrix after collapsing: \n\n");
counter=0;
for(i=0;i<n;i++)
{for(j=j+i;j<n;j++)
{printf("\t%i",a[i][j]);
if ( ()&&() ) - вот здесь нужно условие записать тех диагоналей(ещё что-то дописать нужно)
}
j=0
printf("\n\n");
printf("\n\n max number in zone is %i",max);
printf("\n Nazhmite lubuu klavishu");
getch();
}
Свойства диагонали - у главной диагонали индексы строки и столбца равны. выше то, что с меньшим индексом. Ниже то, что с большим

Последний раз редактировалось Sazary; 29.12.2009 в 18:50.
Lexeres вне форума Ответить с цитированием
Старый 28.12.2009, 22:19   #2
Lexeres
Новичок
Джуниор
 
Регистрация: 15.11.2009
Сообщений: 54
По умолчанию

вот, вспомнил - у главной диагонали индексы строки и столбца равны. выше то, что с меньшим индексом. Ниже то, что с большим
Lexeres вне форума Ответить с цитированием
Старый 29.12.2009, 00:41   #3
tarasslinko
 
Регистрация: 25.12.2009
Сообщений: 6
По умолчанию

ось із виділеними поцетурами вводу і виводу матриці:

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

void randomInputMatrix(int **mass, int row,int column)
{
     for(int i=0;i<row;i++)
     {
             for(int j=0;j<column;j++)
             {
                     mass[i][j]=rand()%700;
             }
     }
}
     
void printMatrix(int **mass, int row,int column)
{
     printf("\n");
     for(int i=0;i<row;i++)
     {
             for(int j=0;j<column;j++)
             {
                     printf("%5.d; ",mass[i][j]);
             }
             printf("\n");
     }
}

main()
      {
      int row=10, column=10;
      int **mass = new int*[row];
      for(int i=0;i<row;i++)
              mass[i]=new int[column];
      randomInputMatrix(mass,row,column);
      printMatrix(mass,row,column);
      int a=0,min=mass[0][0];
      for(int i=0;i<row/2;i++)
      {
       for(int j=a;j<column-a;j++)
       {
        if(min>mass[i][j])min=mass[i][j];
       }
       a++;
      }
      printf("%d",min);
      getch();
      }
або все в засунуто в main()

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

main()
      {
      int row=10, column=10;
      int **mass = new int*[row];
      for(int i=0;i<row;i++)
              mass[i]=new int[column];
      for(int i=0;i<row;i++)
      {
             for(int j=0;j<column;j++)
             {
                     mass[i][j]=rand()%700;
             }
      }
      for(int i=0;i<row;i++)
      {
             for(int j=0;j<column;j++)
             {
                     printf("%5.d; ",mass[i][j]);
             }
             printf("\n");
      }
      int a=0,min=mass[0][0];
      for(int i=0;i<row/2;i++)
      {
       for(int j=a;j<column-a;j++)
       {
        if(min>mass[i][j])min=mass[i][j];
       }
       a++;
      }
      printf("%d",min);
      getch();
      }
різниці нема.... проги однакові
Вложения
Тип файла: txt 12.txt (1.8 Кб, 144 просмотров)

Последний раз редактировалось Sazary; 29.12.2009 в 18:50. Причина: добавление вложения
tarasslinko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Квадратная матрица anna_ Помощь студентам 8 15.12.2009 21:16
Паскаль (Квадратная матрица) Bykvaeshka Помощь студентам 2 17.04.2009 20:14
Действительная квадратная матрица Брутальный М. Паскаль, Turbo Pascal, PascalABC.NET 2 30.12.2008 12:42
Квадратная матрица в Delphi Tomoyo Помощь студентам 10 12.11.2008 18:35