keyshard
keyshard

Reputation: 1

How to use local variable in another function in C language (undeclared identifier) (Scope rules)

I'm learning programming in C and i have the problem that when it compiles it says that "n is a undeclared identifier" in "while (k < n)". I think it's a scope problem, but i don't have any idea how to solve it.

#include <stdio.h>

int get_start_size(void);
int get_end_size(void);

int main(void)

{
    // Prompt for start size

    int i = get_start_size();

    // Prompt for end size
    
    int j = get_end_size();
}
    
int get_start_size(void)
{
    int n;
    do
    {
        n = get_int("Start size: ");
    }
    while (n < 9);
    return n;
}
int get_end_size(void)
{
    int k;
    do
    {
        k = get_int("End size: ");
    }
    while (k < n);
    return k;
}

Upvotes: 0

Views: 126

Answers (1)

MikeCAT
MikeCAT

Reputation: 75062

You should pass the value to use as a parameter.

#include <cs50.h>
#include <stdio.h>

int get_start_size(void);
int get_end_size(int limit); // add parameter

int main(void)

{
    // Prompt for start size

    int i = get_start_size();

    // Prompt for end size
    
    int j = get_end_size(i); // pass parameter
}
    
int get_start_size(void)
{
    int n;
    do
    {
        n = get_int("Start size: ");
    }
    while (n < 9);
    return n;
}
int get_end_size(int limit) // add parameter
{
    int k;
    do
    {
        k = get_int("End size: ");
    }
    while (k < limit); // use the parameter
    return k;
}

Upvotes: 2

Related Questions