Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.01.2019
Сообщений: 2
1

Cin ломает программу

13.01.2019, 14:43. Показов 1160. Ответов 3
Метки нет (Все метки)

только недавно начал изучать c++. решил создать генератор чисел от 1 до 3, подсчитывающий их количество после n проверок.
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    
    int q,w,e,x,k,n;
    float n;
    cout<<"vvedite kol-vo proverok"<<endl;
    cin>>n; 
    for (int i=1;i<n;i++)
    {
     x=1+rand()%3;
     if (x==1)
     q+=1;
     if (x==2)
     w+=1;
     if (x==3)
     e+=1;  
    }
    cout <<q<<" "<<w<<" "<<e<<endl;
 
    system("pause");
}

при выводе получается следующее:
Кликните здесь для просмотра всего текста
Cin ломает программу

но при удалении строки cin>>n и задании n конкретного значения работает все, как нужно
Кликните здесь для просмотра всего текста
Cin ломает программу

В чём проблема?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2019, 14:43
Ответы с готовыми решениями:

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые...

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная &quot;защита от дурака&quot; на ввод....

Объясните пожалуйста как работают cin.good(), cin.sync(), cin.clear()
Такая проблема: сдаю в вуза лабораторные по программированию, писал все сам, до этого c++ не...

Мусорщик ломает программу
Добрый вечер! Сделал трейнер для одной игры. Всё работает нормально, но через несколько минут...

3
445 / 331 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
13.01.2019, 18:58 2
Лучший ответ Сообщение было отмечено Dubster как решение

Решение

Цитата Сообщение от Dubster Посмотреть сообщение
только недавно начал изучать c++. решил создать генератор чисел от 1 до 3, подсчитывающий их количество после n проверок.
Ваш код не компилируется в VS 2019

Исправил выведенные ошибки, но код не тестил:

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main() {
 
  int q, w, e, x, n;
 
  q = 0;
  w = 0;
  e = 0;
 
  cout << "vvedite kol-vo proverok" << endl;
  cin >> n;
  for (int i = 1; i < n; i++) {
    x = 1 + rand() % 3;
    if (x == 1)
      q += 1;
    if (x == 2)
      w += 1;
    if (x == 3)
      e += 1;
  }
  cout << q << " " << w << " " << e << endl;
 
  system("pause");
}
1
0 / 0 / 0
Регистрация: 13.01.2019
Сообщений: 2
15.01.2019, 21:23  [ТС] 3
ReDoX, Спасибо, помогло. но хотелось бы узнать, почему все-таки выводило такие большие числа
0
445 / 331 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
15.01.2019, 21:30 4
Цитата Сообщение от Dubster Посмотреть сообщение
ReDoX, Спасибо, помогло. но хотелось бы узнать, почему все-таки выводило такие большие числа
Создайте массив из 10 элементов и попытайтесь вывести его:

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
using namespace std;
 
int main() {
  int a[10];
 
  for (int i = 0; i < 10; ++i)
    cout << a[i] << ' ';
}
Отсюда и большие числа
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2019, 21:30

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть...

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с...

Объясните работу методов cin.getline и cin.ignore
Фрагмент программы ниже. Что делают cin.getline и cin.ignore (12-13 строки) void...

Для чего в код вводится cin.ignore после того, как cin>> уже сработало?
Доброго времени суток! Просматриваю простой код. Вводится строка типа string: фунты и дюймы Затем...

Объект cin и его метод cin.get()
Вот код программы: #include &lt;iostream.h&gt; #pragma hdrstop ...

Проблема с cin.ignore() и cin.clear()
Есть проблема. Добавлено через 11 минут // ConsoleApplication6.cpp: определяет точку входа...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru