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

Определить, симметричен ли массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ решение систему http://www.cyberforum.ru/cpp-beginners/thread703859.html
решить систему
C++ Проверить правильность арифметического выражения С++ Проверить правильность арифметического выражения, состоящего из числовых констант, знаков арифметических действий и скобок () и . http://www.cyberforum.ru/cpp-beginners/thread703837.html
C++ разреженная матрица переменной размерности
При компиляции ругается на void Matrix::print() const (100 строчка в matrix.cpp) passing `const Matrix' as `this' argument of `int Matrix::GetElemByXY(int, int)' discards qualifiers Само задание: нужно написать программу в которой реализуется разреженная матрица переменной размерности, ненулевые коэффициенты представлены двусвязным циклическим списком с элементами (x,y,v) – координаты,...
C++ Прога на использование покажчиков
Написати програму, яка здійснює введення у вільному форматі одного цілого числа і його переведення з текстового представлення в значення типу int. Функція getint() повинна повертати значення отриманого числа через параметр або сигналізувати значенням , якщо вхідний потік вичерпаний. Значення EOF повертати через оператор return. Знаки - або +, за якими не йде цифра, функція розуміє як неправильне...
C++ Новичок в Визуал Студио С++ Односвязные списки, Строки, http://www.cyberforum.ru/cpp-beginners/thread703807.html
Здравствуйте, я всю жизнь писал на Delphi7 а тут взялся курсак написать другу в С++ у меня стоит Visual Studio 2010, пишу на Visual С++ в режиме Windows Forms. гуглил. три дня мучался... Делаю односвязный список.. написал код, а сам-то не умею ни строками сишными пользоваться ни указатели объявлять.. в дельфи просто var s: String; и работаешь с ней и все;
C++ Программа с ветвлением Имеются три раствора полезного вещества с концентрациями р1, р2 и р3 каждый и стоимо-стью S1, S2 и S3 соответственно. Можно ли смешать их так, чтобы получить раствор с задан-ной концентрацией р наименьшей стоимости? Указание. Пусть a1, а2, а3 — долевые содержания растворов в смеси. Тогда для получения заданной концентрации р необходимо: р1а1+ р2а2+p3a3 = р. Кроме того, нужно учесть условие... подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
21.11.2012, 01:52     Определить, симметричен ли массив
Вот, постарался как можно проще и с объяснениями. Следующую тему с капслоком даже не открою.
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
#include <iostream>
 
// объявляем функцию, которая проверяет на симметричность
// она принимает в качестве параметров массив и его размер
bool isSymmetric(int *arr, int nArr)
{
    int middle = nArr / 2; // середина. в результате дробная часть отбрасывается
    for (int i = 0; i < middle; i++) // в цикле от 0 до середины массива
    {
        // если значение элемента массива под индексом i не равно значению
        // массива под индексом nArr - 1 - i (-1 добавляется т.к. индексация
        // массива начинается с 0). Т.е. мы двигаемся от начала к середине и
        // сравниваем с элементами, идущими с конца к середине
        if (arr[i] != arr[nArr - 1 - i] )
        {
            return false; // возвращаем ложь (сразу выходим из функции)
        }
    }
    return true; // не было несоответствий, возвращаем истину (массив симметр.)
}
 
int main()
{
    // объявляем массивы
    int a[] = {1, 2, 3, 4, 3, 2, 1}, b[] = {1, 3, 3, 1}, c[] = {1, 2, 2, 2};
    const int nA = sizeof(a) / sizeof(a[0]), // находим кол-во элем. массивов
              nB = sizeof(b) / sizeof(b[0]), // они равны размеру массива,
              nC = sizeof(c) / sizeof(c[0]); // поделенному на размер первого эл
    std::cout<< std::boolalpha // выводим в качестве результата true/false
             << "a: "<< isSymmetric(a, nA)<< std::endl // endl - перевод строки
             << "b: "<< isSymmetric(b, nB)<< std::endl
             << "c: "<< isSymmetric(c, nC)<< std::endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru