In boxing the weight class of a boxer is decided as per the following table. Write a C program that receives weight as input and prints out the boxer’s weight class.
A certain grade of steel is graded according to the following conditions:
1. Hardness must be greater than 50. 2. Carbon content must be less than 0.7 3. Tensile strength must be greater than 5600
The grades are as follows:
Grade is 10, if all three conditions are met. Grade is 9, if conditions 1 and 2 are met. Grade is 8, if conditions 2 and 3 are met. Grade is 7, if conditions 1 and 3 are met. Grade is 6, if only one condition is met. Grade is 5, if none of the conditions are met.
Write a C program, which will require the user to give values of hardness, carbon content and tensile strength of the steel under consideration and output the grade of the steel.
Note: Tensile strength is the maximum stress that a material can withstand while being stretched or pulled before breaking.
#include
int main()
{
int hardness, ts;
float carbon;
printf("Enter values of hardness, tensile Strength
and Carbon Content in Steel\n");
scanf("%d %d %f", &hardness, &ts, &carbon);
if(hardness > 50 && carbon 5600)
{
printf("Steel Grade is 10\n");
}
else if(hardness > 50 && carbon 5600)
{
printf("Steel Grade is 8\n");
}
else if(hardness > 50 && ts > 5600)
{
printf("Steel Grade is 7\n");
}
else if(hardness > 50 || carbon 5600)
{
printf("Steel Grade is 6\n");
}
else if(hardness 0.7 && ts
Output 1:
Enter values of hardness, tensile Strength and Carbon Content in Steel
60
6000
0.5
Steel Grade is 10
Output 2:
Enter values of hardness, tensile Strength and Carbon Content in Steel
80
5000
0.5
Steel Grade is 9
Output 3:
Enter values of hardness, tensile Strength and Carbon Content in Steel
40
6000
0.5
Steel Grade is 8
Output 4:
Enter values of hardness, tensile Strength and Carbon Content in Steel
60
8000
0.8
Steel Grade is 7
Output 5:
Enter values of hardness, tensile Strength and Carbon Content in Steel
51
5000
0.8
Steel Grade is 6
Output 6:
Enter values of hardness, tensile Strength and Carbon Content in Steel
41
5000
0.8
Steel Grade is 5
Update To The Program
If we input:
Hardness: 50
Tensile Strength: 5600
Carbon Content: 0.7
Output will be: Steel Grade is 6.
If you check with Grade 6 condition inside if condition: ( hardness > 50 || carbon 5600 ) None of the condition is true. Condition for Grade 6 is: Grade is 6, if only one condition is met.
So our output is wrong. But why is it showing wrong result?
#include
int main()
{
float x = 0.7;
printf("%d\n", sizeof(x));
printf("%d\n", sizeof(0.7));
printf("%d\n", sizeof(0.7f));
return 0;
}
Output: 4 8 4
As we can clearly see 0.7 is treated as double. We can typecase it using 0.7f. So in our steel program, variable declaration(float carbon) and comparison with 0.7(which is double) is causing the bug.
With this knowledge we can rewrite our program as follows:
Source Code: C Program To Find Grade of Steel
#include
int main()
{
int hardness, ts;
double carbon;
printf("Enter values of hardness, tensile Strength and Carbon Content in Steel\n");
scanf("%d%d%lf", &hardness, &ts, &carbon);
if(hardness > 50 && carbon 5600)
{
printf("Steel Grade is 10\n");
}
else if(hardness > 50 && carbon 5600)
{
printf("Steel Grade is 8\n");
}
else if(hardness > 50 && ts > 5600)
{
printf("Steel Grade is 7\n");
}
else if(hardness > 50 || carbon 5600)
{
printf("Steel Grade is 6\n");
}
else if(hardness 0.7 && ts
Output 1:
Enter values of hardness, tensile Strength and Carbon Content in Steel
50
5600
0.7
Did not match any criteria
Output 2:
Enter values of hardness, tensile Strength and Carbon Content in Steel
41
5000
0.8
Steel Grade is 5
In above program we’re declaring carbon as double and using %lf format specifier to take value of carbon as input from the user.
Typecasing 0.7 to floating point value
#include
int main()
{
int hardness, ts;
float carbon;
printf("Enter values of hardness, tensile Strength and Carbon Content in Steel\n");
scanf("%d%d%f", &hardness, &ts, &carbon);
if(hardness > 50 && carbon 5600)
{
printf("Steel Grade is 10\n");
}
else if(hardness > 50 && carbon 5600)
{
printf("Steel Grade is 8\n");
}
else if(hardness > 50 && ts > 5600)
{
printf("Steel Grade is 7\n");
}
else if(hardness > 50 || carbon 5600)
{
printf("Steel Grade is 6\n");
}
else if(hardness 0.7f && ts
Output 1:
Enter values of hardness, tensile Strength and Carbon Content in Steel
50
5600
0.7
Did not match any criteria
Output 2:
Enter values of hardness, tensile Strength and Carbon Content in Steel
41
5000
0.8
Steel Grade is 5
Here we are typecasing 0.7 into floating point value by using 0.7f in else if conditions, which matches with the data type of variable carbon.
Any character is entered through the keyboard, write a C program to determine whether the character entered is a capital letter, a small case letter, a digit or a special symbol.
The following table shows the range of ASCII values for various characters: Character A – Z : ASCII Value 65 – 90 Character a – z : ASCII Value 97 – 122 Character 0 – 9 : ASCII Value 48 – 57 Special Symbol : ASCII Value 0 – 47, 58 – 64, 91 – 96, 123 – 127
Output 1:
Enter a Character
A
A is an Uppercase Alphabet
Output 2:
Enter a Character
i
i is an lowercase Alphabet
Output 3:
Enter a Character
8
8 is a Number
Output 4:
Enter a Character
$
$ is a Special Character
Logic To Check For Alphabet, Number and Special Symbol
We use &&(AND) operator check check for range. i.e., for number, we check from the range 48 to 57. To check if the user entered character lies in this range we use (ch >= 48 && ch
Logic To Check The Position of the Point in the graph We check for 9 conditions to determine the position of the user entered point in the graph. 1. Point lies on (0, 0): Origin 2. y = 0 and x > 0. i.e., x is positive: point lies on positive side of x-axis. 3. x = 0 and y > 0. i.e., y is positive: point lies on positive side of y-axis. 4. y = 0 and x 5. x = 0 and y 6. x > 0 and y > 0. i.e., both x and y are positive: point lies in First Quadrant. 7. x 0. i.e., x is negative and y is positive: point lies in Second Quadrant. 8. x 9. x > 0 and y
Expected Output for the Input
User Input: Enter the point(x, y) 5 5
Output: Point lies in First Quadrant
Video Tutorial: C Program To Check In Which Quadrant The Point Lies
Given a point (x, y), write a C program to find out if it lies on the x-axis, y-axis or on the origin(0, 0).
Important: Always remember that, to specify a point, we always write x-axis value first and then the y-axis value. i.e., (x, y)
Logic To Check If Point(x, y) Lies on x-axis or y-axis or Origin In point (x, y), if x = 0 and y = 0, then the point lies on the origin. If value of x is zero and y is greater than zero, then the point lies on y-axis. If y is zero and x is greater than zero, then the point lies on x-axis.
User Input: Enter the point(x, y) 0 5
Output: Point lies on y-axis
Video Tutorial: C Program To Check If Point Lies on x-axis or y-axis or Origin