When declaring and initilizing variables: if we put it in the function it would reinitilize it each time the function is called... but also if in main or before main when the function is 'implemented' doesn't seem to work either.

I get "Debug Error!
Run-Time Check Failure #3 - The variable 'j' is being used without being initilized."

Code:
// INCLUDES AND NAMESPACES
#include <iostream>
#include <iomanip>
using namespace std;
 
// PROTOTYPES
int FibonacciIterative(int);
int FibonacciRecursive(int);
 
// MAIN
int main() {
    int i = 0;
    int j = 0;
    int k = 1;
    int l = 1;
    
    for (int i = 0; i < 20; i++) {
        cout << i << '\t';
        FibonacciIterative(i);
        FibonacciRecursive(i);
        cout << '\nl';
    }


    cout << "test output";


    return 0;
}
 
// FUNCTION IMPLEMENTATIONS
// returns F_i of the Fibonacci sequence (iterative)
int FibonacciIterative(int i) {


    int j;
    int k;
    int l;


    if (i == 0) {
        j = 0;
        k = 1;
        l = 1;
        cout << j << '\t';
    }


    l = j + k;
    j = k;
    k = l;
    cout << l << '\t';
    return l;
        


}
 
// returns F_i of the Fibonacci sequence (recursive)
int FibonacciRecursive(int i) {
    cout << "test output two";
    return i;
}