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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
XPP
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
#1

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

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

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

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

Добавлено через 6 часов 28 минут
Помогите пожалуйста курсовую надо славать!!! Плиз!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2010, 23:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Целочисленная квадратная матрица (C++):

Целочисленная квадратная матрица. - C++
Дана целочисленная квадратная матрица. Определить: произведение элементов в тех строках, которые не содержат отрицательных элементов;...

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vet
175 / 175 / 13
Регистрация: 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
XPP
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
vet
175 / 175 / 13
Регистрация: 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
XPP
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
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2010, 06:12
Привет! Вот еще темы с ответами:

Целочисленная квадратная матрица - C++
Даны: натуральное число m, челые числа а1, ... , аm и челочисленная квадратная матрица порядка m. Строку с номером i матрицы назовём...

Дана целочисленная квадратная матрица - C++
Всем доброго времени суток ув. форумчане! Не успеваю выполнить задачу по программированию на с++, все время отнимает работа, буду ОЧЕНЬ...

Дана целочисленная квадратная матрица - C++
Дана целочисленная квадратная матрица порядка n. Найти номера строк: в) все элементы которых четны;

Дана целочисленная квадратная матрица - C++
Всем доброго времени суток!Я тут немнога запутался, кто может пожалуйста помочь разобраться!? Вообщем задание такого - Дана целочисленная...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.01.2010, 06:12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru