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

Почему выводятся все ошибки, а не одна? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ На основе двух массивов сформировать третий http://www.cyberforum.ru/cpp-beginners/thread1305131.html
Здравствуйте уважаемые программисты, мне завтра сдавать задание, а я все никак не могу разобраться, помогите кто чем может :( Задание На основе исходных целочисленных массивов Х и Y сформировать массив C из расстояний между точками на плоскости, координаты которых являются элементами массивов X и Y –: (x1, y1),..., (xn, yn) (n ≤ 30, m=n). найти три таких точки, которые равноудалены от...
C++ Задача на сортировку слиянием Добрый день! Требуется решить такую вот задачу: В супермаркете решили оптимизировать показ рекламы. Известно расписание прихода и ухода покупателей (два целых числа). Каждому покупателю необходимо показать минимум 2 рекламы. Рекламу можно транслировать только в целочисленные моменты времени. Покупатель может видеть рекламу от момента прихода до момента ухода из магазина. В каждый момент... http://www.cyberforum.ru/cpp-beginners/thread1305120.html
C++ Удалить элементы массива, которые больше среднего арифетического
Нужно удалить элементы массива, которые больше среднего арифметического. Поискал на форуме - понял, что элементы из массива удалить нельзя. Массив статический. Всякие операторы, которые делают это автоматически, использовать нельзя. Решил создать новый массив из элементов, которые меньше среднего арифметического. Но в результате не выдается итоговый(новый)массив. В чем ошибка? И вообще, правильно...
C++ Не работает подсчет символов
В учебнике Керна дается такой пример для подсчета символов. В результате в консоли ничего не подсчитывается. #include "stdafx.h" #include <stdio.h> void main() { long nc; nc = 0; while (getchar() != EOF)
C++ Ошибка при записи в файл через библиотеку io.h http://www.cyberforum.ru/cpp-beginners/thread1305070.html
Приветствую всех! Пишу программу, в которой необходимо записывать информацию в файл. Для этого использовал функцию _write из библиотеки io.h. Работает она, вроде, нормально, но в случае, если нужно записать число из диапазона от 2560 до 2816, то функция начинает себя странно вести, а именно накидывает лишний байт. К примеру, записываю я тип int, и вместо 4 положенный байт она записывает 5,...
C++ Как экранировать слеш для char? Привет всем.. Подскажите как сравнить значение char со слешем? Вот так не работает( char *buf = new char ; if (buf == '\') i++; else k++; и так char *buf = new char ; подробнее

Показать сообщение отдельно
Sony D
0 / 0 / 0
Регистрация: 27.09.2014
Сообщений: 8
19.11.2014, 17:08     Почему выводятся все ошибки, а не одна?
Вводим в "размер массива" отрицательное число. Получаем сразу все ошибки(отрицательное значение, слишком маленькое/большое..), а не одну ошибку. Вот код всей программы

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <iostream>
#include <iomanip>
#include <ctime>
 
using namespace std;
 
void bubbleSort(int *, int);
 
int main()
{
    setlocale(LC_ALL, "Rus");
    srand(time(NULL));
    
    int size_array;
    
    int choise;
    cout<<"Выберите один из методов:\n1. Вручную вводить числа массива.\n2. Программа случайно выведет числа массива.\n";
    cin>>choise;
    
    try
    {
        if (choise == 1)
        {
            cout<<"Вы выбрали вручной ввод.\n";
            cout<<"Размер массива:";
            cin>>size_array;
            if (size_array<0)
            {
                throw 1;
            }
            int *arr = new int[size_array];
            cout<<"Вводите числа:\n";
            for (int counter=0; counter<size_array; counter++)
            {
                cin>>arr[counter];
            }
            cout<<"Ваш массив:\n";
            for (int counter = 0; counter<size_array; counter++)
            {
                cout<<setw(2)<<arr[counter]<<" ";
            }
            bubbleSort(arr, size_array);
        }
    
        if (choise == 2)
        {
            cout<<"Вы выбрали метод случайного ввода чисел.\n";
            cout<<"Размер массива:";
            cin>>size_array;
            if (size_array<0)
            {
                throw 1;
            }
            int max;
            cout<<"Введите максимальное значение случайного числа: ";
            cin>>max;
            int min;
            cout<<"Введите минимальное значение случайного числа: ";
            cin>>min;
            if (min>max)
            {
                throw 2;
            }
            if (max>2147483647)
            {
                throw 3;
            }
            if (min<-2147483648)
            {
                throw 4;
            }
            int *arr = new int[size_array];
            for (int counter=0; counter<size_array; counter++)
            {
                arr[counter] = rand()%(max-min)+min;
                cout<<setw(2)<<arr[counter]<<" ";
            }
            cout<<"\n\n";
            bubbleSort(arr, size_array);
        }
    
        else 
        {
            cout<<"Такого метода не существует\n";
        }
        
        system("pause");
        return 0;
    }
 
    catch (int i)
    {
        switch (i)
        {
            case 1:
                cout<<"Ошибка! Отрицательное значения количества элементов массива.\n";
            case 2:
                cout<<"Ошибка! Минимальное значение больше максимального.\n";
            case 3:
                cout<<"Ошибка! Слишком большое максимальное значение.\n";
            case 4:
                cout<<"Ошибка! Слишком маленькое минимальное значение.\n";
        }
    }
 
    system("pause");
}
 
void bubbleSort(int *arrPtr, int lenght_array)
{
    int x;
    bool exit = false;
 
    while (!exit)
    {
        exit = true;
        for (int int_counter=0; int_counter<(lenght_array-1); int_counter++)
        {
            if (arrPtr[int_counter]>arrPtr[int_counter+1])
            {
                x = arrPtr[int_counter];
                arrPtr[int_counter] = arrPtr[int_counter+1];
                arrPtr[int_counter+1] = x;
                exit = false;
            }
        }
    }
 
    cout<<"Отсортированный массив:\n";
 
    for (int counter=0; counter<lenght_array; counter++)
    {
        cout<<setw(2)<<arrPtr[counter]<<" ";
    }
    cout<<"\n";
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru