Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
1

Упорядочить (переставить) столбцы матрицы по невозрастанию

06.01.2010, 00:50. Показов 1386. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
дана целочисленная квадратная матрица. Определить:
1)
2) найти максимальный из элементов, расположенных выше главной диагонали
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define nrow 5
#define ncol 5
main()
{ int a[nrow][ncol],b,p=1,max,z=0, col,n=0,i,j;
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]);
    {
    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;
}
{
 
    printf("Ishodnay matrica\n");
  for(i=0;i<col;i++)  
  {
          for(j=0;j<col;j++)
         printf("%d\t",a[i][j]);  
      printf("\n\n");
  }
  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("Sami malenki element nige glavnoi diagonali:\n" );
printf("%d\n", max);
}
      getch();
 
  }}
1и2 сделано, помогите с 3) Плиз!!!

Добавлено через 19 минут
C
1
2
3
4
5
6
7
8
{  for(i=0;i<ncol-1;i++)
   {  for(j=0;j<ncol-i-1;j++)
      {  if (a[0][j]>a[0][j+1])
         {  for(k=0;k<nrow;k++)
        {t=a[k][j];a[k][j]=a[k][j+1];a[k][j+1]=t;}
     }
      }
   }
исправьте ошибки Плиз!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2010, 00:50
Ответы с готовыми решениями:

Упорядочить строки матрицы по невозрастанию максимальных элементов строк
Дана действительная матрица размером m * n: упорядочит строки матрицы по невозрастанию максимальных...

В каждой строке матрицы упорядочить элементы по невозрастанию (с помощью функций)
Помогите найти ошибку. Сформировать матрицу размерности 5x6 случайных натуральных чисел,...

Упорядочить элементы строк матрицы по невозрастанию, а сами строки - по возрастанию элементов 10-го столбца
Дана матрица Х. Упорядочить элементы строк матрицы по невозрастанию, а сами строки по возрастанию...

Упорядочить элементы строк матрицы, в которых есть хотя бы один отрицательный элемент, по невозрастанию
Дана целочисленная матрица {Aij}i=A,...,n; j=1..n, n&lt;=100 Если сумма наибольшего и наименьшего...

5
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
06.01.2010, 06:41 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
#include<stdio.h>
#include <stdlib.h>
main()
{ int **a, n, m,i, i1,j, max1, max2, temp;
 
printf("\nVvedite kol-vo strok i strok \n");
scanf("%d", &n);
printf("\nVvedite kol-vo stolbcov i strok \n");
scanf("%d", &m);
a = (int **)malloc (n * sizeof (int *));
  for (i = 0; i < n; i++)
  a [i] = (int *)malloc (m * sizeof (int));
printf("\nVvedite sami elementi:\n" );
  for(i=0;i<n;i++)  
     for(j=0;j<m;j++)
 
     {
        printf("[%d][%d]=",i,j);
        scanf("%d",&a[i][j]);
     }
  printf("Ishodnay matrica\n");
  for(i=0;i<n;i++)  
  {
          for(j=0;j<m;j++)
         printf("%d\t",a[i][j]);  
      printf("\n\n");
  }
 
  for(i1=0;i1<n-1;i1++) 
      for(i=0; i<n-1-i1; i++)
  {
      max1=a[i][0];
      max2=a[i+1][0];
     for(j=1;j<m;j++)
     {
         if(a[i][j]>max1)
             max1=a[i][j];
         if(a[i+1][j]>max2)
             max2=a[i+1][j];
     }
     if(max1<max2)
         for(j=0;j<m;j++)
         {
             temp=a[i][j];
             a[i][j]=a[i+1][j];
             a[i+1][j]=temp;
         }
      }
  printf("Poluchennay matrica\n");
  for(i=0;i<n;i++)  
  {
          for(j=0;j<m;j++)
         printf("%d\t",a[i][j]);  
      printf("\n\n");
  }
 
       
     
}
1
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
06.01.2010, 09:48  [ТС] 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
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define nrow 5
#define ncol 5
main()
{ int a[nrow][ncol],b,p=1,max,z=0,max1,max2,m,temp,col,n=0,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:
          for(j=0;j<m;j++)
         printf("%d\t",a[i][j]);
      printf("\n\n");
  }
 
  for(i1=0;i1<n-1;i1++)
          for(i=0; i<n-1-i1; i++)
  {
          max1=a[i][0];
          max2=a[i+1][0];
     for(j=1;j<m;j++)
         {
                 if(a[i][j]>max1)
                         max1=a[i][j];
                 if(a[i+1][j]>max2)
                         max2=a[i+1][j];
         }
         if(max1<max2)
                 for(j=0;j<m;j++)
                 {
                         temp=a[i][j];
                         a[i][j]=a[i+1][j];
                         a[i+1][j]=temp;
                 }
 
  printf("Poluchennay matrica\n");
  for(i=0;i<n;i++)
  {
          for(j=0;j<m;j++)
         printf("%d\t",a[i][j]);
      printf("\n\n");
       break;
  }
}
     
 
while(zadanie!=0) ;
getch();
return 0;
}
Хотел создать меню для выбора решения одной из задач.
Найдите ошибку ПЛИЗ!!
0
135 / 69 / 12
Регистрация: 10.10.2009
Сообщений: 187
06.01.2010, 10:19 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define nrow 5
#define ncol 5
main()
{ int a[nrow][ncol],b,p=1,max,z=0,max1,max2,m,temp,col,n=0,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:
      for(j=0;j<m;j++)
        {
         printf("%d\t",a[i][j]);
         printf("\n\n");
        }
 
  for(i1=0;i1<n-1;i1++)
      for(i=0; i<n-1-i1; i++)
  {
      max1=a[i][0];
      max2=a[i+1][0];
     for(j=1;j<m;j++)
     {
         if(a[i][j]>max1)
             max1=a[i][j];
         if(a[i+1][j]>max2)
             max2=a[i+1][j];
     }
     if(max1<max2)
         for(j=0;j<m;j++)
         {
             temp=a[i][j];
             a[i][j]=a[i+1][j];
             a[i+1][j]=temp;
         }
    }
  printf("Poluchennay matrica\n");
  for(i=0;i<n;i++)
  {
      for(j=0;j<m;j++)
     printf("%d\t",a[i][j]);
      printf("\n\n");
       break;
  }
}
}
 
 
while(zadanie!=0) ;
getch();
return 0;
}
считайте количество открытых скобок
1
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
06.01.2010, 14:40  [ТС] 5
последнее 3) не выводит помогите пожалуйста!!!

