2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 76
1

В матрице поменять местами строку, содержащую минимальный элемент, со строкой, содержащей максимальный элемент массива

18.02.2013, 12:20. Показов 2343. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста поправить код...
Задание:В двумерном N*K массиве целых чисел поменять местами строку, содержащую минимальный элемент массива, со строкой, содержащей максимальный элемент массива.

Кликните здесь для просмотра всего текста
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 <conio.h>
#include <time.h>
#define N 3
#define K 6
#define ran 99
main() {
int i=0,j=0,min=100,max=0,x=0,u=0,s=0,n=0;
int mas[N][K];
srand(time(NULL));
//in
for (j=0;j<K;j++){
    for (i=0;i<N;i++){
 mas[i][j] = rand()%ran;
    }
}
//out
//in
printf("Start:\n");
for (j=0;j<K;j++){
    for (i=0;i<N;i++){
    printf("%d ",mas[i][j]);
    }
    printf("\n");
}
//out
//in
for (j=0;j<K;j++){
    for (i=0;i<N;i++){
x=mas[i][j];
    }
    if(x<=min) {min=x;u=j;}
    if(x>=max) {max=x;s=j;}
    
    x=0;
}
//out
//in
  for(i=0;i<N;i++) 
      { 
       n=mas[i][u]; 
       mas[i][u]=mas[i][s]; 
       mas[i][s]=n; 
       } 
//out
    printf("\n\n");
//in
    printf("Finish:\n");
for (j=0;j<K;j++){
    for (i=0;i<N;i++){
    printf("%d ",mas[i][j]);
    }
    printf("\n");
}
//out
printf("\n\n... Press any key ...");
getch();
return 0;
}

Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2013, 12:20
Ответы с готовыми решениями:

Массивы и указатели: Поменять местами строку, содержащую максимальный элемент, со строкой, содержащей минимальный
дана действительная матрица размера nxm. Поменять местами строку, содержащую элемент с наибольшим...

Массивы и указатели: Поменять местами строку, содержащую максимальный элемент, со строкой, содержащей минимальный
дана действительная матрица размера nxm. Поменять местами строку, содержащую элемент с наибольшим...

В матрице поменять местами строку, содержащую минимум, со строкой содержащей максимум
В матрице А размера 5х5 поменять местами строку, содержащую наименьший элемент, со строкой...

В матрице поменять местами строку, содержащую минимальный элемент, со строкой, содержащей максимальный элемент
В произвольной матрице i=1, M , j=1, N поменять местами строку, содержащую минимальный элемент, со...

2
117 / 109 / 78
Регистрация: 30.01.2013
Сообщений: 297
18.02.2013, 19:29 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
#include <stdio.h>
#include <locale.h>
 
#define line 3 //строки
#define column 7//столбцы
 
int main(){
    setlocale(LC_ALL,"rus");
 
    int array_a[line][column];      //Сам массив
    int i, j;                       //счетчики
 
    int min;                        //минимальный элемент
    int line_min;                   //номер строки с минимальным элементом
 
    int max;                        //максимальный элемент
    int line_max;                   //номер строки с максимальным элементом
 
    int buf;                        //буферная переменная
 
    /*Заполняем массив*/
    printf("Введите значение массива:\n");
    for(i = 0; i < line; i++){
        for(j = 0; j < column; j++){
            scanf("%d", &array_a[i][j]);
        }
    }
 
    /*Ну тут я думаю понятно))*/
    min = array_a[0][0];
    max = array_a[0][0];
    line_min = 0;
    line_max = 0;
 
    /*Ищем минимальный и максимальный элемент и запоминаем номера их строк*/
    for(i = 0; i < line; i++){
        for(j = 0; j < column; j++){
            if(min > array_a[i][j]){
                min = array_a[i][j];
                line_min = i;
            }
 
            if(max < array_a[i][j]){
                max = array_a[i][j];
                line_max = i;
            }
        }
    }
    
    /*Меняем строки местами*/
    for(j = 0; j < column; j++){
        
            buf = array_a[line_min][j];
            array_a[line_min][j] = array_a[line_max][j];
            array_a[line_max][j] = buf;
        
    }
 
    /*Выводим то, что получилось*/
    printf("\nРезультат:\n\n");
    for(i = 0; i < line; i++){
        for(j = 0; j < column; j++){
            printf("%d ", array_a[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}
1
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 76
18.02.2013, 22:43  [ТС] 3
Спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2013, 22:43
Помогаю со студенческими работами здесь

В заданной матрице поменять местами строку, содержащую максимальный элемент со строкой, содержащей минимальный
Надо сделать к понедельнику. Задание по ПЯВУ, состоит из двух частей. Если первую часть я понимаю,...

Поменять местами строку, содержащую максимальный элемент массива, со строкой, содержащей минимальный элемент массива
сложно дались массивы, помогите написать код. Дан вещественный массив А. Поменять местами строку,...

В заданной матрице поменять строку, содержащую максимальный элемент со строкой, содержащей минимальный элемент
В данной действительной квадратной матрице размера m x n поменять строку, содержащую элемент с...

Поменять местами строку, содержащую максимальный элемент, со строкой, содержащей минимальный элемент
Поменять местами строку, содержащую максимальный элемент, со строкой, содержащей минимальный...


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

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

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