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

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

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

не работает функция-счётчик - C++

13.12.2012, 19:50. Просмотров 553. Ответов 9
Метки нет (Все метки)

Функция должна возвращать целое значение, уменьшающееся на 1 при каждом вызове. Начальное значение равно 10
C++
1
2
3
4
5
6
7
8
#include "stdafx.h"
int main()
{
    static int a=10;
    a--;
    printf("%d \n",a);
    return a;
}
При первом запуске на экран выводит 9,но при повторном запуске 8 уже не пишет,а всё также остаётся 9,почему так происходит?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 19:50     не работает функция-счётчик
Посмотрите здесь:

Не работает счётчик - C++
Здравствуйте. Подскажите пожалуйста почему не работает счётчик? уже всю голову сломал :cry: Выдаёт всегда значение 1, т.е видит только...

Не работает счётчик, изменяющий 2 переменных - C++
Собственно не работает второй счётчик, находящийся в функции P, а точнее под его командованием не работает переменная count. Если разнести...

вопрос к спецам: почему функция fputc при работе не устанавливает счётчик файла в конец? - C++
Друзья! То есть написана программка. С клавы вводится ОДИН символ и он запихивается в файл. А потом этот файл с помощью функции fread...

Может ли переменная X использоваться как счётчик в цикле, в теле которого вычисляется заданная функция? - C++
Может ли переменная х быть параметром (управляющей переменной) в операторе цикла с параметром если в цикле вычисляется функция y=f(x) при 0...

Не работает функция - C++
// Example program #include <iostream> #include <string> #include <cmath> using namespace std; int main() { float x=0.2; ...

Не работает функция - C++
Не работает функция write класса Losers. Вызов происходит в 60-й строчке. #include <iostream> #include <string> #include <iomanip>...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.12.2012, 19:53     не работает функция-счётчик #2
Потому что main это главная функция, с ней так не прокатывает.
DarkSkazochnik
3 / 3 / 0
Регистрация: 17.11.2012
Сообщений: 39
13.12.2012, 19:54     не работает функция-счётчик #3
Вам нужно просто организовать цикл. Сейчас у вас программа работает так:

1) а получает значение 10
2) а уменьшается на 1
3) выводите а на экран
4) возвращаете значение а в функцию.

Решение:

C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
int main()
{
   static int a;
 
   for (a = 10; a > 0; a--)
   {
      printf("%d \n",a);
   }
   return a;
}
Ну а вообще да, желательно бы вместо int main использовать void main (в таком случае уберите return), всё-таки тело программы, как никак...
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.12.2012, 19:55     не работает функция-счётчик #4
marina11 не путайте, обычную функцию и главную функцию, какое у вас задание?
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,727
13.12.2012, 20:01     не работает функция-счётчик #5
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
void main (в таком случае уберите return),
Ща насоветуешь
Цитата Сообщение от marina11 Посмотреть сообщение
При первом запуске на экран выводит 9,но при повторном запуске 8 уже не пишет,а всё также остаётся 9,почему так происходит?
потому что
ты запускаешь программу
система выдает ей память
программа инициализирует
C++
1
static int a=10;
потом уменьшает на единицу и выводит на экран
потом заканчивает работу
система забирает всю память что отдала и очищает её
и при следующем запуске начинается все заного
система ничего про твой static не знает
static действует только в пределах программы

если тебе нужно сохранять значения (это типа триал версия?)
то сохраняй в файл или в реестр
marina11
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 84
13.12.2012, 20:37  [ТС]     не работает функция-счётчик #6
Цитата Сообщение от David Sylva Посмотреть сообщение
marina11 не путайте, обычную функцию и главную функцию, какое у вас задание?
Вот полное задание
Возвращает целое значение, уменьшающееся на 1 при каждом вызове. Начальное значение равно 10. При достижении значения, равного нулю, счётчик должен автоматически сбрасываться, и в следующий раз, при вызове этой функции, она должна вернуть 10.

Добавлено через 5 минут
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
Вам нужно просто организовать цикл. Сейчас у вас программа работает так:

1) а получает значение 10
2) а уменьшается на 1
3) выводите а на экран
4) возвращаете значение а в функцию.

Решение:

C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
int main()
{
   static int a;
 
   for (a = 10; a > 0; a--)
   {
      printf("%d \n",a);
   }
   return a;
}
Ну а вообще да, желательно бы вместо int main использовать void main (в таком случае уберите return), всё-таки тело программы, как никак...
Мне такое не подходит,нужно чтобы из переменной вычиталась единица - результат вывелся на экран,потом это значение переместилось в начало программы и дальше по алгоритму до 0.
marina11
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 84
15.12.2012, 22:48  [ТС]     не работает функция-счётчик #7
Нужно написать функцию-счётчик, используя только статические и локальные переменные. Функция должна возвращать целое значение, уменьшающееся на 1 при каждом вызове. Начальное значение равно 10. При достижении значения, равного нулю, счётчик должен автоматически сбрасываться, и в следующий раз, при вызове этой функции, она должна вернуть 10.
Начала писать программу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
int main()
{
int a;
for (a=0;a<15;a++)
{
    printf ("a=%d\n",Counter());
}
getch();
return a;
}
 
int Counter()
{
    
}
Не знаю,как описать сам счётчик в функции Counter, помогите пожалуйста!
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
15.12.2012, 22:59     не работает функция-счётчик #8
C++
1
2
3
4
5
static int cnt = 10;
cnt--;
if (cnt == 0)
    cnt = 10;
return cnt;
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
15.12.2012, 23:01     не работает функция-счётчик #9
C++
1
2
3
4
5
6
7
8
9
int Counter()
{
    static int n = 0;
    n++;
 
    if (n == 12) n = 1;
 
    return 11 - n;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 23:13     не работает функция-счётчик
Еще ссылки по теме:

Не работает функция в С++ - C++
Всем привет! Вот мне надо написать функцию, которая находит максимальное среди трёх введённых чисел. Я вот накинул программку и прошу...

Не работает функция - C++
#include &lt;iostream&gt; using namespace std; int main() { system(&quot;color 4&quot;); base(4); system(&quot;pause&quot;); return...

Не работает функция gets() - C++
Компилятор не розпознает функцию gets(); Это пример из книги Г.Шилдта &quot;С++: базовый курс&quot;. #include&lt;iostream&gt; ...

Не работает функция - C++
Добрый день. Потихоньку изучаю ООП. И столкнулся с такой проблемой: Есть два файла: 1)#include &quot;BOOK.h&quot; int main() { ...

Не работает функция if - C++
Я не совсем понимаю, как мне заставить if сравнить значение переменной output1 с заданной заранее строкой. А после нахождения совпадения,...


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

Или воспользуйтесь поиском по форуму:
marina11
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 84
15.12.2012, 23:13  [ТС]     не работает функция-счётчик #10
Спасибо!
Yandex
Объявления
15.12.2012, 23:13     не работает функция-счётчик
Ответ Создать тему
Опции темы

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