3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
1

Целочисленная квадратная матрица

16.01.2010, 23:51. Показов 1174. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана целочисленная квадратная матрица, упорядочить (переставить) столбцы матрицы по невозрастанию значений наибольших элементов столбца.

Добавлено через 1 час 22 минуты
Помогите ПЛИЗ!!!

Добавлено через 6 часов 28 минут
Помогите пожалуйста курсовую надо славать!!! Плиз!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2010, 23:51
Ответы с готовыми решениями:

Целочисленная квадратная матрица
Даны: натуральное число m, челые числа а1, ... , аm и челочисленная квадратная матрица порядка m....

квадратная целочисленная матрица
Добрый день, товарищи! Очень нуждаюсь в вашей помощи... Задание таково: Квадратная целочисленная...

целочисленная квадратная матрица
задача-дана целочисленная квадратная матрица.определить: 1)сумму чётных элементов каждого столбца;...

Целочисленная квадратная матрица
Дана целочисленная квадратная матрица размерностью NxN. Определить: 1) первую строку, в которой...

7
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
17.01.2010, 04:53 2
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define m 6 //Êîëè÷åñòâî ñòðîê
#define n 6 //Êîëè÷åñòâî ñòîëáöîâ
 
int main() {
        int M[m][n];
        int tmp[n];
        int t,i,j,k, max;
 
        rand();            //Ñîçäàåì ïðîèçâîëüíûé ìàññèâ ðàçìåðíîñòè m*n
        for(i=0;i<m;i++) {
                for (j=0;j<n;j++) {
                        M[i][j]=rand()/100;
                }
        }
 
        printf("Initial matrix:\n\n");  //Âûâîäèì èñõîäíûé ìàññèâ íà ýêðàí
        for (i=0;i<m;i++) {
                for (j=0;j<n;j++)
                        printf("%d\t", M[i][j]);
                printf("\n");
        }
 
                                /*Ñîçäàåì äîïîëíèòåëüíûé ìàññèâ tmp,
                                â êîòîðûé çàíîñèì ìàêñèìàëüíûå çíà÷åíèÿ
                                êàæäîãî ñòîëáöà*/
        for(j=0;j<n;j++) {
                for(i=1, max=M[0][j];i<m;i++) {
                        if (max<M[i][j]) {
                                max=M[i][j];
                        }
                }
                tmp[j]=max;
        }
 
 
                                /* êà÷åñòâå íàãëÿäíîñòè, âûâîäèì
                                èñõîäíûé ìàññèâ ìàêñèìàëüíûõ çíà÷åíèé*/
        printf("Max numbers:\n");
        for (j=0;j<n;j++) {
                printf("%d\t", tmp[j]);
        }
 
                                /*Ñðàâíèâàåì ìàêñèìàëüíûå çíà÷åíèÿ ñòîëáöîâ
                                è ñîðòèðóåì èõ â ïîðÿäêå íåâîçðàñòàíèÿ ñîîò-íî
                                ïåðåìåùàÿ ñòîëáöû*/
        for (int i=0;i<n-1;i++) {
                for (int j=i+1;j<n;j++) {
                        if (tmp[i]<tmp[j]) {
                                t=tmp[i];       //Ñîðòèðîâêà ìàêñèìàëüíûõ çíà÷åíèé
                                tmp[i]=tmp[j];
                                tmp[j]=t;
                                for (k=0;k<m;k++) {     //Ñîîò-íàÿ ñîðòèðîâêà
                                        t=M[k][i];      //ñòîëáöîâ
                                        M[k][i]=M[k][j];
                                        M[k][j]=t;
                                }
                        }
                }
        }
 
 
        printf("\n\nResult matrix:\n\n");//Âûâîäèì ïîëó÷èâøèéñÿ ìàññèâ íà ýêðàí
        for (i=0;i<m;i++) {
                for (j=0;j<n;j++)
                        printf("%d\t", M[i][j]);
                printf("\n");
        }
        printf("Max numbers:\n");       //À òàê æå ìàññèâ ìàêñèìàëüíûõ çíà÷åíèé,
        for (j=0;j<n;j++) {             //ïîëó÷åííûé ïîñëå ñîðòèðîâêè
                printf("%d\t", tmp[j]);
        }
 
 
        getch();                       
 
        }
