Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 10

Ошибка при вводе текста

02.05.2018, 17:20. Показов 1843. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, возник вопрос. Задача - проверить, идёт ли ряд положительных чисел по возрастанию. Проблема в том, что программа не даёт вводить массив, в чём может быть проблема? (Codeblocks)
C++ (Qt)
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
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
int readInt()
{
    int a;
    char s[51];
    int i;
    bool success;
    while(!success)
    {
        fflush(stdin);
        cin.getline(s,50);
        success=true;
        for (i=0;i<strlen(s);i++)
            if (strchr("0123456789",s[i])==NULL)
            {
                success=false;
                cout << "ошибка ввода" << endl;
            }
    }
    a=atoi(s);
    return a;
}
int main()
{
    int N;
    int *arr;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "razmer";
    N=readInt();
    arr = new int[N];
    for (int i = 0; i < N; i++)
        {
    arr[i]=readInt();
    }
    bool flag = true;
    for(int i = 0;i<N-1;i++ ){
            cout << flag << endl;
    if ((arr[i + 1]>arr[i]) || (arr[i]>0)) {
        flag=false;
    break;
        }}
        if (flag == true) {
 
 
            cout << "Verno" << endl;
        }
        else cout << "Ne verno(vozmojno polojit chisla)" << endl;
 
 
    system("pause");
    delete[] arr;
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.05.2018, 17:20
Ответы с готовыми решениями:

Как распознать кодировку текста при вводе из файла?
Имеется файл с текстом, написанный в каком-то текстовом редакторе на каком-то человеческом языке. Программа должна считывать этот...

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл?
void mainmenu() { cout &lt;&lt; &quot;Введи число&quot; &lt;&lt; endl; cin &gt;&gt; choice; if (choice == 1) { cout &lt;&lt; &quot;Hello&quot; &lt;&lt; endl; } ...

Функция, которая при вводе с клавиатуры текста заменяет цифры пробелами
Написал вроде правильно только когда компилятором пользуюсь VisualStudio выдает ошибку не могу понять в чем. Грамотные пользователи...

3
 Аватар для mvngr
225 / 189 / 98
Регистрация: 15.04.2018
Сообщений: 718
02.05.2018, 17:23
Сначала получай строку, а затем ее парси в массив

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    string S = "74 319 432 82 95 0 1";
    vector<int> N;
    int n;
    istringstream ss(S);
 
    while(ss >> n) N.push_back(n);
 
    for(auto i : N)
        cout << i << endl;
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 10
02.05.2018, 17:29  [ТС]
Я пытался сделать свою задачу на основе этой. Она полностью работает. Но в моей массив почему-то не считывается...
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
//Задан числовой массив A[1:m, 1:n]. Составить программу поиска нахождения минимального и
//максимального элементов массива расположенных на главной диагонали с дальнейшей
//переменой местами соответствующих столбцов.
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
 
int readInt()
//ввод целого числа с контролем
{
    int a;
    char s[51];
    int i;
    bool success;
    while(!success)
    {
        fflush(stdin);
        cin.getline(s,50);
        success=true;
        for (i=0;i<strlen(s);i++)
            if (strchr("0123456789",s[i])==NULL)
            {
                success=false;
                cout << "Необходимо ввести целое число!" << endl;
            }
    }
    a=atoi(s);
    return a;
}
int main()
{
    int m,n;//размерность
    int **A;//массив
    int i,j;//счетчики
    int mingd,maxgd;//минимум и максимум
    int jmin,jmax;//номера столбцов
    int mn;//минимальная размерность
    SetConsoleCP(1251);//установка русского шрифта для консоли
    SetConsoleOutputCP(1251);
    cout << "Число строк массива m: ";
    m=readInt();
    cout << "Число столбцов массива n: ";
    n=readInt();
    A=new int*[m+1];//выделение памяти
    for (i=0;i<=m;i++)
        A[i]=new int[n+1];
    cout << "Ввод массива:" << endl;
    for (i=1;i<=m;i++)//цикл ввода массива
        for (j=1;j<=n;j++)//цикл по столбцам
        {
            cout << "A[" << i << "," << j << "]= ";
            A[i][j]=readInt();//ввод
    }
    cout << "Исходный массив" << endl;
    for (i=1;i<=m;i++)//цикл вывода массива
    {
        for (j=1;j<=n;j++)//цикл по столбцам
            cout << A[i][j] << "\t";//вывод элемента
        cout << endl;//перевод строки
    }
    //находим минимальное из m и n
    mn=min(m,n);
    mingd=A[1][1];//начальные значения минимума и максимума
    maxgd=mingd;
    jmin=1;
    jmax=1;
    for (i=1;i<=mn;i++)//поиск максимума и минимума и соответствующих номеров столбцов
    {
        if (A[i][i]>maxgd)//максимум
        {
            maxgd=A[i][i];
            jmax=i;
        }
        if (A[i][i]<mingd)//минимум
        {
            mingd=A[i][i];
            jmin=i;
        }
    }
    cout << "Минимум на главной диагонали: " << mingd << ", столбец " << jmin << endl;
    cout << "Максимум на главной диагонали: " << maxgd << ", столбец " << jmax << endl;
    //перестановка столбцов
    for (i=1;i<=m;i++)
    {
        j=A[i][jmax];
        A[i][jmax]=A[i][jmin];
        A[i][jmin]=j;
    }
    cout << "Преобразованный массив" << endl;
    for (i=1;i<=m;i++)//цикл вывода массива
    {
        for (j=1;j<=n;j++)//цикл по столбцам
            cout << A[i][j] << "\t";//вывод элемента
        cout << endl;//перевод строки
    }
    system("pause");
    return 0;
}
Добавлено через 1 минуту
Препод сказал нельзя с векторами делать
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
03.06.2018, 13:25
White0ff, здравствуйте! вы вообще можете не использовать ни массив, ни вектор. Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
 
    using namespace std;
 
int main() {
    int a, b, n;
    bool flag = true;
    cout << "Enter a number of elements:\n";
    cout << "n = ";
    cin >> n;
    cout << "Enter some elements:\n";
    cin >> a;
    for (int i = 0; i < n - 1; i++) {
        b = a;
        cin >> a;
        if (a <= b)
            flag = false;
    }
    if (flag) cout << "Yes!\n";
    else cout << "No!\n";
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.06.2018, 13:25
Помогаю со студенческими работами здесь

Ошибка при вводе
мне нужно записать числа с файла в список , подскажите что не так выводит последнее лишнее число не пойму откуда оно берется #include...

Ошибка при вводе данных
Перескакивает через ввод поля &quot;Name&quot;. Заранее благодарен void add(){ char S1; char S2; char S3; int i,k; cout...

Ошибка при вводе матрицы.
Здравствуйте, сейчас пишу программу для проверки матрицы на латинский и магический квадрат, мне каждое действие нужно сделать отдельной...

Непонятная ошибка при вводе
Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить количество слов...

Ошибка при вводе числа
Подозреваю, что где-то нужно обнулить переменную rows. Потому что (как показано на скрине) число &quot;45&quot; всегда состоит из первой...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru