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

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

Войти
Регистрация
Восстановить пароль
 
Merf1n
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 15
#1

Прогнать цикл в main до конца - C++

30.11.2013, 16:37. Просмотров 466. Ответов 10
Метки нет (Все метки)

Программа не может прогнать цикл, в main, до конца. Помогите салаге разобраться
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
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <ctime>
#include <conio.h>
using namespace std;
int ProcessInput()// Обработка ввода пользователя
{bool vv=false;
  int   x;
  
  setlocale( LC_ALL, "Russian" );
  while (!vv)
  {
    cout<<"Введите число вопросов от 5 до 10"<<endl; cin>>x;
    if (x<5 || x>10) cout<<"Вводи заново, ведь сказано от 5 до 10"<<endl;
     if (x>=5 && x<=10)
         vv=true;
  }
 return x;
}
int ProcessOtv()//Обработка ответа пользователя
{
    bool cc=false;
    int j;
    setlocale( LC_ALL, "Russian" );
    while (!cc)
    {
        cout<<"Введи ответ"<<endl;
        cin>>j;
        if(j<1 || j>3) cout<<"Вводи заново"<<endl;
        if(j>=1 && j<=3) cc=true;
    }
    return j;
}
int random ()
{
    int v;
    v=rand()%10+1;
    srand(time(NULL));
    return v;
}
int main ()
{
    
    int i=1,j,v,x,pr=0,np=0;
x=ProcessInput();
    setlocale( LC_ALL, "Russian" );
    
        char* vopotv [11] [10]; 
    vopotv [1] [1] = "Вопрос 1";
    vopotv [1] [2] = "Вопрос 2";
    vopotv [1] [3] = "Вопрос 3";
    vopotv [1] [4] = "Вопрос 4";
    vopotv [1] [5] = "Вопрос 5";
    vopotv [1] [6] = "Вопрос 6";
    vopotv [1] [7] = "Вопрос 7";
    vopotv [1] [8] = "Вопрос 8";
    vopotv [1] [9] = "Вопрос 9";
    vopotv [1] [10] = "Вопрос 10";
    vopotv [2] [1] = "Ответ 1";
    vopotv [2] [2] = "Ответ 2";
    vopotv [2] [3] = "Ответ 3";
    vopotv [3] [1] = "Ответ 1";
    vopotv [3] [2] = "Ответ 2";
    vopotv [3] [3] = "Ответ 3";
    vopotv [4] [1] = "Ответ 1";
    vopotv [4] [2] = "Ответ 2";
    vopotv [4] [3] = "Ответ 3";
    vopotv [5] [1] = "Ответ 1";
    vopotv [5] [2] = "Ответ 2";
    vopotv [5] [3] = "Ответ 3";
    vopotv [6] [1] = "Ответ 1";
    vopotv [6] [2] = "Ответ 2";
    vopotv [6] [3] = "Ответ 3";
    vopotv [7] [1] = "Ответ 1";
    vopotv [7] [2] = "Ответ 2";
    vopotv [7] [3] = "Ответ 3";
    vopotv [8] [1] = "Ответ 1";
    vopotv [8] [2] = "Ответ 2";
    vopotv [8] [3] = "Ответ 3";
    vopotv [9] [1] = "Ответ 1";
    vopotv [9] [2] = "Ответ 2";
    vopotv [9] [3] = "Ответ 3";
    vopotv [10] [1] = "Ответ 1";
    vopotv [10] [2] = "Ответ 2";
    vopotv [10] [3] = "Ответ 3";
    
    while (!(i==x))
    {i=i+1;
    v=random();
    cout<<vopotv[1][v]<<endl;
    cout<<"1"<<' '<<vopotv[v][1]<<endl;
    cout<<"2"<<' '<<vopotv[v][2]<<endl;
    cout<<"3"<<' '<<vopotv[v][3]<<endl;
    j=ProcessOtv();
    if (v==1 && j==2) pr++;
    else np++;
    if (v==2 && j==1) pr++;
    else np++;
    if (v==3 && j==1) pr++;
    else np++;
    if (v==4 && j==3) pr++;
    else np++;
    if (v==5 && j==3) pr++;
    else np++;
    if (v==6 && j==1) pr++;
    else np++;
    if (v==7 && j==1) pr++;
    else np++;
    if (v==8 && j==2) pr++;
    else np++;
    if (v==9 && j==1) pr++;
    else np++;
    if (v==10 && j==3) pr++; 
        else np++;
    return i;
    }
    cout<<"Правильных"<<' '<<pr<<endl;
    cout<<"Неправильных"<<' '<<np<<endl;
    cout<<"Спасибо"<<endl;
return 0;   
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 16:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прогнать цикл в main до конца (C++):

Возможно ли без использования цикла получить символ с конца нулевого аргумента main()? - C++
Использую имя файла как аргумент для предварительной настройки программы. Хочу без помощи поиска в цикле получить пред-пред-пред последний...

Почему цикл for не работает не до конца? - C++
Нужно было найти кол-во одинаковых элементов в строках матрицы . Я сделал копию исходного массива, и короче я начинал сравнение тогда и...

Факториал. Использовать только одну функцию main и только один цикл - C++
задача вообщем простая, но условия осложняют: \sum_{i=0}^{n-1} {x}_{i}/i! использовать только одну функцию main и только один...

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

нужно прогнать код через С++ Сode Bloks - C++
если не трудно,прогоните код,у меня вылазиет какая-то ошибка,что-то не так с компилятором,не могу понять что это,гуглил,не помогает.нужен...

Какой новые синтаксис: int main() VS. void main() - C++
Долго не занимался программированием , но тут жена решила поучится , да и сам повторить ,так вот столкнулся с такой темой на 4pda может...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
30.11.2013, 16:46 #2
Ну если кто и решит разбираться в вашем коде, то только единицы(из-за той "красоты", что вы выложили выше). Привел код к нормальному виду(пока без исправлений):
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 <math.h>
#include <cstdlib>
#include <ctime>
#include <conio.h>
 
using namespace std;
 
int ProcessInput()// Обработка ввода пользователя
{
    bool vv = false;
    int x;
 
    setlocale( LC_ALL, "Russian" );
 
    while (!vv)
    {
        cout<<"Введите число вопросов от 5 до 10"<<endl; 
        cin>>x;
        if (x<5 || x>10) cout<<"Вводи заново, ведь сказано от 5 до 10"<<endl;
        if (x>=5 && x<=10)
        vv=true;
    }
    
    return x;
}
 
int ProcessOtv()//Обработка ответа пользователя
{
    bool cc=false;
    int j;
    setlocale( LC_ALL, "Russian" );
 
    while (!cc)
    {
        cout<<"Введи ответ"<<endl;
        cin>>j;
 
        if(j<1 || j>3) cout<<"Вводи заново"<<endl;
        if(j>=1 && j<=3) cc=true;
    }
    return j;
}
 
int random ()
{
    int v;
 
    v = rand() % 10 + 1;
 
    srand(time(NULL));
    return v;
}
 
int main ()
{
 
    int i=1,j,v,x,pr=0,np=0;
    x = ProcessInput();
    setlocale( LC_ALL, "Russian" );
 
    char* vopotv [11] [10]; 
    vopotv [1] [1] = "Вопрос 1";
    vopotv [1] [2] = "Вопрос 2";
    vopotv [1] [3] = "Вопрос 3";
    vopotv [1] [4] = "Вопрос 4";
    vopotv [1] [5] = "Вопрос 5";
    vopotv [1] [6] = "Вопрос 6";
    vopotv [1] [7] = "Вопрос 7";
    vopotv [1] [8] = "Вопрос 8";
    vopotv [1] [9] = "Вопрос 9";
    vopotv [1] [10] = "Вопрос 10";
    vopotv [2] [1] = "Ответ 1";
    vopotv [2] [2] = "Ответ 2";
    vopotv [2] [3] = "Ответ 3";
    vopotv [3] [1] = "Ответ 1";
    vopotv [3] [2] = "Ответ 2";
    vopotv [3] [3] = "Ответ 3";
    vopotv [4] [1] = "Ответ 1";
    vopotv [4] [2] = "Ответ 2";
    vopotv [4] [3] = "Ответ 3";
    vopotv [5] [1] = "Ответ 1";
    vopotv [5] [2] = "Ответ 2";
    vopotv [5] [3] = "Ответ 3";
    vopotv [6] [1] = "Ответ 1";
    vopotv [6] [2] = "Ответ 2";
    vopotv [6] [3] = "Ответ 3";
    vopotv [7] [1] = "Ответ 1";
    vopotv [7] [2] = "Ответ 2";
    vopotv [7] [3] = "Ответ 3";
    vopotv [8] [1] = "Ответ 1";
    vopotv [8] [2] = "Ответ 2";
    vopotv [8] [3] = "Ответ 3";
    vopotv [9] [1] = "Ответ 1";
    vopotv [9] [2] = "Ответ 2";
    vopotv [9] [3] = "Ответ 3";
    vopotv [10] [1] = "Ответ 1";
    vopotv [10] [2] = "Ответ 2";
    vopotv [10] [3] = "Ответ 3";
 
    while (!(i == x))
    {
        i=i+1;
        v=random();
        cout<<vopotv[1][v]<<endl;
        cout<<"1"<<' '<<vopotv[v][1]<<endl;
        cout<<"2"<<' '<<vopotv[v][2]<<endl;
        cout<<"3"<<' '<<vopotv[v][3]<<endl;
        j=ProcessOtv();
        if (v==1 && j==2) pr++;
        else np++;
        if (v==2 && j==1) pr++;
        else np++;
        if (v==3 && j==1) pr++;
        else np++;
        if (v==4 && j==3) pr++;
        else np++;
        if (v==5 && j==3) pr++;
        else np++;
        if (v==6 && j==1) pr++;
        else np++;
        if (v==7 && j==1) pr++;
        else np++;
        if (v==8 && j==2) pr++;
        else np++;
        if (v==9 && j==1) pr++;
        else np++;
        if (v==10 && j==3) pr++; 
        else np++;
        return i;
    }
    cout<<"Правильных" <<' '<<pr<<endl;
    cout<<"Неправильных" <<' '<<np<<endl;
    cout<<"Спасибо" << endl;
    return 0;   
}
1
Merf1n
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 15
30.11.2013, 16:54  [ТС] #3
Забыл, спасибо
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
30.11.2013, 16:54 #4
Merf1n, идет переполнение массива vopotv[11][10]. Вы присваиваете строку "Вопрос 10" несуществующему элементу, т.к. у вас 11 строк и 10 столбцов в массиве и нумерация строк идет от 0 и до 11 - 1, столбцов от 0 и до 10 - 1.
1
Merf1n
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 15
30.11.2013, 17:00  [ТС] #5
Цитата Сообщение от Ryuk Посмотреть сообщение
Merf1n, идет переполнение массива vopotv[11][10]. Вы присваиваете строку "Вопрос 10" несуществующему элементу, т.к. у вас 11 строк и 10 столбцов в массиве и нумерация строк идет от 0 и до 11 - 1, столбцов от 0 и до 10 - 1.
Спасибо. Вот где ошибка в цикле? Я уже перепробовал все, что знаю, а знания с++ у меня минимальные, к сожалению
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
30.11.2013, 17:08 #6
Merf1n, ну про цикл я не знаю, просто ищу ошибки)
0
FAQEnD
43 / 43 / 1
Регистрация: 15.12.2012
Сообщений: 88
30.11.2013, 17:10 #7
Через F10 прогони программу и узнай где ошибка
1
Ryuk
30.11.2013, 17:11
  #8

