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

Матрица. Диагонали в прямоугольнике - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ помогите перевести программу с паскаля на С++ http://www.cyberforum.ru/cpp-beginners/thread971496.html
Ребят , помогите перевести программу с паскаля на С++ , или подскажите как написать нечто подобное. Заранее благодарен. Вот задание : №1. Дано натуральное число N. Определить, является ли оно автоаморфным. Автоаморфное число N равно последним разрядам квадрата этого числа. А вот код паскаля :
C++ Сформировать массив С, каждый элемент которого равен максимальному значению соответствующих элементов массивов А и В 1) Даны два массива А и В одинаковой размерности. Сформировать массив С, каждый элемент которого равен максимальному значению соответствующих элементов массивов А и В. http://www.cyberforum.ru/cpp-beginners/thread971480.html
C++ вывести на экран информацию о стоимости аренды
В моей задаче ( Бассейн предоставляет сдает в аренду 4 плавательных дорожки пятницам с 16.00 до 20.00 на почасовой основе. Цена аренды 60 грн. / Час. Известна информация о состоянии каждой из дорожек ежечасно (арендуемая свободна). Пользователь вводит следующую информацию: начало, продолжительность аренды (количество часов), номер дорожки. Нужно вывести на экран информацию о стоимости аренды)...
C++ Нужно немного разобраться в бинарном поиске ,в С++
Здравствуйте. Вообщем , есть код, нашёл такой пример: int start,end,m; start=0; //начало end=n; //конец bool a=false; while(start<=end) { m=(start+end)/2; //середина if(key<m) end=m-1;
C++ функция добавления элемента в список http://www.cyberforum.ru/cpp-beginners/thread971466.html
пытаюсь создать список с добавлением элемента в конец. void List::Add(int x){ element *temp=new element; temp->x=x; temp->NEXT=NULL; element *current=head; while (current->next!=NULL){ current=current->NEXT; current->NEXT=temp;}}
SFML SFML. Проблемы при кодключение Всем доброго времени суток :) Решил попробовать поиграться с мультимедиа(игрушки типа змейки и марио) ,для опытов выбрал библиотеку(или правильно говорить платформу?поправьте) SFML. При подключение возникли проблемы.Все стандартно взято с сайта для проверки.Компилятор Code::Blocks.Код вот.Также ниже скрин. #include <SFML/Graphics.hpp> using namespace sf; int main() { RenderWindow... подробнее

Показать сообщение отдельно
StriBog45
5 / 5 / 2
Регистрация: 03.09.2013
Сообщений: 80
08.10.2013, 17:32  [ТС]     Матрица. Диагонали в прямоугольнике
Я попробовал в ваш код подставить за место заранее введённых чисел подставить случайное число. Сумма максимума получается не правильной,больше чем есть у всех диагоналей
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
#include "stdafx.h"
#include <ctime>
#include <iostream>
#include <locale>
using namespace std;
 
int main()
{   
    setlocale(LC_ALL,"Russian");
 
    const int size = 10; const int size2 = 12;
    int A[size][size2], m = 10, n = 12;
 
    cout << "Матрица 10 на 12:" << endl;
    for (int i = 0; i < m; i++)
     { 
         for (int j = 0; j < n; j++)
         {
             A[i][j] = rand() % 9 - 5;
             if (A[i][j] >= 0)
             {
                 cout << "   ";
             }
             else
             {
                 cout << "  ";
             }
             cout << A[i][j];
         }
         cout << endl;
     }
 
    int a = abs(A[0][0]),  b = abs(A[0][n-2]),  c = abs(A[m-1][n-1]);
 
    for (int i = 0; i < m; i++)
    { 
         int sum = 0;    
         for (int j = 0; j <= i; j++) sum += abs(A[j][i-j]);     
         if (sum > a) a = sum;
    }
 
    for (int i = 1; i < m; i++) 
    {
        b += abs(A[i][n-2-i]);
    }
 
    for (int i = 1; i < m; i++)
    { 
        int sum = 0;
        for (int j = 1; j <= m-i; j++) sum += abs(A[i+j-1][n-j]);
        if (sum > c) c = sum;
    }
 
    int max = (a > b && a > c) ? a : (b > a && b > c) ? b : c;
 
    cout << "Максимум среди сумм модулей элементов диагоналей"
         << endl
         << "параллельных побочной диагонали: " 
         << max
         << endl;
    system("pause");
    return 0;
}
Добавлено через 9 минут
Честно говоря не совсем понимаю строки:
C++
1
2
int a = abs(A[0][0]),  b = abs(A[0][n-2]),  c = abs(A[m-1][n-1]);
int max = (a > b && a > c) ? a : (b > a && b > c) ? b : c;
Больше привык видеть через if
C++
1
2
3
4
5
max = A[0][0]
if (A[i][j] > max)
{
   max = A[i][j];
}
Добавлено через 7 минут
p.s.
Побочная диагональ матрица
000000000001 Единичка показывает побочную диагональ
000000000010
000000000100
000000001000
000000010000
000000100000
000001000000
000010000000
000100000000
001000000000
 
Текущее время: 08:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru