I am a newbie to coding. its been like 2 to 3 weeks since I started learning c language. I have learnt using if and else statements from Youtube tutorials and made this small block of code :
#include <stdio.h>
#include <stdlib.h>
float c,f;
main()
{
int t=2;
int o;
printf("select any one option by entering '1' or '3' \n 1. celcius to farenheit \n 3. farenheit to celcius \n enter any option ");
scanf("%d",&o);
if(t<o)
{
printf(" \n enter the value of temperature in celcius ");
scanf("%f",&c);
f=(c*1.8) 32;
printf(" \n the value of temperature of %f celcius in farenheit is %f ",c,f);
}
else(t>o);
{
printf(" \n enter the value of temperature in farenheit ");
scanf("%f",&f);
c=(f-32)/1.8;
printf(" \n the value of temperature of %f farenheit in celcius is %f ",f,c);
}
return 0;
}
I have also tried this way
#include <stdio.h>
#include <stdlib.h>
float c,f;
main()
{
int o;
printf("select any one option by entering 'a' or 'b' \n 1. celcius to farenheit \n 2. farenheit to celcius \n enter any option ");
scanf("%d",&o);
if(o=1)
{
printf(" \n enter the value of temperature in celcius ");
scanf("%f",&c);
f=(c*1.8) 32;
printf(" \n the value of temperature of %f celcius in farenheit is %f ",c,f);
}
else(o=2);
{
printf(" \n enter the value of temperature in farenheit ");
scanf("%f",&f);
c=(f-32)/1.8;
printf(" \n the value of temperature of %f farenheit in celcius is %f ",f,c);
}
}
so the problem is this code is running both the conditions one after the other. so please critique this and also recommend me some good beginner c language self learning books or tutorials if you have any. thank you.
CodePudding user response:
You had a ;
after else which you need to remove.
else//;REMOVED THIS SEMICOLON and no need to pass arguments or use else if
Note in your 1st code snippet in the else
syntax you don't need to use ()
. Second you had a semicolon ;
after the else
which need not be there.
And in your 2nd code snippet you are using =
while you should be using ==
.
You can use else if
for your 1st code snippet as follows:
else if(t > o)
{
...
}
CodePudding user response:
Firstly:
else(o=2); // <-- notice the semicolon
{
printf(" \n enter the value of temperature in farenheit ");
scanf("%f",&f);
c=(f-32)/1.8;
printf(" \n the value of temperature of %f farenheit in celcius is %f ",f,c);
}
Will get elvauate to:
else
{
o = 2;
}
// this will run no matter the condition
{
printf(" \n enter the value of temperature in farenheit ");
scanf("%f",&f);
c=(f-32)/1.8;
printf(" \n the value of temperature of %f farenheit in celcius is %f ",f,c);
}
Secondly, if(o=1)
assign o
with 1
, and because o
is a nonzero value, if(o=1)
will return true
everytime.
You should use ==
instead.
Thirdly, you else
has the wrong systax, else
systax look like this
if (somecondition)
{
// code
}
else
{
// code
}
Base on what you write, you should use else if
instead
You code should look like this:
if(o == 1)
{
// code
}
else if(o == 2)
{
// code
}
CodePudding user response:
If you want to check the equality condition you need to substitute the =
with ==
.
In addition you can also use the else-if statement, so your code will be:
if(t<o){
//actions
}
else if(t>o){
//actions
}