1
CyBOSSeR
17.01.2010, 05:43
  #3

Не по теме:

XPP, вопрос не по теме: в каком таком ВУЗ'е вот ЭТО называют курсовой работой?

0
vet
17.01.2010, 05:45
  #4

Не по теме:

CyBOSSeR, меня если честно тоже заинтересовал этот вопрос,когда прогу делал =))
Обычно эт просто текущие лабы и не из особо сложных

1
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
17.01.2010, 13:01  [ТС] 5
В первую очередь задание делаем, потом описание приминение, описание проги
что дали то и делаем)

Добавлено через 9 минут
дана целочисленная квадратная матрица. Определить:
1) количество отрицательных элементов массива
2) найти максимальный из элементов, расположенных выше главной диагонали
3) упорядочить (переставить) столбцы матрицы по невозростанию значений наибольших элементов столбцов

В задании содержатся 3 задачи, необходимо создать меню для выбора решения одной из задач. Каждая задача - отдельная функция.

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define nrow 5
#define ncol 5
main()
{ int a[nrow][ncol],b,p,z,max,max1,max2,M,tmp[n],t,m,temp,col,i,j,i1;
int zam,t,zadanie;
printf("\nVvedite kol-vo stolbcov i strok \n");
scanf("%d", &col);
printf("\nVvedite sami elementi:\n" )   ;
for(i=0;i<col;i++)
for(j=0; j<col; j++)
scanf("%d", &a[i][j]);
{
  printf("\nVvedite nomer zadachi(0 dlya exit): ");
  scanf("%d", &zadanie);
  switch(zadanie)
  {
    case 1:
    {
    for(i=0;i<col;i++)
      for(j=0;j<col;j++)
      {
        b=(a[i][j])>0;
          if (b==0)
         n=n+1;
          }
         printf("\nkol-vo elementov menshe 0: %d\n",n);
        n=col;
       break;
        }
 case 2:
  for(i=0;i<col;i++)
  {
          for(j=0;j<col;j++)
         printf("%d\t",a[i][j]);
    }
  max=a[0][1];
  for(i=0;i<col-1;i++)
     for(j=1+i;j<col;j++)
                 if(max<a[i][j])
                         max=a[i][j];
printf("max element vyshe glavnoi diagonali:\n" );
printf("%d\n", max);
break;
 
 
 case 3:
     printf("Initial matrix:\n\n");
        for (i=0;i<m;i++) {
                for (j=0;j<n;j++)
                        printf("%d\t", a[i][j]);
                printf("\n");
        }
 
 
        for(j=0;j<n;j++) {
                for(i=1, max=a[0][j];i<m;i++) {
                        if (max<a[i][j]) {
                                max=a[i][j];
                        }
                }
                tmp[j]=max;
        }
 
 
 
        for (i=0;i<n-1;i++)
         {
                for (j=i+1;j<n;j++) {
                        if (tmp[i]<tmp[j]) {
                                t=tmp[i];
                                tmp[i]=tmp[j];
                                tmp[j]=t;
                                for (k=0;k<m;k++) {
                                        t=a[k][i];
                                        a[k][i]=a[k][j];
                                        a[k][j]=t;
                                }
                        }                   }}
                }
        }
 
 
        printf("\n\nResult matrix:\n\n");
        for (i=0;i<m;i++) {
                for (j=0;j<n;j++)
                        printf("%d\t", a[i][j]);
                printf("\n");
        }
 
 
while(zadanie!=0) ;
getch();
return 0;
}
исправте ошибки пожалуйста

Добавлено через 2 минуты
задание полностью:
дана целочисленная квадратная матрица. Определить:
1) количество отрицательных элементов массива
2) найти максимальный из элементов, расположенных выше главной диагонали
3) упорядочить (переставить) столбцы матрицы по невозростанию значений наибольших элементов столбцов

