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

Переставить местами строки, содержащие первый и последний максимальные элементы соответственно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не правильный указатель http://www.cyberforum.ru/cpp-beginners/thread630054.html
У меня постоянно какие то бока с указателями Помогите QLibrary myLib("ProcMon"); qDebug() << myLib.load(); typedef void (*setupFunc)(); setupFunc setup = (setupFunc) myLib.resolve("setup"); int k = 0; if (setup) setup(); typedef int (*SODFunc)();
C++ 3-х мерное дерево Фенвика Дана такая задача: есть трехмерное пространство. Поступают запросы вида увеличить количество элементов в параллелепипеде от 0, 0, 0 до x, y, z на val, и посчитать сумму в параллелепипеде от x, y, z до x1, y1, z1. Вроде бы все ясно - пишется трехмерное дерево Фенвика, но при подсчете суммы (2 запрос) Какие-то косяки (возможно в том месте, которое похоже на принцип включения-исключения).... http://www.cyberforum.ru/cpp-beginners/thread630040.html
stl iterator обратный проход C++
как делается ?
Как убрать зависимость C++
Всем привет.. Использую static_cast и вывожу числовое значение клавиши на экран. Но мне вместо 1 значение всегда выводится такая форма. -32 (номер клавиши) ОТКУДА ЭТОТ -32? Вот код... #include<iostream>
C++ Изучение Qt и C++ приведет к лучшему пониманию C и системного программирования? http://www.cyberforum.ru/cpp-beginners/thread629990.html
Если я сейчас начну изучать Qt и C++, то потом я смогу без проблем еще начать изучать C и системное программирование?
C++ Присвоение значений Всем доброго времени суток, подскажите как присвоить переменной такое значение? 48847E5536130C10 подробнее

Показать сообщение отдельно
MikeMaster
0 / 0 / 0
Регистрация: 01.07.2012
Сообщений: 15
28.07.2012, 19:35     Переставить местами строки, содержащие первый и последний максимальные элементы соответственно
Добрый вечер)))
Задание: В матрице размером N*M Переставить местами строки, содержащие первый и последний максимальные элементы соответственно.
ошибка в функции work: ввожу матрицу (9,4,8) (1,1,1)(6,3,7). он выводит: (1,1,1) (9,4,8) (6,3,7). а должно ведь: (6,3,7) (1,1,1) (9,4,8)
не могу понять что делать????? помогите исправить))

вот код:
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
77
78
79
80
81
82
83
84
#include "stdafx.h"
#include "math.h"
#include "stdio.h"
#include <clocale>
const int MAX_N=100;    //Максимальные размеры массива
const int MAX_M=100;
  //прототипы
void input(int matrix[][MAX_M],int n,int m);
void work (int matrix [][MAX_N], int n, int m);
void output(int matrix[][MAX_M],int n,int m);
int main()
{setlocale (0 , "rus"); //установка русской локали
    int matrix[MAX_N][MAX_M];   //Матрица  // i - строки, j - столбцы
    int n=0; //Кол-во строк в наших матрицах  - введем мы
    int m=0; //Кол-во стобцов в наших матрицах  - введем мы
    int d=0;
    int i=0;
    //Вводим кол-во строк и столбцов в наших матрицах       
    printf ("Введите кол-во строк\n");       
    scanf ("%d", &n);      
    printf ("Введите кол-во столбцов\n"); 
    scanf("%d", &m);
 
 //Заполняем первую матрицу по строкам      
    printf ("Введите элементы матрицы\n");        
    input (matrix, n, m);
    work (matrix, n, m);
    output (matrix, n,m);
 return 0;          
 }        
 
void output(int matrix[][MAX_M],int n,int m)
{
    for (int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++) 
         printf("%d\t",matrix[i][j]);
        printf ("\n");
    }
}
 
//ввод матрицы
 
 
void input(int matrix[][MAX_M],int n,int m)
{
  for (int i=0; i<n; i++) 
    for (int j=0; j<m; j++)
    {
        scanf ("%d", &matrix[i][j]);
    }
}           
 
void work (int matrix [][MAX_N],  int n, int m)
{  int j=0;
    int f=1; //  первым максимал
   int l=1;  // с вторым максимал
   for (int j=0; j<n; j++) // ищем первый макс элемент в строках
   { if (matrix [0][j]>f)
   { f=j;
     break;
   }
   }
 
for (int j=0; j<n; j++)  //ищем 2 элемент в строках
{ if (matrix[0][j-1]>f)
{ l=j;
  break;
}
  }
 
    if(f==1)
    if  (l==1)  //если не найден какой-то столбец
    {printf("Не найдены соответствующие столбцы.\n");   
    return;         // конец функциии
    }
 
for (int j=0; j<m; j++)  // меняем в строках
{ int t;
  t=matrix[f][j];
  matrix[f][j]=matrix[l][j];
  matrix[l][j]=t;
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru