C Program to Calculate Average & Percentage Marks

In this article, you will learn and get code about how to create a program that finds average and percentage marks. The last program given here is the complete version of finding average and percentage marks of a student. In that program, number of subject and maximum marks is also decided by user.

Find Average Mark Program in C

The question is, write a program in C, that asks from user to enter marks obtained in 5 subjects and prints average mark as output. So the answer to this question is given below:

#include<stdio.h>
#include<conio.h>
int main()
{
    int i;
    float mark, sum=0, avg;
    printf("Enter Marks obtained in 5 Subjects: ");
    for(i=0; i<5; i++)
    {
        scanf("%f", &mark);
        sum = sum+mark;
    }
    avg = sum/5;
    printf("\nAverage Mark = %0.2f", avg);
    getch();
    return 0;
}

This program was compiled and executed in Code::Blocks IDE. This is the first snapshot of sample run:

c program average percentage marks

Now supply marks obtained in 5 subjects as input say 76, 87, 98, 70, 82 and press ENTER key to see the average mark of student as shown in the second snapshot of sample run given below:

average mark program c

Steps used in previous Program

Here are some of the main steps used in above program:

  • Declare a variable say i of int type to work with it in loop
  • Declare another three variables say mark, sum, and avg of type float
  • Here these three variables are declared as float, because to hold any value that contains decimal
  • Initialize 0 to the variable sum in declaration part
  • Now here we have applied a for loop that runs 5 times
  • In each run, program scans mark value and adds it to sum variable
  • So after exiting from the loop, we have a sum variable that holds sum of all the 5 marks entered by user at run-time
  • Just divide sum with 5, to find average mark of given 5 numbers
  • Print the value of avg as output. That it

To learn about loop (used in previous program) in detail, refer to for loop in C tutorial. Let's move on to next program.

Find Percentage Mark Program in C

The question is, write a program in C, that asks from user to enter marks obtained in 5 subjects (out of 100) and find the percentage marks of student. The answer to this question is given below:

To calculate percentage marks of a student in C programming, you have to ask from user to enter marks obtained in some number of subjects (5 subjects here, i.e Physics, Chemistry, Math, CS, and English). Place summation of 5 marks in a variable say sum and place sum/5 in a variable say avg. Simply print avg as the result on output.

#include<stdio.h>
#include<conio.h>
int main()
{
    int i;
    float mark, sum=0, perc;
    printf("Enter Marks obtained in 5 Subjects (Out of 100): ");
    for(i=0; i<5; i++)
    {
        scanf("%f", &mark);
        sum = sum+mark;
    }
    perc = (sum/500)*100;
    printf("\nPercentage Mark = %0.2f%c", perc, 37);
    getch();
    return 0;
}

This program will produce the output as shown in the snapshot given below:

percentage mark program c

Most of the code written in this program is almost same as of previous program except, here we have used %c format specifier with 37 as its value. Because, %c format specifier is used to print character, and the ASCII value of % character is 37. So to print % sign on output screen after the percentage value, we have used its ASCII value as shown in the above output.

Find Average & Percentage Mark in C

The question is, write a program in C that asks from user to enter marks obtained and find average and percentage mark value. Here subject count and maximum marks must be entered by user. The answer to this question is given below.

This is the complete version of calculating average and percentage marks program in C. Here the number of subject and maximum mark is decided by user. Let's have a look at it:

#include<stdio.h>
#include<conio.h>
int main()
{
    int i, n, max;
    float mark, sum=0, avg, perc;
    printf("How many Subject runs in your Institute ? ");
    scanf("%d", &n);
    printf("\nEnter Maximum Mark of Subject: ");
    scanf("%d", &max);
    printf("\nEnter Marks obtained in %d Subjects (Out of %d): ", n, max);
    for(i=0; i<n; i++)
    {
        scanf("%f", &mark);
        sum = sum+mark;
    }
    avg = sum/n;
    perc = (sum/(n*max))*100;
    printf("\nAverage Mark = %0.2f", avg);
    printf("\nPercentage Mark = %0.2f%c", perc, 37);
    getch();
    return 0;
}

The snapshot given below shows the initial output of this program:

average percentage mark program c

And the snapshot given below shows the final output of this program after supplying total number of subject runs in institute, maximum marks, and marks obtained in all subject.

c average percentage mark

Let's understand the above program (with its output) by the example given below:

  • User enters 6 as first question, that is How many Subject runs in your Institute ?. So n holds its value as 6
  • User enters 50 as second question. So the variable max has its value as 50
  • Now user enters marks obtained in 6 subjects one by one. And the summation operation performed on each scan like this:
    • On first scan, user enters 42, so sum+mark or 0+42 (0 is initial value of sum) gets initialized to sum
    • Now sum contains 42 as its value
    • On second scan, user enters 46, so 42+46 or 88 gets initialized to sum
    • Now sum contains 88 as its value
    • On third scan, user enters 40, so 88+40 gets initialized to sum
    • Now sum contains 128 as its value
    • On fourth scan, user enters 38, so 128+38 or 166 gets initialized to sum
    • Now sum contains 166 as its value
    • On fifth scan, user enters 41, so 166+41 or 207 gets initialized to sum
    • Now sum contains 207 as its value
    • On sixth scan, user enters 39, so 207+39 or 246 gets initialized to sum
    • Now sum contains 246 as its value
  • As of now, sum contains 246, n contains 6, and max contains 50
  • So, sum/n or 246/6 or 41 gets initialized to avg variable
  • And, (sum/(n*max))*100 or (246/(6*50))*100 or (246/300)*100 or 82 gets initialized to perc variable
  • Now simply print the value of avg and perc variable as output of Average Mark and Percentage Mark
  • %0.2f is used to print value upto 2 decimal places only. And %c with 37, is used to print % sign. Because 37 is the ASCII value of % sign. That's it

Same Program in Other Languages

C Online Test


« Previous Program Next Program »