C Program to Find Total of Even Integers

C Program to Calculate Rank list of Class Students using Pointers

The C program to Processing of Examination Marks and to calculate rank list of class students by using pointers with two dimensional arrays. The Marks obtained by batch of students in the Annual Examination are tabulated as follows:

Student name Marks obtained

S.Laxmi 45 67 38 55

V.S.Rao 77 89 56 69

..etc

It is required to compute the total marks obtained by each student and print the rank list based on the total marks.

The program in below example shows stores the student names in the array name and the marks in the array marks. After computing the total marks obtained by all the students, the program prepares and prints the rank list. The declaration

int marks[STUDENTS][SUBJECTS+1];

To define marks as C pointer to the array’s first row. We use rowptr as the pointer to the row of marks. The rowptr is initialized as follows:

int (*rowptr)[SUBJECTS+1] = array;

Note that array is the formal argument whose values are replaced by the values of the actual argument marks. The parentheses around *rowptr makes the rowptr as a pointer to an array of SUBJECTS+1 integers. Remember, the statement

int *rowptr[SUBJECTS+1];

would declare rowptr as an array of SUBJECTS+1 elements.

When we increment the rowptr (by rowptr+1), the increment is done in units of the size of each row of array, making rowptr point to the next row. Since rowptr points to a particular row,

(*rowptr)[x] points to the xth element in the row.

Example : C Program to Calculate rank list of Class Students

  #define Students 5                                             
  #define Subject 4                                             
  #include <string.h>                                              
                                                                    
  main()                                                           
  {                                                                
    char name[STUDENTS][20];                                     
    int  marks[STUDENTS][SUBJECTS+1];                    
                                                                    
    printf("Input students names & their marks in four subjects\n");
    get_list(name, marks, STUDENTS, SUBJECTS);                   
    get_sum(marks, STUDENTS, SUBJECTS+1);                        
    printf("\n");                                                
    print_list(name,marks,STUDENTS,SUBJECTS+1);                  
    get_rank_list(name, marks, STUDENTS, SUBJECTS+1);            
    printf("\nRanked List\n\n");                                 
    print_list(name,marks,STUDENTS,SUBJECTS+1);  
   }                                                                