В задании содержатся 3 задачи, необходимо создать меню для выбора решения одной из задач. Каждая задача - отдельная функция.
0
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
17.01.2010, 13:17 6
Цитата Сообщение от XPP Посмотреть сообщение
исправте ошибки пожалуйста
В самом начале переопредилил nrow за m
ncol за n, а в большенстве случаев дальше по тексту не исправил

Цитата Сообщение от XPP Посмотреть сообщение
int a[nrow][ncol],b,p,z,max,max1,max2,M,tmp[n],t,m,temp,col,i,j,i1;
int zam,t,zadanie;
m не надо доопределять дальше она не используется т.к. заменяется на nrow
и int zam,t,zadanie; надо t убрать она у тебя строчкой выше уже есть и tmp[ncol]

Добавлено через 1 минуту
Цитата Сообщение от vet Посмотреть сообщение
надо t убрать она
а t нада заменить на k кот у тебя вообще не объявлена, а используется в цикле
1
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
17.01.2010, 23:44  [ТС] 7
вот заработал, но в ответ еще какие то числа ( типа 22000 там , такие огромные) откудо их берёт?

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define nrow 5
#define ncol 5
main()
{ int a[nrow][ncol],b,p,z,max,M,tmp[ncol],t,n,m,temp,col,i,j,i1;
int zam,k,zadanie;
printf("\nVvedite kol-vo stolbcov i strok \n");
scanf("%d", &col);
printf("\nVvedite sami elementi:\n" )   ;
for(i=0;i<col;i++)
for(j=0; j<col; j++)
scanf("%d", &a[i][j]);
{
  printf("\nVvedite nomer zadachi(0 dlya exit): ");
  scanf("%d", &zadanie);
  switch(zadanie)
  {
    case 1:
    {
    for(i=0;i<col;i++)
      for(j=0;j<col;j++)
      {
        b=(a[i][j])>0;
          if (b==0)
         n=n+1;
          }
         printf("\nkol-vo elementov menshe 0: %d\n",n);
        n=col;
       break;
        }
 case 2:
  for(i=0;i<col;i++)
  {
          for(j=0;j<col;j++)
         printf("%d\t",a[i][j]);
    }
  max=a[0][1];
  for(i=0;i<col-1;i++)
     for(j=1+i;j<col;j++)
                 if(max<a[i][j])
                         max=a[i][j];
printf("max element vyshe glavnoi diagonali:\n" );
printf("%d\n", max);
break;
 
 
 case 3:
     printf("Initial matrix:\n\n");
        for (i=0;i<nrow;i++) {
                for (j=0;j<ncol;j++)
                        printf("%d\t", a[i][j]);
                printf("\n");
        }
 
 
        for(j=0;j<ncol;j++) {
                for(i=1, max=a[0][j];i<nrow;i++) {
                        if (max<a[i][j]) {
                                max=a[i][j];
                        }
                }
                tmp[j]=max;
        }
 
 
 
        for (i=0;i<ncol-1;i++)
         {
                for (j=i+1;j<ncol;j++) {
                        if (tmp[i]<tmp[j]) {
                                t=tmp[i];
                                tmp[i]=tmp[j];
                                tmp[j]=t;
                                for (k=0;k<nrow;k++) {
                                        t=a[k][i];
                                        a[k][i]=a[k][j];
                                        a[k][j]=t;
                                }
                        }                   }}
                }
        }
 
 
        printf("\n\nResult matrix:\n\n");
        for (i=0;i<nrow;i++) {
                for (j=0;j<ncol;j++)
                        printf("%d\t", a[i][j]);
                printf("\n");
        }
 
 
while(zadanie!=0) ;
getch();
return 0;
}
Добавлено через 5 часов 1 минуту
может где то в цикле че нибудь убрать, подскажите пожалуйста!

Добавлено через 3 часа 47 минут


