Skip to content

luc021.c

Problem Statement

A certain grade of steel is graded according to the following conditions: (i) Hardness must be greater than 50 (ii) Carbon content must be less than 0.7 (iii) 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 (i) and (ii) are met Grade is 8 if conditions (ii) and (iii) are met Grade is 7 if conditions (i) and (iii) are met Grade is 6 if only one condition is met Grade is 5 if none of the conditions are met Write a 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.

Metadata

Property Detail
Author Amit Dutta amitdutta4255@gmail.com
Date 12 Dec 2025
License MIT License (See the LICENSE file for details)
Difficulty Beginner (index: 1 / 10)

Actions

Raw View on GitHub

You can print or save this file by opening Raw and using your browser.

Source Code

#include <stdio.h>
int main()
{
    double hardness, carbon_content, tensile_strength;
    printf("Enter the details of the steel below - \n");
    printf("1. Hardness         : ");
    scanf("%lf", &hardness);
    printf("2. Carbon Content   : ");
    scanf("%lf", &carbon_content);
    printf("3. Tensile Strength : ");
    scanf("%lf", &tensile_strength);

    // storing how many conditions are met as boolean result
    int condition_met, condition1, condition2, condition3;
    condition1 = hardness > 50;
    condition2 = carbon_content < 0.7;
    condition3 = tensile_strength > 5600;
    condition_met = condition1 + condition2 + condition3;

    // now grading according the result
    int grade;
    if (condition_met == 3)
        grade = 10;
    else if (condition_met == 2)
    {
        if (condition1 && condition2)
            grade = 9;
        else if (condition2 && condition3)
            grade = 8;
        else if (condition1 && condition3)
            grade = 7;
    }
    else if (condition_met == 1)
        grade = 6;
    else
        grade = 5;

    // printing the result
    printf("\n------------- Result -------------");
    printf("\n1. Hardness         : Condition %s", condition1 ? "MET" : "DID NOT MET");
    printf("\n2. Carbon Content   : Condition %s", condition2 ? "MET" : "DID NOT MET");
    printf("\n3. Tensile Strength : Condition %s", condition3 ? "MET" : "DID NOT MET");
    printf("\nTotal Condition Met : %d", condition_met);
    printf("\n\nGrade : %d\n\n", grade);
    return 0;
}

/* I did not used this long variable names. I used very short just the first letter of the word. 
After writting the whole program, I just renamed the valiables. This is possible in Visual Stdio Code. */

Explanation

Explain with AI

Copy the prompt below and paste it into any AI assistant.

    You are explaining a C programming code to a beginner.

    STRICT RULES:

    - Only use the given code. Do NOT assume anything not present.

    - Do NOT add extra examples.

    - Keep explanation clear and short.

    - If something is unclear, say "Not clear from code".

    - Follow the exact format below. Do NOT change headings.

    FORMAT:

    [START]

    ## What it does

    (Explain the overall purpose in 1-2 sentences)

    ## Step-by-step

    (Explain how the code works in steps, simple language)

    ## Key Concepts

    (List concepts like loop, condition, function, etc.)

    ## Notes

    (Mention any limitations, errors, or assumptions)

    [END]

    CODE (luc021.c):

    #include <stdio.h>
    int main()
    {
        double hardness, carbon_content, tensile_strength;
        printf("Enter the details of the steel below - \n");
        printf("1. Hardness         : ");
        scanf("%lf", &hardness);
        printf("2. Carbon Content   : ");
        scanf("%lf", &carbon_content);
        printf("3. Tensile Strength : ");
        scanf("%lf", &tensile_strength);

        // storing how many conditions are met as boolean result
        int condition_met, condition1, condition2, condition3;
        condition1 = hardness > 50;
        condition2 = carbon_content < 0.7;
        condition3 = tensile_strength > 5600;
        condition_met = condition1 + condition2 + condition3;

        // now grading according the result
        int grade;
        if (condition_met == 3)
            grade = 10;
        else if (condition_met == 2)
        {
            if (condition1 && condition2)
                grade = 9;
            else if (condition2 && condition3)
                grade = 8;
            else if (condition1 && condition3)
                grade = 7;
        }
        else if (condition_met == 1)
            grade = 6;
        else
            grade = 5;

        // printing the result
        printf("\n------------- Result -------------");
        printf("\n1. Hardness         : Condition %s", condition1 ? "MET" : "DID NOT MET");
        printf("\n2. Carbon Content   : Condition %s", condition2 ? "MET" : "DID NOT MET");
        printf("\n3. Tensile Strength : Condition %s", condition3 ? "MET" : "DID NOT MET");
        printf("\nTotal Condition Met : %d", condition_met);
        printf("\n\nGrade : %d\n\n", grade);
        return 0;
    }

    /* I did not used this long variable names. I used very short just the first letter of the word. 
    After writting the whole program, I just renamed the valiables. This is possible in Visual Stdio Code. */