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

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами

06.01.2010, 17:24. Показов 1782. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ помогите найти ошибку!) последняя лаба не могу здать!) плиз!!

вот пример:

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно.

Добавлено через 1 минуту
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
#include <conio.h>
#include <stdio.h>
 
int main()
 {
  int i,j,n,m,min,max,minj,maxj,first,last;
  int arr[100][100];
  clrscr();
  printf("‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® бва®Є ¬*ваЁжл ");
  scanf("%d",&n);
  printf("‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® бв®«Ўж®ў ¬*ваЁжл ");
  scanf("%d",&m);
  printf("‚ўҐ¤ЁвҐ н«Ґ¬Ґ*вл ¬*ваЁжл\n");
  for (i=0; i<n; i++)
   for (j=0; j<m; j++)
 
    scanf("%d",&arr[i][j]);
  for (i=0;i<n;i++)
   {
    min=arr[i][0];
    max=arr[i][0];
    minj=0;
    maxj=0;
    for (j=0;j<m;j++)
     {
      if (arr[i][j]>max)
       {
    max=arr[i][j];
    maxj=j;
       }
      if (arr[i][j]<min)
       {
    min=arr[i][j];
    minj=j;
       }
     }
    first=arr[i][0];
    last=arr[i][m-1];
    arr[i][0]=max;
    arr[i][maxj]=first;
    arr[i][m-1]=min;
    arr[i][minj]=last;
    }
  printf("ђҐ§г«мв*в\n");
  for (i=0;i<n;i++)
   {
    for (j=0;j<m;j++)
     printf("%d ",arr[i][j]);
    printf("\n");
   }
  getch();
  return 0;
 }
Добавлено через 1 минуту
Там кароче если ввести матрицу размером 4 на 4 то выводит не правильно!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2010, 17:24
Ответы с готовыми решениями:

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами
Народ помогите найти ошибку!) плиз!! вот пример: Найти в каждой строке матрицы максимальный и...

Найти максимальный и минимальный элемент в каждой строке матрицы и поменять их местами
Дана матрица вещественных чисел N х М. Количество строк N и столбцов М задается пользователем....

Найти максимальный и минимальный элемент в каждой строке матрицы и поменять их местами
Дана матрица вещественных чисел N х М. Количество строк N и столбцов М задается пользователем....

Найти максимальный и минимальный элемент в каждой строке матрицы и поменять их местами (неправильно работает)
Дана матрица вещественных чисел N х М. Количество строк N и столбцов М задается пользователем....

5
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
06.01.2010, 17:48 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
70
71
72
73
74
75
76
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
    
/* Индекс минимального элемента в массиве */
size_t minPos(int *arr, size_t count){
    size_t i, min_index;
    int min_val;
    
    min_index = 0;
    min_val = arr[min_index];
    for ( i = 1; i < count; ++i ){
        if ( arr[i] < min_val ){
            min_index = i;
            min_val = arr[min_index];
        }
    }
    return min_index;
}
 
/* Индекс максимального элемента в массиве */
size_t maxPos(int *arr, size_t count){
    size_t i, max_index;
    int max_val;
    
    max_index = 0;
    max_val = arr[max_index];
    for ( i = 1; i < count; ++i ){
        if ( arr[i] > max_val ){
            max_index = i;
            max_val = arr[max_index];
        }
    }
    return max_index;
}
 
/* меняет местами значения элементов массива */
void swapVals(int *arr, size_t pos_a, size_t pos_b){
    int tmp;
    
    tmp = arr[pos_a];
    arr[pos_a] = arr[pos_b];
    arr[pos_b] = tmp;
}
 
/* Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами 
    с первым и последним элементом строки соответственно. */
#define ROWS 5
#define COLS 10
int main(void){
    int matr[ROWS][COLS];
    size_t i, j;
    
    srand(time(NULL));
    for ( i = 0; i < ROWS; ++i )
        for ( j = 0; j < COLS; ++j )
            matr[i][j] = rand() % 100;
    
    printf("\nOriginal:\n");
    for ( i = 0; i < ROWS; ++i )
        for ( j = 0; j < COLS; ++j )
            printf( ( j < COLS - 1 ) ? "%02d " : "%02d\n", matr[i][j]);
    
    for ( i = 0; i < ROWS; ++i ){
        if ( ( j = minPos(matr[i], COLS) ) != 0 )
            swapVals(matr[i], j, 0);
        if ( ( j = maxPos(matr[i], COLS) ) != COLS - 1 )
            swapVals(matr[i], j, COLS - 1);
    }
    printf("\nProcessed:\n");
    for ( i = 0; i < ROWS; ++i )
        for ( j = 0; j < COLS; ++j )
            printf( ( j < COLS - 1 ) ? "%02d " : "%02d\n", matr[i][j]);
 
    exit(0);
}
0
1 / 1 / 0
Регистрация: 14.12.2009
Сообщений: 53
06.01.2010, 23:40  [ТС] 3
да не что-то не работает все равно не то выводит

Добавлено через 6 минут




не то что-то надо что бы меняло минимальный и максимальный элемент в каждой строке с первым и последним элементом!
например:
вводим матрицу:
1 3 6 2
3 5 7 4
6 3 7 1
2 6 3 3

ответ :
2 3 6 1
4 5 7 3
1 3 7 6
3 6 3 2
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
07.01.2010, 00:59 4
Цитата Сообщение от dimon! Посмотреть сообщение
надо что бы меняло минимальный и максимальный элемент в каждой строке с первым и последним элементом!
так минимальный с первым, максимальный с последним, или наоборот? В любом случае у меня в програмке две строчки поправить и будет самый большой первым...
0
1 / 1 / 0
Регистрация: 14.12.2009
Сообщений: 53
07.01.2010, 01:07  [ТС] 5
Цитата Сообщение от easybudda Посмотреть сообщение
так минимальный с первым, максимальный с последним, или наоборот? В любом случае у меня в програмке две строчки поправить и будет самый большой первым...
кароче у меня задача тупая какае-то : Дана прямоугольная матрица. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно.
Я так понимаю зачем там искать макс и мин если можно просто поменять перваый и последний елемент местами!)) првда ведь!
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
07.01.2010, 02:23 6
Цитата Сообщение от dimon! Посмотреть сообщение
Я так понимаю зачем там искать макс и мин если можно просто поменять перваый и последний елемент местами!)) првда ведь!
Не, это слишком просто. Думаю - имеются ввиду элементы с наибольшим и наименьшим значениями.
0
07.01.2010, 02:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2010, 02:23
Помогаю со студенческими работами здесь

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом
Дана матрица B размера N x M . Найти в каждой строке матрицы максимальный и минимальный элементы и...

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

Найти минимальный и максимальный элементы матрицы и поменять их местами
В матрице 5на 5 исп. Подпрограму найти мин макс элементы и поменять их местами (в основной...

Найти в каждой строке матрицы максимальный и минимальный элементы
Найти в каждой строке матрицы максимальный и минимальный элементы и вывести на печать в виде двух...


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

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