Здравствуйте, запрограммировал простенькую задачку, при решении которой нужно обязательно использовать объявление переменой static:
Написать функцию с целым параметром m, результат которой равен сумме параметров трех последних вызовов этой функции.
Получился вот такой код:
#include <iostream>
#include <cstdlib>
using namespace std;
void greeting(int n) {
static int i = 1, s = 0, a = 1, b = 2, c = 3, a1 = 0, b1 = 0, c1 = 0;
if (i == a) {
a1 = n;
a += 3;
}
else if (i == b) {
b1 = n;
b += 3;
}
else if (i == c) {
c1 = n;
c += 3;
}
i++;
if (a1 > 0 && b1 > 0 && c1 > 0) {
s = a1 + b1 + c1;
cout << s << endl;
}
else {
cout << s << endl;
}
}
int main() {
for (int i = 10; i <= 100; i += 10) {
greeting(i);
}
return 0;
}
Но что-то мне подсказывает, что сделать можно было гораздо красивее и проще. Помогите с другими более правильными решениями.