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

В матрице расположить строки по возрастанию сумм их элементов

03.10.2011, 17:01. Показов 639. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В матрице расположить строки по возрастанию сумм их елементов. Язык "С"
Вот моя программа:
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
#include<stdio.h>
#include<conio.h>
#define N 10
#define M 10
 
void main()
 
{
char a[M][N];
int i,j,n,m,k,l,min,imin,sum;
 
clrscr();
 
printf("\n vvedite kol-vo strok:");
scanf("%d",&m);
printf("\n vvedite kol-vo stolbcov:");
scanf("%d",&n);
printf("\n vvedite matricy:\n");
for(i=0;i<m;i++)
  for(j=0;j<n;j++)
    scanf(" %d",&a[i][j]);
 
 
printf("\n");
sum=0;
for(i=0;i<m;i++)
  {
    for(j=0;j<n;j++)
      sum=sum+a[i][j];
    a[i][n]=sum;
    sum=0;
  }
printf("\n\n");
for(i=0;i<m;i++)
 { printf("\n");
  for(j=0;j<n+1;j++)
    printf(" %d",a[i][j]);
 }
 
printf("\n\n");
 
for(l=1;l<m;l++)
for(i=0;i<m-l;i++)
 if (a[i][n]>a[i+1][n])
    for(j=0;j<n;j++)
 
     {
      k=a[i][j];
      a[i][j]=a[i+1][j];
      a[i+1][j]=k;
      printf("+");
      }
     else printf("*");
 
printf("\n\n");
 
for(i=0;i<m;i++)
 { printf("\n");
  for(j=0;j<n;j++)
    printf(" %d",a[i][j]);
 }
 getch();
}
Проблема в перестановке строк. Помогите исправить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2011, 17:01
Ответы с готовыми решениями:

Расположить строки матрицы по возрастанию сумм их элементов
Помогите,пожалуйста,с кодом! Задание: Дана матрица А(n x n). Расположить строки матрицы по...

Переставляя строки матрицы, расположить их по возрастанию сумм их положительных четных элементов
Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов....

Расположить столбцы матрицы по возрастанию сумм модулей их отрицательных нечетных элементов
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных...

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

1
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.10.2011, 18:12 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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include <conio.h>
 
int main(void)
{
    srand(time(0));
    int **arr, rows, cols, i, j, k, l, tmp;
    
    printf("enter size of array(rows & columns): \n");
    scanf("%d%d", &rows, &cols);
    
    printf("\nSource array:\n");
    arr = (int**) malloc (sizeof(int*) * rows);
    for(i = 0; i < rows; ++i)
    {
        arr[i] = (int*) malloc (sizeof(int) * (cols + 1));
        arr[i][cols] = 0;
        for(j = 0; j < cols; ++j)
        {
            arr[i][j] = rand() % 21 - 10;
            printf("%d\t", arr[i][j]);
            arr[i][cols] += arr[i][j];
        }
        /*printf("%d\n", arr[i][cols]);*/
        printf("\n");
        for(k = i; k > 0; --k)
            for(l = k - 1; l >= 0; --l)
                if(arr[k][cols] < arr[l][cols])
                    for(j = 0; j < cols + 1; ++j)
                    {
                        tmp = arr[k][j];
                        arr[k][j] = arr[l][j];
                        arr[l][j] = tmp;
                    }
    }
    
    printf("\n\n=====Final array=====\n");
    for(i = 0; i < rows; ++i)
    {
        /*for(j = 0; j < cols + 1; ++j)*/
        for(j = 0; j < cols; ++j)
            printf("%d\t", arr[i][j]);
        printf("\n");
    }
    
    getch();
    return 0;
}
ps/ Если раскомментировать строки ##27 и 43, а вместо них закомментировать ##28 и 44, то в последнем столбике будет выводиться сумма элементов.
0
03.10.2011, 18:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2011, 18:12
Помогаю со студенческими работами здесь

Переставить строки по возрастанию сумм строк в каждой матрице
Помогите пожалуйста решить задачку по pascal на процедуры, в понедельник сдавать, а я совсем не...

В матрице столбцы расположить по возрастанию их последних элементов
Дан двумерный массив. Переформировать его таким образом, чтобы столбцы располагались по возрастанию...

Переставить столбцы в матрице по возрастанию сумм элементов в столбцах
Дана разреженная матрицы общего вида(CSS или CSR). Переставить столбцы в матрице по возрастанию...

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


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

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