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

Матрица 8х8 как подправить? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Класс стек что не так? http://www.cyberforum.ru/cpp-beginners/thread770771.html
Компилятор ругается, что в конструкторе элемент массива объявлён в раз. как такое может быть он же в классе объявлён и видимость прописана. Кстати, это не единственное на что он жалуется. Не понимаю что не так? Код: # include <iostream> # define SIZE 26; using namespace std; class stack { char stck ; int tos;
C++ Поместить и взять с потока Ошибка в коде программы, 21 строчка, не видет "num" #include<iostream.h> #include<conio.h> #include<math.h> #include<stdlib.h> class PhoneNumber { friend ostream & operator << (ostream &, const PhoneNumber &); http://www.cyberforum.ru/cpp-beginners/thread770761.html
Шаблон класса «бинарное дерево», добавление элементов C++
Написал код: #include <iostream> using namespace std; class Aviobilet { public: char Punkt; int Num;
Порядок возрастания элементов строки матрицы C++
С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти строку, порядок элементов которой наиболее соответствует порядку по возрастанию. Добавлено через 1 час 28 минут help:cry:
C++ Решения упражнений [Книга Р.Лафоре "ООП в С++] http://www.cyberforum.ru/cpp-beginners/thread770720.html
//Глава 4. Структуры. Перечисления. //Упражнение 6 #include<iostream> #include<conio.h> using namespace std; int main() { enum etype { laborer, secretary, manager, accountant, executive, researcher };
C++ Заменить любую цифру числа так, чтобы полученное число делилось на наибольшее количество своих цифр Дано натуральное число. Заменить любую его цифру так, чтобы полученное число делилось на наибольшее количество своих цифр. Нужно написать на С++. Можно использоваться только самые элементарные действия, то есть циклы, условия. подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
24.01.2013, 18:52     Матрица 8х8 как подправить?
Ну, во-первых, задача определена только для равных сторон, поэтому нет смысла разносить размер матрицы на две переменные.
Во-вторых, ну Б-же мой, двадцать первый век, копипаст уже давно придуман, да и экономить размер исходного кода больше не надо. Давайте же осмысленные названия переменным, через эти W, H, x, kol, PROV не продраться. Счетчики можно не трогать, это да.

Короче, причесал маленько. Запустите несколько (десятков?) раз, чтобы получить хотя бы одну совпадающую пару столбец-строка.
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
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <iostream>
 
int main(int argc, char **argv) {
  srand(time(0));
  
  int size = 8;
  
  int **matrix = new int*[size];
  for (int i = 0; i < size; ++i) {
    matrix[i] = new int[size];
    for (int j = 0; j < size; ++j) {
      matrix[i][j] = -rand() % 2; // это вместо ручного ввода
      std::cout << std::setw(3) << matrix[i][j];
    }
    std::cout << std::endl;
  }
  
  // поиск совпадающих строки и столбца
  for (int i = 0; i < size; ++i) {
    for (int j = 0; j < size; ++j) {
      bool areEqual = true;
      for (int k = 0; k < size; ++k) {
        if (matrix[i][k] != matrix[k][j]) {
          areEqual = false;
          break;
        }
      }
      if (areEqual) {
        std::cout << "Row " << i << " equals to column " << j << "." <<
          std::endl;
      }
    }
  }
 
  // поиск сумм строк с хотя бы одним отрицательным элементом
  for (int i = 0; i < size; ++i) {
    int sum = 0;
    bool hasNegativeValue = false;
    for (int j = 0; j < size; ++j) {
      sum += matrix[i][j];
      if (matrix[i][j] < 0)
        hasNegativeValue = true;
    }
    if (hasNegativeValue) {
      std::cout << "Row " << i << " has a negative value and sum of " <<
        sum << "." << std::endl;
    }
  }
  
 
  for (int i = 0; i < size; ++i)
    delete [] matrix[i];
  delete [] matrix;
 
  std::cin.get();
  return 0;
};
 
Текущее время: 12:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru