Программа C для обнаружения изменения времени и сброса счетчика

У меня есть встроенный алгоритм в моем приложении. Всякий раз, когда я запускаю алгоритм, он сохраняет точное время выполнения в базе данных. Например, если я запускаю алгоритм в 11.00, он экономит это время. И снова, если я запускаю 11.05, он сохраняет 11.05 в базе данных.

Я хочу определить, сколько раз он запускался. Так что, как только он запустится 5 раз, мне нужно выполнить какое-то действие, например изменить значения и сбросить счетчик на 0. Чтобы, когда он достигнет 5 итераций, я снова должен сбросить счетчик.

Я начинающий. Будет полезно, если вы поможете мне с синтаксисом.

MAIN
{


 int temp1, temp2, flag = 0, max = 5;

 temp1 = GET_INT_VALUE(8,1,84,1,0);


 if flag = 0;
 while(1)
 {
     if (templ == temp2)
         flag++;
     else
         flag = 0;

     if (flag == max)
     {
        //sprintf(Message,"SE value is %d",temp2);             
        PRINTOUT("Message");
        flag = 0;
        break;
     }

 }
}
END

Итак, первая проблема MAIN {. Это недопустимый синтаксис C.

melpomene 22.05.2019 09:14

Почему бы вам не сохранить количество прогонов в той же базе данных. Таким образом, вы можете прочитать его в начале программы, увеличить его на единицу, а затем записать это значение в базу данных.

Sandy 22.05.2019 09:21

это странная комбинация между C и псевдокодом

Yoni Newman 22.05.2019 09:21

Это комбинация C и другого встроенного программного обеспечения.

Sidharth Gokul 22.05.2019 09:22

Вставьте счетчик, и когда вы примените алгоритм, просто увеличьте его и проверьте, достигает ли он 5. Если это так, делайте все, что хотите, например, сбросьте его и измените значения.

Yoni Newman 22.05.2019 09:25
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
252
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Лучше всего использовать статическую локальную переменную, например:

void foo(void) {
    static int counter = 0;

    counter++;
    if (counter > 5) {
        counter = 0;

        /* Do something every fifth time */
    }
}

Обратите внимание, что вы не можете использовать обычную локальную переменную (например, int counter = 0;), потому что ее содержимое будет потеряно при возврате функции. static делает ее более похожей на глобальную переменную (поэтому ее значение не теряется при возврате функции).

Другие вопросы по теме