Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
zewer
1380 / 1069 / 113
Регистрация: 07.01.2011
Сообщений: 7,003
Завершенные тесты: 1
#1

Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет - C++

27.02.2012, 01:04. Просмотров 1035. Ответов 2
Метки нет (Все метки)

Условие задачи:
Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, и значение false если нет.

Код программи:
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
#include "iostream"
 
using namespace std; 
 
//Змiннiй k логiчного типу присвоїти значення true в тому  випадку,
//якщо масив n цiлих чисел впорядкований по зростанню,
//i  значення false в iншому випадку.
void main ()
{
    setlocale (LC_ALL,"Ukrainian");
    bool k = true;
    int n;
    cout << "Введiть розмiр масиву\n";
    cin >> n;
    int *ar;
    ar = new int[n];
    //////////////////
    cout << "Заповнiть масив\n";
    for (int i = 0; i < n; i++)
    {
        cout << i << " елемент: ";
        cin >> ar[i];
        cout << "\n";
    }
    /////////////////
    for (int i = 0; i < n; i++)
    {
        if (ar[i] > ar[i++])
            k = false;
        if (k == false)
            break;
    }
    if (k == false)
        cout << "Масив не впорядкований по зростанню \n";
    else
    {
        cout << "Масив впорядкований по зростанню \n";
    }
    delete ar;
}
В чем проблема:
прога смотрит на
C++
1
2
if (ar[i] > ar[i++])
k = false;
и надает значение true, при любом росставе чисел
почему, я не знаю...
прошу помочь, по скок ничего писать не нужно, а только обяснить почему так, и если можно подкинуть версию, как сделать правильно!
Мне действительно нужна ваша помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 01:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет (C++):

Создать функцию Chet(k) логического типа,возвращающую True , если целый параметр К является чётным и False в противном случае - C++
Создать функцию Chet(k) логического типа,возвращающую True , если целый параметр К является чётным и False в противном случае. С помощью...

Переменной t присвоить значение true если в массиве x нет нулевых элементов - C++
Ребят, помогите дописать код как написать условие для проверки есть нет 0 элементов я знаю, а вот чередование положителдьных и...

Программа, печатающая значение true, если указанное высказывание является истинным, и false в противном случае - C++
Составить программу,печатующую значение true,если указанное высказывание является истинным,и false -в противном случаею. Величина z...

Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и false - в противном случае. - C++
Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и false - в противном случае. Данная...

Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и false - в противном случае. - C++
Помогите,пожалуйста,решить.... Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и...

Составить линейную программу,печатающую значение true , если указанное высказывание является истинным,и false в противном случае - C++
Составить линейную программу,печатающую значение true , если указанное высказывание является истинным,и false—в противном случае: Сумма...

2
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
27.02.2012, 01:41 #2
Цитата Сообщение от zewer Посмотреть сообщение
void main ()
C++
1
int main()
Цитата Сообщение от zewer Посмотреть сообщение
delete ar;
C++
1
delete[] ar;
Цитата Сообщение от zewer Посмотреть сообщение
и надает значение true, при любом росставе чисел
почему, я не знаю...
Потому что логика у вас неверная
C++
1
if (ar[i] > ar[i++])
это сравнение элемента с самим собой, почитайте о том, как работает постинкремент(который здесь кстати говоря не нужен, увеличением значения счётчика у вас занимается цикл for). Правильный вариант
C++
1
2
3
4
5
6
7
8
for (int i = 1; i < n; i++)
{
    if (ar[i-1] > ar[i]) // сравниваем предыдущий элемент с текущим
    {
        k = false;
        break;
    }    
}
1
zewer
1380 / 1069 / 113
Регистрация: 07.01.2011
Сообщений: 7,003
Завершенные тесты: 1
27.02.2012, 01:45  [ТС] #3
спасибо, помогло
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 01:45
Привет! Вот еще темы с ответами:

Массив: Переменной Х присвоить 1, если элементы массива упорядочены по возрастанию, 0 - в противном случае. - C++
Переменной Х присвоить 1, если элементы массива В(40) образуют возрастающую последовательность и значение 0 в противном случае.

Переменной R присвоить значение 1, если длина вектора А больше длины вектора В, и значение 0 в противном случае - C++
Условие задачи: переменной R присвоить значение 1, если длина вектора А больше длины вектора В, и значение 0 в противном случае. Исходные...

Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B - C++
Даны векторы A, B, C, у каждого из которых есть хотя бы одна отрицатель- ная компонента. Символьной переменной L присвоить значение true,...

Написать логическую функцию, которая возвращает true, если сумма чисел - положительное число, и false в обратном случае. - C++
Даны два целых числа. Написать логическую функцию, которая возвращает true, если сумма чисел - положительное число, и false в обратном...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.