Форум программистов, компьютерный форум CyberForum.ru

Действия с матрицией - C++

Восстановить пароль Регистрация
 
Sentteriys
0 / 0 / 0
Регистрация: 21.02.2011
Сообщений: 13
10.05.2011, 18:18     Действия с матрицией #1
Куплю решение задачи. Предложения в личку.
Разработать алгоритм и по нему составить два варианта программы для обработки двумерного массива. Первый вариант программы – работа со статическим массивом, второй – с динамическим.
Задание:Упорядочить по возрастанию элементы каждой строки матрицы размером n x m.

Примеры решения (сделанные коды программ должны быть написаны на подобии, так сказать на таком же «уровне»):

5. Дана целая квадратная матрица n-го порядка. Определить, является ли она магическим квадратом.

Статический:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdio.h"
#include "math.h"
#include "conio.h"
#include "iostream"
#define n 3
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int i,j;
    float m;
    int a[n][n];
    printf("Введите матрицу\n");
    for(i=0;i<=n-1;i++)
    {
        for(j=0;j<=n-1;j++)
        {
            printf ("a[%i][%i]=",i,j);
            scanf ("%i",&a[i][j]);
        }
    }
    m=(n*((n*n)+1)/2);
    if ((m==a[0][0]+a[0][1]+a[0][2])&&(m==a[1][0]+a[1][1]+a[1][2])&&(m==a[2][0]+a[2][1]+a[2][2])&&
        (m==a[0][0]+a[1][1]+a[2][2])&&(m==a[0][2]+a[1][1]+a[2][0])&&(m==a[0][0]+a[1][0]+a[2][0])&&
        (m==a[0][1]+a[1][1]+a[2][1])&&(m==a[0][2]+a[1][2]+a[2][2]))
    printf("Введеная матрица является магическим квадратом");
    else
    printf("Введеная матрица не является магическим квадратом");
    getch();
    return 1;
}
Динамический:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include "stdio.h"
#include "iostream"
#include "conio.h"
using namespace std;
#define N 3
int main()
{
  int a[N][N], n, yd=1,i,j,sum,sumt;
   setlocale(LC_ALL, "Russian");
  printf("Введите размерность квадратной матрицы\n");
  printf("N = ");
  scanf("%i",&n);
  printf("Введите матрицу\n");
for(i=0;i<=n-1;i++)
    {
        for(j=0;j<=n-1;j++)
        {
            printf ("a[%i][%i]=",i,j);
            scanf ("%i",&a[i][j]);
        }
    }
     /*сумма главной диагонали*/
  sum=0;
  for(i=0;i<n;i++)
     sum+=a[i][i];
     /*сумма каждой строки*/
   i=0;
   do
   {
        sumt=0;
        for(j=0;j<n;j++)
          sumt+=a[i][j];
        if(sumt!=sum) yd=0;
        i++;
    }
    while (yd&&i<n);
    if(yd)
    {
        j=0;
        do
        {
            sumt=0;
            for(i=0;i<n;i++)
              sumt+=a[i][j];
            if (sumt!=sum) yd=0;
            j++;
        }
        while (yd && i<n);
    }
    if (yd)
    {
        /*сумма второй главной диагонали*/
        sumt=0;
        i=n-1;
        for(j=0;j<n;j++)
          sumt+=a[i--][j];
        if(sumt!=sum) yd=0;
    }
    printf("Введённая матрица ");
    if(!yd)
      printf("не является магическим квадратом");
    else
      printf("является магическим квадратом");
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2011, 18:18     Действия с матрицией
Посмотрите здесь:

действия со строками C++
C++ действия с числами
Действия со строками C++
C++ Действия с флешками
C++ Действия с масивами
Действия с массивом C++
Отмена действия C++
Действия в коде C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
10.05.2011, 19:00     Действия с матрицией #2
Задание:Упорядочить по возрастанию элементы каждой строки матрицы размером n x m.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//sortirovka elementov strok po vozrastaniu 
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main () 
{ int a[3][3]={ {8,7,6},
        {5,4,3},
        {2,1,0}
        };
  int i,j,r,s,n=3,amin,m,k;
  clrscr();
   printf("Elements of unsorted matrix:\n");
  for (i=0; i<3; i++)
   {for (j=0; j<3; j++)
     printf(" %2i",a[i][j]);
    printf("\n");
   }
  for (i=0; i<n; i++)     //vibor stroki
  { for (k=0; k<n-1; k++) //poisk min i perestanovka
    { amin=a[i][k];m=k;
      for (j=k+1; j<n; j++)
       if (a[i][j] < amin)
       {amin=a[i][j]; m = j;}
      a[i][m]=a[i][k]; a[i][k]=amin;
   }
 }
printf("\nElements of sorted matrix:\n");
for (i=0; i<3; i++)
   { for (j=0; j<3; j++)
     printf(" %2i",a[i][j]);
     printf("\n");
   }
getch();
}
Yandex
Объявления
10.05.2011, 19:00     Действия с матрицией
Ответ Создать тему
Опции темы

Текущее время: 05:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru