Click here to Skip to main content
15,887,585 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
using System;
using System.Diagnostics;

namespace bmimetric.cs
{
    class bmimetric
    {

        public static object Main(string[] args)
        {
            String x, y;
            Console.WriteLine("Please enter weight in kilograms:");
            x = Console.ReadLine();
            int x1;
            x1 = 1 * 50;
            Console.WriteLine("x");
            Console.WriteLine("Please enter height in meters:");
            y = Console.ReadLine();
            int y1;
            y1 = (int)2.4964;
            Console.WriteLine("y");
            Console.WriteLine("The BMI is" + x1 / y1);
        }
                }
}


What I have tried:

I have tried math.pow i have tried float i have tried everything... also if someone knows a way I can get an easier version of visual studios on a mac please tell me
Posted
Updated 10-Oct-20 20:23pm

Look at your code:
C#
            Console.WriteLine("Please enter weight in kilograms:");
            x = Console.ReadLine();
...
            Console.WriteLine("x");
            Console.WriteLine("Please enter height in meters:");
            y = Console.ReadLine();
...
            Console.WriteLine("y");
Year read in a value, ignore it, and print it out.
Why would you expect that to print anything other than exactly what you entered?
Then you calculate the BMI:
C#
            int x1;
            x1 = 1 * 50;
...
            int y1;
            y1 = (int)2.4964;
...
            Console.WriteLine("The BMI is" + x1 / y1);
Which - even if it worked, which it doesn't - would always print the same value!

Stop and think about what you are doing: why are you using integers to calculate a value that is not an integer? Why do you read height in meters and use integers? You will get 1 in nearly all adults, the rare 2, and 0 for a lot of children!

Integers hold "whole numbers": 0, 1, 2, 3, 4 ... (and negative whole numbers as well, of course).
Float or double numbers hold "fractional numbers": 1.6, 3.1415926, 2.7182818, ...

So when you cast 2.4964 (which would be a Giraffe, not a human) to an integer, you get ... 2.

Change your app to use double values throughout instead of int, and use the correct formula: Body mass index - Wikipedia[^] : weight / (height * height).

You will also need to convert the strings you read from the user to valid numbers:
C#
double weight;
if (!double.TryParse(userInputString, out weight)
   {
   Console.WriteLine($"\"{userInputString}\" is not a number!");
   return;
   }

Stop throwing code to together, and think about what you are trying to do first.

You may find this helps: How to Write Code to Solve a Problem, A Beginner's Guide[^]
 
Share this answer
 
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900