02.07.2015, 14:41. Просмотров 261. Ответов 2
Пытаюсь сделать программу, которая достает из текстового файла последовательности, и предлагает их решить. Если пользователь не правильно продляет последовательность, то прога предлагает исправить пять раз.
Числа должны браться из текстового документа так:
3 123 4
5 43210 -1
Где:
Первое число - длинна последовательности.
Второе - последовательность
третье - ответ.
Я, пытался написать, но не работает. Можете исправить?
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
| #include <iostream>
#include <random>//подключаем эту библиотеку для рандомчика
#include <time.h>// очень пригодится нам
#include <conio.h>// для _getch()
using namespace std;
int errors = 0;
int good = 0;
struct Sequence
{
int Numb1;
int Numb2;
int Numb3;
int Result;
};
Sequence err[5];
ifstream fin("data.txt");
if (fin)
{
fin >> n;
fin >> numb1 >> num2 >> numb3;
fin >> result;
}
}
int resultuser = 0; // значение которое ввёл пользователь
cin >> resultuser; // Непосредственно ввод значения
if (result == resultuser)
{
good++;
}
else
{
errors++;
err[errors - 1].Numb1 = numb1;
err[errors - 1].Numb2 = numb2;
err[errors - 1].Numb3 = numb3;
err[errors - 1].Result = result;
}
}
void tryerror() // Просьба ввести ошибки заново
{
if (errors == 0)
cout << "Красавчик, ни одной ошибки!";
else
{
cout << "Тут ты допустил ошибку. Исправь:" << endl;
int resultuser = 0;
int falsewrite = 0;
for (int i(0); i < errors; i++)
{
do
{
cout << err[i].Numb1 << " " << err[i].Numb2 << " " << err[i].Numb3 << " ";
cin >> resultuser;
if (resultuser != err[i].Result)
{
falsewrite++;
}
} while ((falsewrite != 5) && (resultuser != err[i].Result));
if (resultuser == err[i].Result)
{
cout << "Ошибка исправлена! Я в тебя верил! С:" << endl;;
resultuser = 0;
falsewrite = 0;
}
else
{
cout << "Господи, сколько можно!? Не правильно! Верный ответ: " << err[i].Result << endl;;
resultuser = 0;
falsewrite = 0;
}
}
}
}
int main()
{
setlocale(0, "Russian");
for (int i(0); i < 5; i++)
{
Generation();
}
system("cls");
tryerror();
_getch();// функция ждёт нажатия любой клавиши, и возвращает её код для использования функции требуется библиотека <conio.h>
return 0;
} |
|