Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
bladzher
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 76
1

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

18.02.2013, 12:20. Просмотров 1085. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2013, 12:20
Ответы с готовыми решениями:

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

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

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

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

Поменять в матрице местами строку с максимальным элементом и строку, содержащую min элемент
// 1=Указатели. Поменять местами строки.cpp : Defines the entry point for the console application....

2
ZeR_0
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
bladzher
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 76
18.02.2013, 22:43  [ТС] 3
Спасибо

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2013, 22:43

Найти минимальный элемент матрицы M*N и переставить строку содержащую этот элемент с первой строкой
решите и объясните плиз)

Поменять местами максимальный и минимальный элемент массива
Помогите поменять местами максимальный и минимальный элемент массива. Кол-во элементов = 10....

Поменять местами максимальный элемент и минимальный элемент выше иниже главной диагонали
Дано заданиепо СИ: поменять местами максимальный элемент и минимальный элемент выше иниже главной...


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

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

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