/*   Input student name and marks        */
                      
       get_list(char *string[ ],                                   
            int array [ ] [SUBJECTS +1], int m, int n)                                       
   {
       int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
       for(i = 0; i < m; i++)                                       
       {                                                            
          scanf("%s", string[i]);                                   
          for(j = 0; j < SUBJECTS; j++)                             
             scanf("%d", &(*(rowptr + i))[j]);                      
       }                                                            
   }
   /*    Compute total marks obtained by each student   */
          
   get_sum(int array [ ] [SUBJECTS +1], int m, int n)             
   {                                                                
       int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
       for(i = 0; i < m; i++)                                       
       {
          (*(rowptr + i))[n-1] = 0;                                 
          for(j =0; j < n-1; j++)                                   
             (*(rowptr + i))[n-1] += (*(rowptr + i))[j];            
       }                                                            
   }                                                                
                                                                    
                                                                    
   /*    Prepare rank list based on total marks      */
             
                                                                    
   get_rank_list(char *string [ ],                                  
                 int array [ ] [SUBJECTS + 1]                      
                 int m,                                           
                 int n)                                    
   {                                                                
     int i, j, k, (*rowptr)[SUBJECTS+1] = array;                  
     char *temp;                                                  
                                                                    
     for(i = 1; i <= m-1; i++)                                    
        for(j = 1; j <= m-i; j++)                                 
           if( (*(rowptr + j-1))[n-1] < (*(rowptr + j))[n-1])     
           {                                                      
            swap_string(string[j-1], string[j]);                 
                                                                    
            for(k = 0; k < n; k++)                               
            swap_int(&(*(rowptr + j-1))[k],&(*(rowptr+j))[k]); 
             }                                                      
   }                                                                
   /*      Print out the ranked list            */
                  
   print_list(char *string[ ],                                   
              int array [] [SUBJECTS + 1],                       
              int m,                                               
              int n)                                       
   {                                                                
       int  i, j, (*rowptr)[SUBJECTS+1] = array;                    
       for(i = 0; i < m; i++)                                       
       {                                                            
          printf("%-20s", string[i]);                               
          for(j = 0; j < n; j++)                                    
             printf("%5d", (*(rowptr + i))[j]);                     
             printf("\n");                                          
       }                                                            
   }                                                                
   /*     Exchange of integer values              */
                
   swap_int(int *p, int *q)                                 
   {                                                                
       int  temp;                                                   
       temp = *p;                                                   
       *p   = *q;                                                   
       *q   = temp;                                                 
   }    




   /*     Exchange of strings         */
                            
   swap_string(char s1[ ], char s2[ ])                     
   {                                                                
       char  swaparea[256];                                         
       int   i;                                                     
       for(i = 0; i < 256; i++)                                     
          swaparea[i] = '
  #define Students 5                                             
#define Subject 4                                             
#include <string.h>                                              
main()                                                           
{                                                                
char name[STUDENTS][20];                                     
int  marks[STUDENTS][SUBJECTS+1];                    
printf("Input students names & their marks in four subjects\n");
get_list(name, marks, STUDENTS, SUBJECTS);                   
get_sum(marks, STUDENTS, SUBJECTS+1);                        
printf("\n");                                                
print_list(name,marks,STUDENTS,SUBJECTS+1);                  
get_rank_list(name, marks, STUDENTS, SUBJECTS+1);            
printf("\nRanked List\n\n");                                 
print_list(name,marks,STUDENTS,SUBJECTS+1);  
}                                                                
/*   Input student name and marks        */
get_list(char *string[ ],                                   
int array [ ] [SUBJECTS +1], int m, int n)                                       
{
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{                                                            
scanf("%s", string[i]);                                   
for(j = 0; j < SUBJECTS; j++)                             
scanf("%d", &(*(rowptr + i))[j]);                      
}                                                            
}
/*    Compute total marks obtained by each student   */
get_sum(int array [ ] [SUBJECTS +1], int m, int n)             
{                                                                
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{
(*(rowptr + i))[n-1] = 0;                                 
for(j =0; j < n-1; j++)                                   
(*(rowptr + i))[n-1] += (*(rowptr + i))[j];            
}                                                            
}                                                                
/*    Prepare rank list based on total marks      */
get_rank_list(char *string [ ],                                  
int array [ ] [SUBJECTS + 1]                      
int m,                                           
int n)                                    
{                                                                
int i, j, k, (*rowptr)[SUBJECTS+1] = array;                  
char *temp;                                                  
for(i = 1; i <= m-1; i++)                                    
for(j = 1; j <= m-i; j++)                                 
if( (*(rowptr + j-1))[n-1] < (*(rowptr + j))[n-1])     
{                                                      
swap_string(string[j-1], string[j]);                 
for(k = 0; k < n; k++)                               
swap_int(&(*(rowptr + j-1))[k],&(*(rowptr+j))[k]); 
}                                                      
}                                                                
/*      Print out the ranked list            */
print_list(char *string[ ],                                   
int array [] [SUBJECTS + 1],                       
int m,                                               
int n)                                       
{                                                                
int  i, j, (*rowptr)[SUBJECTS+1] = array;                    
for(i = 0; i < m; i++)                                       
{                                                            
printf("%-20s", string[i]);                               
for(j = 0; j < n; j++)                                    
printf("%5d", (*(rowptr + i))[j]);                     
printf("\n");                                          
}                                                            
}                                                                
/*     Exchange of integer values              */
swap_int(int *p, int *q)                                 
{                                                                
int  temp;                                                   
temp = *p;                                                   
*p   = *q;                                                   
*q   = temp;                                                 
}    
/*     Exchange of strings         */
swap_string(char s1[ ], char s2[ ])                     
{                                                                
char  swaparea[256];                                         
int   i;                                                     
for(i = 0; i < 256; i++)                                     
swaparea[i] = '\0';                                       
i = 0;                                                       
while(s1[i] != '\0' && i < 256)                              
{                                                            
swaparea[i] = s1[i];                                      
i++;                                                      
}                                                            
i = 0;                                                       
while(s2[i] != '\0' && i < 256)                              
{                                                            
s1[i] = s2[i];                                            
s1[++i] = '\0';                                           
}                                                            
i = 0;                                                       
while(swaparea[i] != '\0')                                   
{                                                            
s2[i] = swaparea[i];                                      
s2[++i] = '\0';                                           
}                                                            
}
'; i = 0; while(s1[i] != '
  #define Students 5                                             
#define Subject 4                                             
#include <string.h>                                              
main()                                                           
{                                                                
char name[STUDENTS][20];                                     
int  marks[STUDENTS][SUBJECTS+1];                    
printf("Input students names & their marks in four subjects\n");
get_list(name, marks, STUDENTS, SUBJECTS);                   
get_sum(marks, STUDENTS, SUBJECTS+1);                        
printf("\n");                                                
print_list(name,marks,STUDENTS,SUBJECTS+1);                  
get_rank_list(name, marks, STUDENTS, SUBJECTS+1);            
printf("\nRanked List\n\n");                                 
print_list(name,marks,STUDENTS,SUBJECTS+1);  
}                                                                
/*   Input student name and marks        */
get_list(char *string[ ],                                   
int array [ ] [SUBJECTS +1], int m, int n)                                       
{
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{                                                            
scanf("%s", string[i]);                                   
for(j = 0; j < SUBJECTS; j++)                             
scanf("%d", &(*(rowptr + i))[j]);                      
}                                                            
}
/*    Compute total marks obtained by each student   */
get_sum(int array [ ] [SUBJECTS +1], int m, int n)             
{                                                                
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{
(*(rowptr + i))[n-1] = 0;                                 
for(j =0; j < n-1; j++)                                   
(*(rowptr + i))[n-1] += (*(rowptr + i))[j];            
}                                                            
}                                                                
/*    Prepare rank list based on total marks      */
get_rank_list(char *string [ ],                                  
int array [ ] [SUBJECTS + 1]                      
int m,                                           
int n)                                    
{                                                                
int i, j, k, (*rowptr)[SUBJECTS+1] = array;                  
char *temp;                                                  
for(i = 1; i <= m-1; i++)                                    
for(j = 1; j <= m-i; j++)                                 
if( (*(rowptr + j-1))[n-1] < (*(rowptr + j))[n-1])     
{                                                      
swap_string(string[j-1], string[j]);                 
for(k = 0; k < n; k++)                               
swap_int(&(*(rowptr + j-1))[k],&(*(rowptr+j))[k]); 
}                                                      
}                                                                
/*      Print out the ranked list            */
print_list(char *string[ ],                                   
int array [] [SUBJECTS + 1],                       
int m,                                               
int n)                                       
{                                                                
int  i, j, (*rowptr)[SUBJECTS+1] = array;                    
for(i = 0; i < m; i++)                                       
{                                                            
printf("%-20s", string[i]);                               
for(j = 0; j < n; j++)                                    
printf("%5d", (*(rowptr + i))[j]);                     
printf("\n");                                          
}                                                            
}                                                                
/*     Exchange of integer values              */
swap_int(int *p, int *q)                                 
{                                                                
int  temp;                                                   
temp = *p;                                                   
*p   = *q;                                                   
*q   = temp;                                                 
}    
/*     Exchange of strings         */
swap_string(char s1[ ], char s2[ ])                     
{                                                                
char  swaparea[256];                                         
int   i;                                                     
for(i = 0; i < 256; i++)                                     
swaparea[i] = '\0';                                       
i = 0;                                                       
while(s1[i] != '\0' && i < 256)                              
{                                                            
swaparea[i] = s1[i];                                      
i++;                                                      
}                                                            
i = 0;                                                       
while(s2[i] != '\0' && i < 256)                              
{                                                            
s1[i] = s2[i];                                            
s1[++i] = '\0';                                           
}                                                            
i = 0;                                                       
while(swaparea[i] != '\0')                                   
{                                                            
s2[i] = swaparea[i];                                      
s2[++i] = '\0';                                           
}                                                            
}
' && i < 256) { swaparea[i] = s1[i]; i++; } i = 0; while(s2[i] != '
  #define Students 5                                             
#define Subject 4                                             
#include <string.h>                                              
main()                                                           
{                                                                
char name[STUDENTS][20];                                     
int  marks[STUDENTS][SUBJECTS+1];                    
printf("Input students names & their marks in four subjects\n");
get_list(name, marks, STUDENTS, SUBJECTS);                   
get_sum(marks, STUDENTS, SUBJECTS+1);                        
printf("\n");                                                
print_list(name,marks,STUDENTS,SUBJECTS+1);                  
get_rank_list(name, marks, STUDENTS, SUBJECTS+1);            
printf("\nRanked List\n\n");                                 
print_list(name,marks,STUDENTS,SUBJECTS+1);  
}                                                                
/*   Input student name and marks        */
get_list(char *string[ ],                                   
int array [ ] [SUBJECTS +1], int m, int n)                                       
{
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{                                                            
scanf("%s", string[i]);                                   
for(j = 0; j < SUBJECTS; j++)                             
scanf("%d", &(*(rowptr + i))[j]);                      
}                                                            
}
/*    Compute total marks obtained by each student   */
get_sum(int array [ ] [SUBJECTS +1], int m, int n)             
{                                                                
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{
(*(rowptr + i))[n-1] = 0;                                 
for(j =0; j < n-1; j++)                                   
(*(rowptr + i))[n-1] += (*(rowptr + i))[j];            
}                                                            
}                                                                
/*    Prepare rank list based on total marks      */
get_rank_list(char *string [ ],                                  
int array [ ] [SUBJECTS + 1]                      
int m,                                           
int n)                                    
{                                                                
int i, j, k, (*rowptr)[SUBJECTS+1] = array;                  
char *temp;                                                  
for(i = 1; i <= m-1; i++)                                    
for(j = 1; j <= m-i; j++)                                 
if( (*(rowptr + j-1))[n-1] < (*(rowptr + j))[n-1])     
{                                                      
swap_string(string[j-1], string[j]);                 
for(k = 0; k < n; k++)                               
swap_int(&(*(rowptr + j-1))[k],&(*(rowptr+j))[k]); 
}                                                      
}                                                                
/*      Print out the ranked list            */
print_list(char *string[ ],                                   
int array [] [SUBJECTS + 1],                       
int m,                                               
int n)                                       
{                                                                
int  i, j, (*rowptr)[SUBJECTS+1] = array;                    
for(i = 0; i < m; i++)                                       
{                                                            
printf("%-20s", string[i]);                               
for(j = 0; j < n; j++)                                    
printf("%5d", (*(rowptr + i))[j]);                     
printf("\n");                                          
}                                                            
}                                                                
/*     Exchange of integer values              */
swap_int(int *p, int *q)                                 
{                                                                
int  temp;                                                   
temp = *p;                                                   
*p   = *q;                                                   
*q   = temp;                                                 
}    
/*     Exchange of strings         */
swap_string(char s1[ ], char s2[ ])                     
{                                                                
char  swaparea[256];                                         
int   i;                                                     
for(i = 0; i < 256; i++)                                     
swaparea[i] = '\0';                                       
i = 0;                                                       
while(s1[i] != '\0' && i < 256)                              
{                                                            
swaparea[i] = s1[i];                                      
i++;                                                      
}                                                            
i = 0;                                                       
while(s2[i] != '\0' && i < 256)                              
{                                                            
s1[i] = s2[i];                                            
s1[++i] = '\0';                                           
}                                                            
i = 0;                                                       
while(swaparea[i] != '\0')                                   
{                                                            
s2[i] = swaparea[i];                                      
s2[++i] = '\0';                                           
}                                                            
}
' && i < 256) { s1[i] = s2[i]; s1[++i] = '
  #define Students 5                                             
#define Subject 4                                             
#include <string.h>                                              
main()                                                           
{                                                                
char name[STUDENTS][20];                                     
int  marks[STUDENTS][SUBJECTS+1];                    
printf("Input students names & their marks in four subjects\n");
get_list(name, marks, STUDENTS, SUBJECTS);                   
get_sum(marks, STUDENTS, SUBJECTS+1);                        
printf("\n");                                                
print_list(name,marks,STUDENTS,SUBJECTS+1);                  
get_rank_list(name, marks, STUDENTS, SUBJECTS+1);            
printf("\nRanked List\n\n");                                 
print_list(name,marks,STUDENTS,SUBJECTS+1);  
}                                                                
/*   Input student name and marks        */
get_list(char *string[ ],                                   
int array [ ] [SUBJECTS +1], int m, int n)                                       
{
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{                                                            
scanf("%s", string[i]);                                   
for(j = 0; j < SUBJECTS; j++)                             
scanf("%d", &(*(rowptr + i))[j]);                      
}                                                            
}
/*    Compute total marks obtained by each student   */
get_sum(int array [ ] [SUBJECTS +1], int m, int n)             
{                                                                
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{
(*(rowptr + i))[n-1] = 0;                                 
for(j =0; j < n-1; j++)                                   
(*(rowptr + i))[n-1] += (*(rowptr + i))[j];            
}                                                            
}                                                                
/*    Prepare rank list based on total marks      */
get_rank_list(char *string [ ],                                  
int array [ ] [SUBJECTS + 1]                      
int m,                                           
int n)                                    
{                                                                
int i, j, k, (*rowptr)[SUBJECTS+1] = array;                  
char *temp;                                                  
for(i = 1; i <= m-1; i++)                                    
for(j = 1; j <= m-i; j++)                                 
if( (*(rowptr + j-1))[n-1] < (*(rowptr + j))[n-1])     
{                                                      
swap_string(string[j-1], string[j]);                 
for(k = 0; k < n; k++)                               
swap_int(&(*(rowptr + j-1))[k],&(*(rowptr+j))[k]); 
}                                                      
}                                                                
/*      Print out the ranked list            */
print_list(char *string[ ],                                   
int array [] [SUBJECTS + 1],                       
int m,                                               
int n)                                       
{                                                                
int  i, j, (*rowptr)[SUBJECTS+1] = array;                    
for(i = 0; i < m; i++)                                       
{                                                            
printf("%-20s", string[i]);                               
for(j = 0; j < n; j++)                                    
printf("%5d", (*(rowptr + i))[j]);                     
printf("\n");                                          
}                                                            
}                                                                
/*     Exchange of integer values              */
swap_int(int *p, int *q)                                 
{                                                                
int  temp;                                                   
temp = *p;                                                   
*p   = *q;                                                   
*q   = temp;                                                 
}    
/*     Exchange of strings         */
swap_string(char s1[ ], char s2[ ])                     
{                                                                
char  swaparea[256];                                         
int   i;                                                     
for(i = 0; i < 256; i++)                                     
swaparea[i] = '\0';                                       
i = 0;                                                       
while(s1[i] != '\0' && i < 256)                              
{                                                            
swaparea[i] = s1[i];                                      
i++;                                                      
}                                                            
i = 0;                                                       
while(s2[i] != '\0' && i < 256)                              
{                                                            
s1[i] = s2[i];                                            
s1[++i] = '\0';                                           
}                                                            
i = 0;                                                       
while(swaparea[i] != '\0')                                   
{                                                            
s2[i] = swaparea[i];                                      
s2[++i] = '\0';                                           
}                                                            
}
'; } i = 0; while(swaparea[i] != '
  #define Students 5                                             
#define Subject 4                                             
#include <string.h>                                              
main()                                                           
{                                                                
char name[STUDENTS][20];                                     
int  marks[STUDENTS][SUBJECTS+1];                    
printf("Input students names & their marks in four subjects\n");
get_list(name, marks, STUDENTS, SUBJECTS);                   
get_sum(marks, STUDENTS, SUBJECTS+1);                        
printf("\n");                                                
print_list(name,marks,STUDENTS,SUBJECTS+1);                  
get_rank_list(name, marks, STUDENTS, SUBJECTS+1);            
printf("\nRanked List\n\n");                                 
print_list(name,marks,STUDENTS,SUBJECTS+1);  
}                                                                
/*   Input student name and marks        */
get_list(char *string[ ],                                   
int array [ ] [SUBJECTS +1], int m, int n)                                       
{
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{                                                            
scanf("%s", string[i]);                                   
for(j = 0; j < SUBJECTS; j++)                             
scanf("%d", &(*(rowptr + i))[j]);                      
}                                                            
}
/*    Compute total marks obtained by each student   */
get_sum(int array [ ] [SUBJECTS +1], int m, int n)             
{                                                                
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{
(*(rowptr + i))[n-1] = 0;                                 
for(j =0; j < n-1; j++)                                   
(*(rowptr + i))[n-1] += (*(rowptr + i))[j];            
}                                                            
}                                                                
/*    Prepare rank list based on total marks      */
get_rank_list(char *string [ ],                                  
int array [ ] [SUBJECTS + 1]                      
int m,                                           
int n)                                    
{                                                                
int i, j, k, (*rowptr)[SUBJECTS+1] = array;                  
char *temp;                                                  
for(i = 1; i <= m-1; i++)                                    
for(j = 1; j <= m-i; j++)                                 
if( (*(rowptr + j-1))[n-1] < (*(rowptr + j))[n-1])     
{                                                      
swap_string(string[j-1], string[j]);                 
for(k = 0; k < n; k++)                               
swap_int(&(*(rowptr + j-1))[k],&(*(rowptr+j))[k]); 
}                                                      
}                                                                
/*      Print out the ranked list            */
print_list(char *string[ ],                                   
int array [] [SUBJECTS + 1],                       
int m,                                               
int n)                                       
{                                                                
int  i, j, (*rowptr)[SUBJECTS+1] = array;                    
for(i = 0; i < m; i++)                                       
{                                                            
printf("%-20s", string[i]);                               
for(j = 0; j < n; j++)                                    
printf("%5d", (*(rowptr + i))[j]);                     
printf("\n");                                          
}                                                            
}                                                                
/*     Exchange of integer values              */
swap_int(int *p, int *q)                                 
{                                                                
int  temp;                                                   
temp = *p;                                                   
*p   = *q;                                                   
*q   = temp;                                                 
}    
/*     Exchange of strings         */
swap_string(char s1[ ], char s2[ ])                     
{                                                                
char  swaparea[256];                                         
int   i;                                                     
for(i = 0; i < 256; i++)                                     
swaparea[i] = '\0';                                       
i = 0;                                                       
while(s1[i] != '\0' && i < 256)                              
{                                                            
swaparea[i] = s1[i];                                      
i++;                                                      
}                                                            
i = 0;                                                       
while(s2[i] != '\0' && i < 256)                              
{                                                            
s1[i] = s2[i];                                            
s1[++i] = '\0';                                           
}                                                            
i = 0;                                                       
while(swaparea[i] != '\0')                                   
{                                                            
s2[i] = swaparea[i];                                      
s2[++i] = '\0';                                           
}                                                            
}
') { s2[i] = swaparea[i]; s2[++i] = '
  #define Students 5                                             
#define Subject 4                                             
#include <string.h>                                              
main()                                                           
{                                                                
char name[STUDENTS][20];                                     
int  marks[STUDENTS][SUBJECTS+1];                    
printf("Input students names & their marks in four subjects\n");
get_list(name, marks, STUDENTS, SUBJECTS);                   
get_sum(marks, STUDENTS, SUBJECTS+1);                        
printf("\n");                                                
print_list(name,marks,STUDENTS,SUBJECTS+1);                  
get_rank_list(name, marks, STUDENTS, SUBJECTS+1);            
printf("\nRanked List\n\n");                                 
print_list(name,marks,STUDENTS,SUBJECTS+1);  
}                                                                
/*   Input student name and marks        */
get_list(char *string[ ],                                   
int array [ ] [SUBJECTS +1], int m, int n)                                       
{
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{                                                            
scanf("%s", string[i]);                                   
for(j = 0; j < SUBJECTS; j++)                             
scanf("%d", &(*(rowptr + i))[j]);                      
}                                                            
}
/*    Compute total marks obtained by each student   */
get_sum(int array [ ] [SUBJECTS +1], int m, int n)             
{                                                                
int   i, j, (*rowptr)[SUBJECTS+1] = array;                   
for(i = 0; i < m; i++)                                       
{
(*(rowptr + i))[n-1] = 0;                                 
for(j =0; j < n-1; j++)                                   
(*(rowptr + i))[n-1] += (*(rowptr + i))[j];            
}                                                            
}                                                                
/*    Prepare rank list based on total marks      */
get_rank_list(char *string [ ],                                  
int array [ ] [SUBJECTS + 1]                      
int m,                                           
int n)                                    
{                                                                
int i, j, k, (*rowptr)[SUBJECTS+1] = array;                  
char *temp;                                                  
for(i = 1; i <= m-1; i++)                                    
for(j = 1; j <= m-i; j++)                                 
if( (*(rowptr + j-1))[n-1] < (*(rowptr + j))[n-1])     
{                                                      
swap_string(string[j-1], string[j]);                 
for(k = 0; k < n; k++)                               
swap_int(&(*(rowptr + j-1))[k],&(*(rowptr+j))[k]); 
}                                                      
}                                                                
/*      Print out the ranked list            */
print_list(char *string[ ],                                   
int array [] [SUBJECTS + 1],                       
int m,                                               
int n)                                       
{                                                                
int  i, j, (*rowptr)[SUBJECTS+1] = array;                    
for(i = 0; i < m; i++)                                       
{                                                            
printf("%-20s", string[i]);                               
for(j = 0; j < n; j++)                                    
printf("%5d", (*(rowptr + i))[j]);                     
printf("\n");                                          
}                                                            
}                                                                
/*     Exchange of integer values              */
swap_int(int *p, int *q)                                 
{                                                                
int  temp;                                                   
temp = *p;                                                   
*p   = *q;                                                   
*q   = temp;                                                 
}    
/*     Exchange of strings         */
swap_string(char s1[ ], char s2[ ])                     
{                                                                
char  swaparea[256];                                         
int   i;                                                     
for(i = 0; i < 256; i++)                                     
swaparea[i] = '\0';                                       
i = 0;                                                       
while(s1[i] != '\0' && i < 256)                              
{                                                            
swaparea[i] = s1[i];                                      
i++;                                                      
}                                                            
i = 0;                                                       
while(s2[i] != '\0' && i < 256)                              
{                                                            
s1[i] = s2[i];                                            
s1[++i] = '\0';                                           
}                                                            
i = 0;                                                       
while(swaparea[i] != '\0')                                   
{                                                            
s2[i] = swaparea[i];                                      
s2[++i] = '\0';                                           
}                                                            
}
'; } }

Output


Output                                                           
                                                                    
   Input students names & their marks in four subjects              
   S.Laxmi 45 67 38 55                                              
   V.S.Rao 77 89 56 69                                              
   A.Gupta 66 78 98 45                                              
   S.Mani 86 72 0 25                                                
   R.Daniel 44 55 66 77                                             
   S.Laxmi                45   67   38   55  205                    
   V.S.Rao                77   89   56   69  291                    
   A.Gupta                66   78   98   45  287                    
   S.Mani                 86   72    0   25  183                    
   R.Daniel               44   55   66   77  242                    
                                                                    
   Ranked List                                                      
   V.S.Rao                77   89   56   69  291                    
   A.Gupta                66   78   98   45  287                    
   R.Daniel               44   55   66   77  242                    
   S.Laxmi                45   67   38   55  205                    
   S.Mani                 86   72    0   25  183

Let me know if you find any difficulty in understanding this C Program to Calculate Rank list of Class Students example and I would be glad to explain it further.

Online Training Tutorials

  • C Program to Find Total of Even IntegersC Program to Print Elements of Array using PointersThe following program to Print Elements of Array using Pointers with simple code with examples. The C pointer is a variable whose value is the address of another variable, i.e., direct […]
  • C Program to Find Total of Even IntegersC Pointers with ExampleC pointers is special type of variable which holds the address or location of another variable. Pointers point to these locations by keeping a record of the spot at which they were stored. […]
  • SAP Schedule Line CategoriesWhat is Schedule Line Categories and Schedule Agreements in SAP?SAP Schedule Line Categories, Every time SAP System can copy the those listed items of sales document which will have schedule line. The normal scenario Schedule lines contain all the […]
  • SAP certificationWhy You Should think about Pursuing SAP Certification?SAP Certification: Although there are many people out there currently debating the value of SAP certification, the truth remains that SAP certified individuals are actually highly demanded […]
  • List of companies using SAP in IndiaThe List of companies using SAP in IndiaAs SAP is ERP solution and one can work as a consultant implementing SAP. If you have a programming background, you can go for technical module and work as technical consultant. we can […]
  • rfid readerRFID Reader Connects and ebooksRFID reader is an identification method using different tags. These tags are called RFID tags, normally three varieties, i.e. passive, active and semi-passive. These identification method […]
  • Period End Closing activities in ControllingThis is one of the regular tasks in the production environment. The period end closing activities are defined as the regular periodical tasks to be executed at predetermined period […]
  • Python functionsPython functionsWe are able to create our own Python functions. Use the interpreter, generally, if you only need to do a calculation once. However, when you or others need to make a specific type of […]