Добавлено через 21 минуту
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define nrow 5
#define ncol 5
main()
{ int a[nrow][ncol],b,p,z,max,M,tmp[ncol],t,n,m,temp,col,i,j,i1;
int zam,k,zadanie;
printf("\nVvedite kol-vo stolbcov i strok \n");
scanf("%d", &col);
printf("\nVvedite sami elementi:\n" )   ;
for(i=0;i<col;i++)
for(j=0; j<col; j++)
scanf("%d", &a[i][j]);
{
  printf("\nVvedite nomer zadachi(0 dlya exit): ");
  scanf("%d", &zadanie);
  switch(zadanie)
  {
    case 1:
    {
    for(i=0;i<col;i++)
      for(j=0;j<col;j++)
      {
        b=(a[i][j])>0;
          if (b==0)
         n=n+1;
          }
         printf("\nkol-vo elementov menshe 0: %d\n",n);
        n=col;
       break;
        }
 case 2:
  for(i=0;i<col;i++)
  {
          for(j=0;j<col;j++)
         printf("%d\t",a[i][j]);
    }
  max=a[0][1];
  for(i=0;i<col-1;i++)
     for(j=1+i;j<col;j++)
                 if(max<a[i][j])
                         max=a[i][j];
printf("max element vyshe glavnoi diagonali:\n" );
printf("%d\n", max);
break;
 
 
 case 3:
     printf("Initial matrix:\n\n");
        for (i=0;i<nrow;i++) {
                for (j=0;j<ncol;j++)
                        printf("%d\t", a[i][j]);
                printf("\n");
        }
 
 
        for(j=0;j<ncol;j++) {
                for(i=1, max=a[0][j];i<nrow;i++) {
                        if (max<a[i][j]) {
                                max=a[i][j];
                        }
                }
                tmp[j]=max;
        }
 
 
 
        for (i=0;i<ncol-1;i++)
         {
                for (j=i+1;j<ncol;j++) {
                        if (tmp[i]<tmp[j]) {
                                t=tmp[i];
                                tmp[i]=tmp[j];
                                tmp[j]=t;
                                for (k=0;k<nrow;k++) {
                                        t=a[k][i];
                                        a[k][i]=a[k][j];
                                        a[k][j]=t;
                                }
                        }                   }}
                }
        }
 
 
        printf("\n\nResult matrix:\n\n");
        for (i=0;i<nrow;i++) {
                for (j=0;j<ncol;j++)
                        printf("%d\t", a[i][j]);
                printf("\n");
        }
 
 
while(zadanie!=0) ;
getch();
return 0;
}
в 3 задание какие то огромные числа выводит, че исправить?
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
18.01.2010, 06:12 8
Цитата Сообщение от XPP Посмотреть сообщение
в 3 задание какие то огромные числа выводит, че исправить?
Только про огромные числа объясняю.
это у нас задано:
Цитата Сообщение от XPP Посмотреть сообщение
#define nrow 5
#define ncol 5
значение col мы сами вводим
Цитата Сообщение от XPP Посмотреть сообщение
printf("\nVvedite kol-vo stolbcov i strok \n");
scanf("%d", &col);
Заполняем матрицу значениями (учитывая что у нас размерность матрицы равна col):
Цитата Сообщение от XPP Посмотреть сообщение
for(i=0;i<col;i++)
for(j=0; j<col; j++)
scanf("%d", &a[i][j]);
Теперь если мы выбираем пункт 3, то получаем:
Цитата Сообщение от XPP Посмотреть сообщение
for (i=0;i<nrow;i++) {
for (j=0;j<ncol;j++)
printf("%d\t", a[i][j]);
А вывод элементов осуществляем выходя за границу заполненых значений массива (здесь почему то используем nrow и ncol).
1
18.01.2010, 06:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2010, 06:12
Помогаю со студенческими работами здесь

целочисленная квадратная матрица
Дана целочисленная квадратная матрица. Определить: - Произведение нечётных элементов каждого...

целочисленная квадратная матрица
дана целочисленная квадратная матрица определить: максимум ср.сумм модулей элементов которые...

Целочисленная квадратная матрица
Дана целочисленная квадратная матрица. Определить колличество строк, содержащих хотя бы один...

Целочисленная квадратная матрица
Дана целочисленная квадратная матрица {aij} (1≤ i≤n, 1≤ j≤n). Написать программу, вычисляющую сумму...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru