Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Yamis
0 / 0 / 1
Регистрация: 21.04.2018
Сообщений: 132
1

Упорядочить все строки матрицы по числу элементов, кратных 3 (матрица сортируется неправильно)

31.05.2018, 17:03. Просмотров 384. Ответов 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
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <stdio.h>
#include <math.h>
 #include <stdlib.h>
 
int main()
{
  int a[3][3]={{3,3,3},{3,2,2},{3,2,3}};
  int mx[100];
  int i,j;
  for ( i=0;i<3;i++)
  {
    for (j=0;j<3;j++)
    printf("%4d ",a[i][j]);
    printf ("\n");
  }
  printf ("\n");
for(int i=0;i<3;i++)
     { mx[i]=0; 
      for(int j=0;j<3;j++)
      {
                  if(a[i][j]%3==0)
                   {
                           mx[i]++; 
                   }
       }
       printf(" %d ", mx[i]);
      } 
      int prom=0;
printf("\n");
 
for (int i=0;i<3;i++)
 {
        for (int j=0;j<2;j++)
                {
        if (mx[j]>mx[j+1]) 
                {
         for (int k=0;k<3;k++)
         {
                 
                prom=a[j][k];
                a[j][k]=a[j+1][k];
                a[j+1][k]=prom;
         }
         }
                }
 }
 printf("\n");
   printf("Rezultat:\n");
 
  for(int i=0;i<3;i++){
 
    for(int j=0;j<3;j++) 
    printf("%4d ",a[i][j]);
 
    printf("\n");
  }
     return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2018, 17:03
Ответы с готовыми решениями:

Упорядочить все строки матрицы по числу элементов, кратных 3.
Упорядочить все строки матрицы по числу элементов, кратных 3, т.е. на первое место поставить строку...

Упорядочить все строки матрицы по числу элементов, кратных двум
помогите плиз, написать програмку просто на &quot;си&quot; которая должна:Упорядочить все строки матрицы по...

Упорядочить строки матриц по числу элементов кратных заданному числу
Даны три целочисленные матрица A, B и C. Упорядочить строки матриц по числу элементов, кратных №,...

Формирование одномерного массива из сумм элементов каждой строки матрицы, кратных числу k
Все, вроде, правильно, но выводит только первый элемент попавший в if. #include &lt;conio.h&gt;...

Дана последовательность целых чисел, за которой следует 0. Найти количество элементов этой последовательности, кратных числу K1 и не кратных числу K2
Ребята помогите пожалуйста решить 2 задачи с помощью цикла do и while. (без массива) 1)Дана...

2
Геомеханик
798 / 602 / 939
Регистрация: 26.06.2015
Сообщений: 1,409
01.06.2018, 09:00 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
#include <stdio.h>
#define N 3
 
int main(void){
    int i, j, k, t, cs[N];
    int mat[N][N] = {
        {9,6,1},{8,7,4},{3,1,2}
    };
 
    //подсчитываем
    for(i = 0; i < N; ++i){
        cs[i] = 0;
        for(j = 0; j < N; ++j){
            if((mat[i][j] % 3) == 0)
                ++cs[i];
        }
    }
 
    //сортируем - выборочной сортировкой
    for(i = 0; i < N; ++i){
        k = i;
        for(j = i + 1; j < N; ++j){
            if(cs[j] < cs[k])
                k = j;
        }
 
        if(i != k){
            for(j = 0; j < N; ++j){
                t = mat[i][j];
                mat[i][j] = mat[k][j];
                mat[k][j] = t;
            }
            t = cs[i];
            cs[i] = cs[k];
            cs[k] = t;
        }
    }
 
    //выводим
    for(i = 0; i < N; ++i){
        for(j = 0; j < N; ++j)
            printf("%d ", mat[i][j]);
        putchar('\n');
    }
    getchar();
    return 0;
}
0
Yamis
0 / 0 / 1
Регистрация: 21.04.2018
Сообщений: 132
01.06.2018, 10:02  [ТС] 3
Поясните цикл
C
1
2
3
4
5
6
if(i != k){
            for(j = 0; j < N; ++j){
                t = mat[i][j];
                mat[i][j] = mat[k][j];
                mat[k][j] = t;
            }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2018, 10:02

Найти количество элементов этой последовательности, кратных числу K1 и не кратных числу K2
Надо решить задачи используя все типы циклов (for, while, do while). Помогите пожалуйста буду...

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

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


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

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

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