Не по теме:

не то

0
Merf1n
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 15
30.11.2013, 17:18  [ТС] #9
Ryuk, это всего лишь шаблон, когда пойму ошибку и доделаю программу их место займут реальные вопросы и ответы
0
FAQEnD
43 / 43 / 1
Регистрация: 15.12.2012
Сообщений: 88
30.11.2013, 17:20 #10
Цитата Сообщение от Merf1n Посмотреть сообщение
Ryuk, это всего лишь шаблон, когда пойму ошибку и доделаю программу их место займут реальные вопросы и ответы
Ошибка в том, что в конце основного цикла у тебя стоит
C++
1
return i;
1
Merf1n
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 15
30.11.2013, 17:24  [ТС] #11
FAQEnD, Спасибо огромное Просто раньше он требовал return, не знаю почему.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 17:24
Привет! Вот еще темы с ответами:

Какая разница между int main и void main? - C++
какая разница между (int main) i (void main)?

Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;} - C++
Препод мне доказывает, что void в main`е писать неправильно, а объяснить не может почему. Кто расскажет?)

Void main or Int main - C++
Как правильнее использовать void или int в main? И обязательно возвращать return 0 в конце программы?

От void main() к int main() - C++
Ребят, недавно начал обучаться программированию на cpp на Windows. Перешёл на Mac ( Да, знаю, что никто его не любит и не уважает здесь, но...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.11.2013, 17:24
Ответ Создать тему
Опции темы

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