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 9199293
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T22:30:07+00:00 2026-06-17T22:30:07+00:00

I need to write a program that requests two floating-point numbers and prints the

  • 0

I need to write a program that requests two floating-point numbers and prints the value of
their difference divided by their product, and to have the program loop through pairs of
input values until the user enters nonnumeric input. I need to use scanf to take the input.

So, as I know that scanf return a value 0 or 1 for true/false so I though testing it to accomplish the last part of the question, but I’m trying to figure out how to make sure the loop goes back to ask for input.

My code is:

int main()    
{        
    double num1, num2, different, product, answer;

    printf("please enter 2 floatig point numbers:\n");
    printf("number one is?\n");
    while (scanf("%lf", &num1) ==1)
    {
        printf("number two is?\n");
        while (scanf("%lf", &num2) ==1)
        {       
            if (num1 > num2)
            {
                different = num1 - num2;
            }

            if (num2 > num1)        
            {
                different = num2 - num1;
            }

            if (num1 == num2)        
            {
                different = 0;
            }

            product = num1*num2;
            answer = different/product;
            printf("%lf", answer);
        }
        printf("you're out!");
    }
    printf("you're out!");
}  

Example input:

first num 4.5
second num 3.5

output:

please enter 2 floatig point numbers:
number one is?
4.5
number two is?
3.5
0.063492

I’m getting the right answer and the program keeps running but I’m looking for a solution to go back for the input request.

  • 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-06-17T22:30:08+00:00Added an answer on June 17, 2026 at 10:30 pm

    You should first note that whatever made your scanf fail the first time, will probably make it fail the second time. So a loop such as this:

    while (scanf("%lf", &a) != 1);
    

    could become an infinite loop.

    Also, when reading two or more values at the same time, it would be hard to track what is read and what is not. Therefore, I advise reading the values one by one, in a form like this:

    void clear_line()
    {
        char c;
        while (scanf("%c", &c) == 1)
            if (c == '\n')
                return;
    }
    
    double read_value(const char *message)
    {
        double d;
    
        while (1)
        {
            printf("%s", message);
            if (scanf("%lf", &d) == 1)
                return d;
            if (feof(stdin))
            {
                printf("Unexpected end of file\n");
                return 0;
            }
            printf("Invalid input\n");
            clear_line();
        }
    }
    
    ...
    num1 = read_value("Enter first number: ");
    num2 = read_value("Enter second number: ");
    if (feof(stdin))
        /* handle error */
    

    What this basically does is try reading the value until the user produces a correct one. In case of incorrect input, one line of input is consumed and thrown away so the left over of whatever the user has input would not affect the next scanf and create a chain of errors.

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

Sidebar

Related Questions

I need to write a program that prints 0.(03) for input 1 and 33.
I need to write a program that takes input line at a time and
I need to write a program that uses matrix multiplication to rotate an image
I'm going to need to write a program that takes a list of persons
I need to write a simple program that records all the input from parallel
I need to write a haskell program that retrieves a file from command line
I need to write a C++ code coverage program that takes in another C++
I need to write a little program in C that parses a string. I
I need to write a simple program for work that does the following: read
I have a program that looks like this. I need to consistently write something

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.