Добавлено через 3 часа 54 минуты
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
case 3:
          for(j=0;j<m;j++)
                {
                 printf("%d\t",a[i][j]);
                 printf("\n\n");
                }
 
  for(i1=0;i1<n-1;i1++)
          for(i=0; i<n-1-i1; i++)
  {
          max1=a[i][0];
          max2=a[i+1][0];
     for(j=1;j<m;j++)
         {
                 if(a[i][j]>max1)
                         max1=a[i][j];
                 if(a[i+1][j]>max2)
                         max2=a[i+1][j];
         }
         if(max1<max2)
                 for(j=0;j<m;j++)
                 {
                         temp=a[i][j];
                         a[i][j]=a[i+1][j];
                         a[i+1][j]=temp;
                 }
        }
  printf("Poluchennay matrica\n");
  for(i=0;i<n;i++)
по невозростанию значений наибольших элементов строки проверяет, надо по столбцу сделать

Добавлено через 5 минут
и можно как нибудь по проще?

Добавлено через 15 секунд
и можно как нибудь по проще?
0
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 60
10.01.2010, 22:57  [ТС] 6
помогите кто нибудь с программой ПЛИЗЗ!

Добавлено через 2 часа 10 минут
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
          for(j=0;j<m;j++)
                {
                 printf("%d\t",a[i][j]);
                 printf("\n\n");
                }
 
  for(i1=0;i1<n-1;i1++)
          for(i=0; i<n-1-i1; i++)
  {
          max1=a[i][0];
          max2=a[i+1][0];
     for(j=1;j<m;j++)
         {
                 if(a[i][j]>max1)
                         max1=a[i][j];
                 if(a[i+1][j]>max2)
                         max2=a[i+1][j];
         }
         if(max1<max2)
                 for(j=0;j<m;j++)
                 {
                         temp=a[i][j];
                         a[i][j]=a[i+1][j];
                         a[i+1][j]=temp;
                 }
        }
строки проверяет, как сделать чтоб по столбцы проверяла?
0
10.01.2010, 22:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2010, 22:57
Помогаю со студенческими работами здесь

Переставить столбцы матрицы
Задана целочисленная матрица размера N×M. Переставить столбцы матрицы в порядке возрастания сумм их...

Переставить местами столбцы матрицы
Есть двойная ( вертикальная )перестановка. Размер матрицы (пример) 5х5. Дан текст,...

Переставить столбцы матрицы по возрастанию сумм столбцов
B матрице С переставить столбцы по возрастанию сумм столбцов матрицы.

Переставить столбцы матрицы в порядке убывания значений первой строки
Для матрицы M(m,n), 1&lt;m, 10&lt;n. Найти суму всех чисел меньше нуля. Переставить столбцы в порядке...


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

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