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

Почему не работает счетчик в функции? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу, которая удаляет из введенного строки любой необходимый введен с клавиатуры символ. Процесс удаления выделите в отдельную процедуру http://www.cyberforum.ru/cpp-beginners/thread888353.html
Здравствуйте, Уважаемые. Очень срочно нужна Ваша помощь, в решении данной задачи: Написать программу, которая удаляет из введенного строки любой необходимый введен с клавиатуры символ. Процесс удаления выделите в отдельную процедуру.
C++ Заданная последовательность целых чисел. Найти количество чисел, делящихся на 3 и 5 без остатка Здравствуйте, Уважаемые. Очень срочно нужна Ваша помощь, в решении данной задачи: Заданна последовательность целых чисел. Найти количество чисел, делящихся на 3 и 5 без остатка. http://www.cyberforum.ru/cpp-beginners/thread888352.html
В матрице М (N, M) найти сумму элементов четных строк C++
Здравствуйте, Уважаемые. Очень срочно нужна Ваша помощь, в решении данной задачи: В матрице М (N, M) найти сумму элементов четных строк.
Вывести все слова в предложении в которых нет повторяющихся букв C++
Вывести все слова в предложении в которых нет повторяющихся букв. Как это реализовать ? Желательно примеры, заранее спасибо
C++ Програма для диплома http://www.cyberforum.ru/cpp-beginners/thread888345.html
Здраствуйте, как видно по теме мне нужно зделать програму для диплома програма должна находить 2 файлы с одинаковым размером разширением и названием но я даже не представляю как зделать такой поиск =( если вас не затруднит кинуть похожий код или дать сылку где есть статья в каторая раскажут как зделать ету програму и кстате програму буду делать на с++ builder так что если знаете какие компоненты...
C++ random R=random(101)/100.; Это генератор случайных чисел (0;1)? подробнее

Показать сообщение отдельно
System16v
 Аватар для System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
25.03.2015, 17:00     Почему не работает счетчик в функции?
Подскажите пожалуйста.Было задание - "Компьютеры играют все возрастающую роль в
образовании. Напишите программу, которая поможет ученикам младших классов
выучить таблицу умножения. Используйте rand для выработки двух
положительных одноразрядных целых чисел. Программа должна печатать вопросы типа Сколько будет 6*7?
Затем учащийся печатает ответ. Ваша программа проверяет этот ответ. Если он
правильный, напечатайте «Очень хорошо!» и затем задайте следующий вопрос
на умножение. Если ответ неправильный, напечатайте «Нет. Повторите,
пожалуйста, снова» и затем задавайте тот же самый вопрос повторно до получения
правильного ответа."

Потом нужно было модифицировать код,что выдавались разные ответы при помощи оператора switch,сделал. Потом было задание что программа подсчитывала количество правильных ответов и не правильных,и если соотношение ответов было менее 0.75 - выдавала сообщение что нужно "подучиться". Никак не могу реализовать. Не пойму почему,но счетчик нифига не считает.Что не так я делаю?Вот код,счетчик не изменяется ,т.е. у него всегда значения i и j которые заданы по умолчанию
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <cstdlib>
#include <string>
#include <math>
#include <iomanip>
 
using namespace std;
 
int func(void);
 
int main()
{
        func();
        system("pause");
        return 0;
}
int func(void)
{
  srand(time(0));
  int x,y,z=0;
  double i=0,j=1;
  int c,d;
  string a="da";
  x=1+rand()%20;
  y=1+rand()%20;
  cout << "Skolko bydet - " << x << " * " << y << " ? "<< endl;
  cin >>z;
  if(x*y==z)
  {
  c=rand()%4+1;
  switch(c)
  {
    case 1:
    cout << "Ochen horosho!"<<endl;
    i++;
    break;
    case 2:
    cout << "Pravilno!"<<endl;
    i++;
    break;
    case 3:
    cout << "Da!"<<endl;
    i++;
    break;
    case 4:
    i++;
    cout << "Master!"<<endl;
    break;
  }
    cout << "Probyem eshe? ";
    cin >>a;
  if(a=="da")
  return func();
  else
  {
  cout << "Vi pravilno otvetili: " << i <<endl;
  cout << "Vi ne pravilno otvetili: " << j <<endl;
  if(i/j<=0.75)
  cout << "Idite ychites!"<<endl;
  else
  cout << "Neploho!"<<endl;
  return 0;
  }
}
  else
  {
  while(x*y!=z)
  {
  d=rand()%4+1;
  switch(d)
  {
    case 1:
    cout << "Schitai lychshe!"<<endl;
    j++;
    break;
    case 2:
    cout << "Pereschitivai!"<<endl;
    j++;
    break;
    case 3:
    cout << "Ne pravilno!"<<endl;
    j++;
    break;
    case 4:
    cout << "Opyat ne verno!"<<endl;
    j++;
    break;
  }
  cin >> z;
  }
  cout << "Ny nakotecto!"<<endl;
  cout << "Probyem eshe?";
  cin >>a;
  if(a=="da")
  return func();
  else
  {
  cout << "Vi pravilno otvetili: " << i <<endl;
  cout << "Vi ne pravilno otvetili: " << j <<endl;
  if(i/j<=0.75)
  cout << "Idite ychites!"<<endl;
  else
  cout << "Neploho!"<<endl;
  return 0;
  }
  }
}
Пытался i и j в разные места ставить - результат не меняется

Добавлено через 7 минут
изменил функцию воид на дабл,т.е. вот так
C++
1
2
3
4
5
6
7
double func(double i=0,double j=1);
int main()
{
}
double func(double i,double j)
{
}
Стал j - считает правильно вроде бы,а i=1 становится и все , ну что за фигня
 
Текущее время: 10:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru