Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
CrazyFly
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 10
#1

Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой - C++

24.01.2014, 22:07. Просмотров 310. Ответов 4
Метки нет (Все метки)

дана квадратная матрица получаемых через rand() найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой вывести на печать начальный и конечный вариант матрицы
нужно написать максимально тупо... без айострима как здесь, нужно срочно, а не то не допустят к зачету
плачу 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
#include <stdio.h>
#include <qmath.h>
 
int main()
{   const int H=4;
    const int W=4;
int mas[H][W] = {0};
int i,j,s,d;
 
s=1;
d=0;
for ( i = 0 ; i < H ; i++ ){
    for( j = 0 ; j < W ; j++ ){
        mas[i][j]=rand()%10;
        printf("%d ",mas[i][j]);
 
    }
  printf("\n");
}
for(i=0;i<H;i++)
    for( j = 0 ; j < W ; j++ )
    {
      if (i % 2 == 0) //чётно
         {
          s+=mas[i][j];
         }
      if(i % 2 ==1)//нечёт
      {
          d+=mas[i][j];
      }
    }
if (s == d)
 
    printf("Verno");
 
else
 
    printf("Net");
 
 
 
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2014, 22:07     Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой
Посмотрите здесь:

Поменять местами строку с максимальный элемент и строку с минимальным элементом матрицы C++
C++ Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером t.
Поменять местами строку с минимальным элементом на главной диагонали со строкой с заданным номером t. C++
Строку матрицы с минимальным элементом поменять со строкой с максимальным C++
Поменять местами строку матрицы с максимальным и минимальным элементом C++
Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой. C++
C++ Поменять местами строку матрицы с максимальным элементом на главной диагонали со строкой m
Поменять местами строку с максимальным и минимальным элементом матрицы C++
C++ Переставить строку матрицы с максимальным элементом на главной диагонали, со строкой с заданным номером m
C++ Поменять местами последнюю строку со строкой, содержащей минимальный элемент матрицы
Поменять местами последнюю строку со строкой, содержащей минимальный элемент матрицы C++
C++ Задана квадратная матрица. Поменять местами строку с максимальным элементом на главной диагонали со строкой с

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sashadereh
3 / 3 / 1
Регистрация: 30.09.2012
Сообщений: 63
24.01.2014, 22:56     Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой #2
Сейчас сделаю
Ev[G]eN
24.01.2014, 23:23
  #3
 Комментарий модератора 
sashadereh, ознакомьтесь с Правилами Форума. Особое внимание обратите на пункт №4.6: "Обсуждение вопросов - только в теме на форуме. Приглашения к обсуждению еще где-либо (в том числе и с помощью системы личных сообщений) запрещены, за исключением коммерческих разделов."
CrazyFly
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 10
25.01.2014, 04:55  [ТС]     Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой #4
Цитата Сообщение от sashadereh Посмотреть сообщение
Сейчас сделаю
куда вы пропали мне она нужна уже утром

Добавлено через 3 часа 45 минут
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{ srand(time(NULL));  //каждый  раз получется разные случайные числа
 const int H=5;
int matrix[H][H] = {0};
int i,j,tmp;
int iMax,jMax;
 
 
 
for ( i = 0 ; i < H ; i++ )                       //перебираются строки
{
    for( j = 0 ; j < H ; j++ )                     //а здесь столбцы
    {
        matrix[i][j]=rand()%10+1;      //rand() - это рандомно присваиваем значения, rand()%10+1 -рандомно присваивает в диапазоне от 0 до 10
        printf("%d ",matrix[i][j]);        //вывод первичной матрицы
    }
  printf("\n");
}
iMax=0;
jMax=0;
 
for (i = 0; i < H; i++) {
    for (j = 0; j < H; j++) {
        if (matrix[i][j] % 2 != 0) {
            iMax = i;
            jMax = j;
        }
    }
}
 
for (i = iMax; i < H; i++) {
    for (j = 0; j < H; j++) {
        if ((matrix[i][j] % 2 != 0) && (matrix[i][j] > matrix[iMax][jMax])) {
            iMax = i;
            jMax = j;
        }
    }
}
 
 
for( j = 0 ; j < H ; j++ ){
   tmp = matrix[0][j]; //меняем местами строки. tmp - это буфер
   matrix[0][j] = matrix[iMax][j];
   matrix[iMax][j] = tmp;
 
}
 
printf("print matrix\n");
for ( i = 0 ; i < H ; i++ ){
    for( j = 0 ; j < H ; j++ ){
    printf("%d ",matrix[i][j]); //вывод конечной матрицы
    }
printf("\n");
}
 
 
return 0;
}
получилось нечто такое, но код не правильно работает, он постоянно меняет последнюю строку с первой (ведь нулевая строка это первая строка? в программировании) а должен строку с максимальным нечетным элементом... очень прошу помочь, через 6 часов сдавать лабу а я уже ничего не соображаю

Добавлено через 50 минут
пожалуйста, кто-нибудь помогите, единственное что я смог понять, что проблемма где-то тут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (i = 0; i < H; i++) {
    for (j = 0; j < H; j++) {
        if (matrix[i][j] % 1 != 25) {
            iMax = i;
            jMax = j;
        }
    }
}
 
for (i = iMax; i < H; i++) {
    for (j = 0; j < H; j++) {
        if ((matrix[i][j] % 1 != 25) && (matrix[i][j] > matrix[iMax][jMax])) {
            iMax = i;
            jMax = j;
        }
    }
}
а если быть точнее тут iMax = i; jMax = j;
и как это исправить понятия не имею... уже битый час пытаюсь что-нибудь сделать но ничего не выходит
cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
25.01.2014, 05:02     Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой #5
CrazyFly,вроде работает, но проверь на всякий случай
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<cstdlib>
#include<iomanip>
#include<iostream>
int main()
{
    srand(time(NULL));  //каждый  раз получется разные случайные числа
    const int H=5;
    int matrix[H][H] = {0};
    int i,j,tmp;
    int iMax,jMax;
 
 
 
    for ( i = 0 ; i < H ; i++ )                       //перебираются строки
    {
        for( j = 0 ; j < H ; j++ )                     //а здесь столбцы
        {
            matrix[i][j]=rand()%10+1;      //rand() - это рандомно присваиваем значения, rand()%10+1 -рандомно присваивает в диапазоне от 0 до 10
            printf("%d ",matrix[i][j]);        //вывод первичной матрицы
        }
        printf("\n");
    }
    iMax=0;
    jMax=0;
 
 
 
    for (i = iMax; i < H; i++)
    {
        for (j = 0; j < H; j++)
        {
            if ((matrix[i][j] % 2 != 0) && (matrix[i][j] > matrix[iMax][jMax]))
            {
                iMax = i;
                jMax = j;
            }
        }
    }
 
 
    for( j = 0 ; j < H ; j++ )
    {
        tmp = matrix[0][j]; //меняем местами строки. tmp - это буфер
        matrix[0][j] = matrix[iMax][j];
        matrix[iMax][j] = tmp;
 
    }
 
    printf("print matrix\n");
    for ( i = 0 ; i < H ; i++ )
    {
        for( j = 0 ; j < H ; j++ )
        {
            //printf("%d ",matrix[i][j]); //вывод конечной матрицы
            std::cout<<std::setw(5)<<matrix[i][j];
        }
        printf("\n");
    }
 
 
    return 0;
}
Yandex
Объявления
25.01.2014, 05:02     Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой
Ответ Создать тему
Опции темы

Текущее время: 20:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru