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

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

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

Инкремент переменной - C++

08.09.2013, 14:38. Просмотров 728. Ответов 7
Метки нет (Все метки)

в задании сказано, что пользователь вводит строку и программа выводит ее, но если пользователь вводит еще и цифру, то программа должна вывести строку столько раз, сколько раз была эта программа вызвана до этого, задача со встроенными функциями. моя программа не выводит ничего из встроенной функции. ПОМОГИТЕ !

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
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
inline int Counter(string StRiNg) { 
    static int x = 0;
    while (x != 0) {
        cout << "You write: " << StRiNg << "!!! " << endl;
        x--;}
    
    return x++; }
 
 
int main()
{
    string STRING;
    int SECOND_ARGUMENT = 0;
    int X = 0;
 
    cout << "Enter one string or string and number: " << endl;
    cin >> STRING >> SECOND_ARGUMENT;
 
    if (SECOND_ARGUMENT == 0)
    { cout << " You write: " << STRING << endl;}
    else {Counter (STRING);}
    Counter;
    getch();
 
 
    return X++;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2013, 14:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Инкремент переменной (C++):

Некоректный инкремент переменной цикла for при сравнении элементов массива - C++
Нашёл проблему в коде, но никак не могу догнать, в чём дело. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;Windows.h&gt; ...

Неожиданный результат при выводе значения переменной, несмотря на инкремент - C++
подскажите почему значения a и с начинаются с 1 а не с 2 стоит же &quot;++&quot; int a = 1; void f() { int b = 1; // инициализируется...

Инкремент указателей и как обратиться к "промежуточному" адресу переменной - C++
Доброго времени суток! Пусть указатель указывает на адрес переменной типа int. Переменная типа int занимает 4 байта (пускай она...

a,b и c.Присвоить максимальное из них переменной a,минимальное-переменной c,среднее переменной b - C++
даны произвольные числа a,b и c.Присвоить максимальное из них переменной a,минимальное-переменной c,среднее переменной b.

Инкремент(Декремент) - C++
Есть ли разница,какую употреблять форму:префиксную или постфиксную? Если на экран выводится одно и то же число в префиксной и постфиксной...

Инкремент и преинкремент - C++
Здравствуйте. Я вот решил протестить в чем разница между инкрементом и преинкрементом, и как-то не увидел разницы... В чем же разница? :) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
08.09.2013, 15:22 #2
Почему бы не сделать getline и только потом посмотреть, не была ли введена цифра?
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2013, 16:09 #3
Цитата Сообщение от mihail07 Посмотреть сообщение
пользователь вводит строку и программа выводит ее, но если пользователь вводит еще и цифру
Вот это "ещё", вы как себе представляете? Один ввод или два? Если один, то как понимать "ещё"? Если два, то в первом случае: что вводится при втором вводе?
mihail07
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 3
08.09.2013, 16:20  [ТС] #4
Цитата Сообщение от BuGi Посмотреть сообщение
Почему бы не сделать getline и только потом посмотреть, не была ли введена цифра?
я не работал еще с getline, поэтому и не использовал ее))

Добавлено через 8 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Вот это "ещё", вы как себе представляете? Один ввод или два? Если один, то как понимать "ещё"? Если два, то в первом случае, что вводится при втором вводе?
вот полностью текст задания:

Напишите функцию, которая обычно принимает один аргумент - адрес строки и выводит эту строку один раз. однако, если задан второй аргумент типа int, не равный нулю, то эта функция выводит строку столько раз, сколько было осуществлено вызовов этой функции к моменту ее данного вызова. напишите простую программу для демонстрации этой функции.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2013, 16:39 #5
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
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
inline void Counter(string StRiNg,  int SECOND_ARGUMENT = 0) 
{ 
    static int x = 0;
    if (SECOND_ARGUMENT == 0)
    {
        cout << StRiNg << endl;
        ++x;
        return;
    }
    while (x != 0) 
    {
        cout << "You write: " << StRiNg << "!!! " << endl;
        x--;
    }
}
 
 
int main()
{
    string STRING;
    for (int i = 0; i < 3; ++i)
    {
        cout << "Enter string: " << endl;
        cin >> STRING;
        Counter(STRING);
    }
    cout << "Enter string: " << endl;
    cin >> STRING;
    Counter(STRING, 1);
 
    getch();
    return 0;
}
mihail07
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 3
08.09.2013, 22:05  [ТС] #6
alsav22, спасибо за код, но насколько я понимаю, то х должен увеличиваться при запуске программы, а не в прохождении через цикл, меня интересует как можно сохранить значение х до следующего запуска программы, так как х после завершения программы х снова становится 0!
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
08.09.2013, 22:21 #7
Ты можешь использовать реестр или .ini файлы, но зачем? У тебя ничего об этом в задании не сказано. Да и две переменные нужно, ведь если запустить несколько раз у нулем, а потом с числом -- выведет все правильно, но если еще раз с ненулевым числом, то ничего не выведет, т.к. х==0
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.09.2013, 00:55 #8
Цитата Сообщение от mihail07 Посмотреть сообщение
но насколько я понимаю, то х должен увеличиваться при запуске программы,
Где в задании о запусках программы что-либо сказано.?
Цитата Сообщение от mihail07 Посмотреть сообщение
то эта функция выводит строку столько раз, сколько было осуществлено вызовов этой функции к моменту ее данного вызова.
Зато это было в вашей интерпретации задания, в первом посте:
Цитата Сообщение от mihail07 Посмотреть сообщение
программа должна вывести строку столько раз, сколько раз была эта программа вызвана до этого
Добавлено через 3 минуты
Мой код (вернее, ваш переделанный) под задание, а не под вашу интерпретацию. Чтобы сделать под неё, ответьте на вопросы в 3 посте.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2013, 00:55
Привет! Вот еще темы с ответами:

постфиксный инкремент - C++
class Inkrement { Inkrement(){}; Inkrement &amp;operator++(int) { Inkrement temp = *this; ++*this; return temp; ...

Инкремент указателя - C++
#include &lt;iostream&gt; using namespace std; class Student { public: Student(){A=B=C=2;} int getA(){return A;} ...

Инкремент ссылки - C++
int arr = {....} ; while(arr) // arr ссылка на начало массива то есть на 0 элемент ; { //тело цикла ++arr ;//инкремент } ...

Инкремент в рекурсии - C++
Ребят, что-то не могу врубиться. Задача: используя рекурсию выводить введенный ранее текст в обратном порядке. Вот рабочая версия: ...


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

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

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