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

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

Войти
Регистрация
Восстановить пароль
 
zewer
1116 / 807 / 82
Регистрация: 07.01.2011
Сообщений: 5,930
#1

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

27.02.2012, 01:04. Просмотров 995. Ответов 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, при любом росставе чисел
почему, я не знаю...
прошу помочь, по скок ничего писать не нужно, а только обяснить почему так, и если можно подкинуть версию, как сделать правильно!
Мне действительно нужна ваша помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 01:04     Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет
Посмотрите здесь:

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

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

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

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

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

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

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

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

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

Переменной m присвоить значение 1, если x<y и -1, если x>=y - C++
Составить программу на языке C++ Заданы два числа x и y. Переменной m присвоить значение 1, если x&lt;y и -1, если x&gt;=y. Исходные данные:1)...

Вывести на консоль true, если точка принадлежит заданным областям, и false - в противном случае - C++
Составить программу которая печатает true если точка с координатами (x,y) принадлежит заданным закрашенным (заштрихованным) областям и...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
27.02.2012, 01:41     Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет #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;
    }    
}
zewer
1116 / 807 / 82
Регистрация: 07.01.2011
Сообщений: 5,930
27.02.2012, 01:45  [ТС]     Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет #3
спасибо, помогло
Ответ Создать тему
Опции темы

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