C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Structures and Union in C

Store exam records with pass/fail result

C Program: Store exam records with pass/fail result

C

#include <stdio.h>

#include <string.h>

 

struct Student {

    int rollNo;

    char name[50];

    float marks;

    char result[10]; // "Pass" or "Fail"

};

 

int main() {

    struct Student students[100];

    int n, i;

    float passMarks = 40.0; // Minimum marks to pass

 

    printf("Enter number of students: ");

    scanf("%d", &n);

    getchar(); // clear newline

 

    // Input student data

    for (i = 0; i < n; i++) {

        printf("\nEnter details for Student %d:\n", i + 1);

        printf("Roll Number: ");

        scanf("%d", &students[i].rollNo);

        getchar(); // clear newline

 

        printf("Name: ");

        fgets(students[i].name, sizeof(students[i].name), stdin);

        students[i].name[strcspn(students[i].name, "\n")] = '\0';

 

        printf("Marks: ");

        scanf("%f", &students[i].marks);

 

        // Determine result

        if (students[i].marks >= passMarks)

            strcpy(students[i].result, "Pass");

        else

            strcpy(students[i].result, "Fail");

    }

 

    // Display all records

    printf("\n==================== EXAM RESULTS ====================\n");

    printf("%-10s %-25s %-10s %-10s\n", "Roll No", "Name", "Marks", "Result");

    printf("------------------------------------------------------\n");

 

    for (i = 0; i < n; i++) {

        printf("%-10d %-25s %-10.2f %-10s\n",

               students[i].rollNo,

               students[i].name,

               students[i].marks,

               students[i].result);

    }

 

    printf("======================================================\n");

 

    return 0;

}

Output

 
OUTPUT :
Enter number of students: 3

Enter details for Student 1:
Roll Number: 101
Name: Alice
Marks: 78.5

Enter details for Student 2:
Roll Number: 102
Name: Bob
Marks: 35

Enter details for Student 3:
Roll Number: 103
Name: Charlie
Marks: 50

==================== EXAM RESULTS ====================
Roll No    Name                      Marks      Result    
------------------------------------------------------
101        Alice                     78.50      Pass      
102        Bob                       35.00      Fail      
103        Charlie                   50.00      Pass      
======================================================

Explanation

Concept

Description

struct Student

Holds student roll number, name, marks, and result.

passMarks

Threshold (40.0) used to determine pass or fail.

strcpy()

Used to copy “Pass” or “Fail” into the structure field.

fgets()

Reads names safely (handles spaces).

printf()

Prints a formatted result table.