Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6126995
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T16:26:56+00:00 2026-05-23T16:26:56+00:00

Trying to compile a simple switch statement with 5 choices. 1-4 produce calculations and

  • 0

Trying to compile a simple switch statement with 5 choices. 1-4 produce calculations and output while #5 exits the program. I made a do/while loop so if choice 5 is entered the program will end. I get an error:

4_19.c: In function ‘main’:
4_19.c:95: error: ‘choice’ undeclared (first use in this function)
4_19.c:95: error: (Each undeclared identifier is reported only once
4_19.c:95: error: for each function it appears in.)

I don’t know why it is saying its undeclared, because I declared it in the beginning. What did I do wrong? Thanx. Here is my code:

    /* C++ book. 4_19 The speed of sound in gases. 
Create a menu to choose between 4 gases. User then enters number of seconds
it took to travel to destination. The program will calculate how far the source was (from speed that is unique to gas density). Validate input of seconds from 0 to 30 seconds only. 
*/

#include <stdio.h>
int main(void)
{
    do
    {
        // Declare variables
        int choice;
        float speed, seconds = 0, distance;

        //Display program details and menu choice
        printf("\n");
        printf("Choose a gas that you would like to analyze.\n");
        printf("Medium                              Speed(m/s)\n");
        printf("1.Carbon Dioxide                    258.0\n");
        printf("2.Air                               331.5\n");
        printf("3.Helium                            972.0\n");
        printf("4.Hydrogen                          1270.0\n");
        printf("5.Quit Program");
        printf("Enter a choice 1-5: ");
        scanf("%i",&choice);
        while (choice < 1 || choice > 5)        // Validate choice input. 
        {   
            printf("You entered an invalid number. Choose 1,2,3, or 4 only.\n");
            printf("Enter a choice 1-5: ");
            scanf("%i",&choice);
        }

        // Switch statements to execute different choices
        switch(choice)
        {
            case 1:     // Carbon Dioxide
                printf("Enter number of seconds, from 0 to 30, that the sound traveled in carbon dioxide: ");
                scanf("%f", &seconds);
                while (seconds < 0 || seconds > 30)      // Validate time entered
                {
                    printf("The range of input for seconds is only from 0 to 30 seconds.\n");
                    printf("Please enter a valid number for number of seconds: ");
                    scanf("%f", &seconds);
                }
                speed = 258.0;
                distance = speed * seconds;
                printf("The distance from the source of the sound is %.2f meters in carbon dioxide.\n", distance);
                break;

            case 2:     // Air
                printf("Enter number of seconds, from 0 to 30, that the sound traveled in air: ");
                scanf("%f", &seconds);
                while (seconds < 0 || seconds > 30)      // Validate time entered
                {
                    printf("The range of input for seconds is only from 0 to 30 seconds.\n");
                    printf("Please enter a valid number for number of seconds: ");
                    scanf("%f", &seconds);
                }
                speed = 331.5;
                distance = speed * seconds;
                printf("The distance from the source of the sound is %.2f meters in air.\n", distance);
                break;

            case 3:     // Helium
                printf("Enter number of seconds, from 0 to 30, that the sound traveled in helium: ");
                scanf("%f", &seconds);
                while (seconds < 0 || seconds > 30)      // Validate time entered
                {
                    printf("The range of input for seconds is only from 0 to 30 seconds.\n");
                    printf("Please enter a valid number for number of seconds: ");
                    scanf("%f", &seconds);
                }
                speed = 972.0;
                distance = speed * seconds;
                printf("The distance from the source of the sound is %.2f meters in helium.\n", distance);
                break;

            case 4:     // Hydrogen
                printf("Enter number of seconds, from 0 to 30, that the sound traveled in hydrogen: ");
                scanf("%f", &seconds);
                while (seconds < 0 || seconds > 30)      // Validate time entered
                {
                    printf("The range of input for seconds is only from 0 to 30 seconds.\n");
                    printf("Please enter a valid number for number of seconds: ");
                    scanf("%f", &seconds);
                }
                speed = 1270.0;
                distance = speed * seconds;
                printf("The distance from the source of the sound is %.2f meters in hydrogen.\n", distance);
                break;

            case 5:
                printf("End of Program\n");
                break;
        }
    } while (choice != 5);

    return 0;
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T16:26:57+00:00Added an answer on May 23, 2026 at 4:26 pm

    You have declared choice inside your do { } while loop; this means that it can only be accessed within those two braces. However, in your while(choice != 5) condition, you reference it again, outside the braces; this is an error. The solution is to move choice up one level, and declare it within the scope for main.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying to compile a simple program, with #include <gtkmm.h> The path to gtkmm.h
I'm trying to compile this simple program to start learning how to use timers:
I'm trying to compile the following simple DL library example code from Program-Library-HOWTO with
I'm trying to compile a relatively simple c++ program using cygwin and g++. I
I'm trying to compile a simple Hello World program in C++ but I keep
I am trying to compile simple program under linux. These are the set of
I am trying to compile a simple C Windows API program using the Windows
hi am trying to compile a simple program in boost library but i keep
I'm trying to cross=compile a simple program with inline assembly for a variety of
I'm trying to compile a simple little test program. and I'm getting errors: MacBook-Air:Untitled

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.