Students Marks Sum – Hacker Rank Solution


You are given an array of integers, marks, denoting the marks scored by students in a class.

  • The alternating elements marks0marks2marks4, and so on denote the marks of boys.
  • Similarly, marks1marks3marks5, and so on denote the marks of girls.

The array name marks, works as a pointer which stores the base address of that array. In other words, marks contains the address where marks0 is stored in the memory.For example, let marks = [3,2,5] and marks stores 0x7fff9575c05f. Then, 0x7fff9575c05f is the memory address of marks0.

Students Marks Sum HackerRank

Complete the function, marks_summation(int* marks, char gender, int number_of_students) which returns the total sum of: 

  • marks of boys if gender = b
  • marks of girl if gender = g

The locked code stub reads the elements of marksalong with gender. Then, it calls the function marks_summation(marks, gender, number_of_students) to get the sum of alternate elements as explained above and then prints the sum.

Input Format

  • The first line contains number_of_students, denoting the number of students in the class, hence the number of elements in marks.
  • Each of the number_of_students subsequent lines contains marksi.
  • The next line contains gender.

Constraints

  • number_of_students <=10^3
  • 1<=marksi<=10^3(where 0<= i< number_of_students)
  • gender = g or b

Output Format

The output should contain the sum of all the aternate elements in marks as explained above.


Sample Input 0

3
3
2
5
b

Sample Output 0

8

Explanation 0

marks = [3,2,5] andgender = b.
somarks0+marks2 = 3+5 = 8.

Sample Input 1

5
1
2
3
4
5
g

Sample Output 1 

6

Explanation 1

marks = [1,2,3,4,5] andgender = g.
so Sum = marks1+marks3 = 2+5 = 8.

Sample Input 2

1
5
g

Sample Output 2 

0

Explanation 2

marks = [5] andgender = g.
here does marks1 not exist. so Sum = 0

Students Marks Sum – Hacker Rank Solution

Code:

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

//Complete the following function.

int marks_summation(int* marks, int number_of_students, char gender) 
{
  //Write your code here.
  int sum = 0;
    for (int i = (gender == 'b' ? 0 : 1); i < number_of_students; i = i + 2) 
        sum += *(marks + i);
    
    return sum;
}
int main() {
    int number_of_students;
    char gender;
    int sum;
  
    scanf("%d", &number_of_students);
    int *marks = (int *) malloc(number_of_students * sizeof (int));
 
    for (int student = 0; student < number_of_students; student++) {
        scanf("%d", (marks + student));
    }
    
    scanf(" %c", &gender);
    sum = marks_summation(marks, number_of_students, gender);
    printf("%d", sum);
    free(marks);
 
    return 0;
}

Disclaimer: The above Problem (Students Marks Sum ) is generated by Hackerrank but the Solution is Provided by MultiplexCoder. This tutorial is only for Educational and Learning purposes.


 Tags:    hackerrank c solutions | Functions Discussions | C | HackerRank | student analysis C hackerrank solution | challenges C hackerrank solution | hackerrank C basic certification solutions | hackerrank-C certification solutions | basic data types hackerrank solution in c | variable sized arrays hackerrank solution in c | inherited code hackerrank solution in c | hackerrank c solutions github | hackerrank data structures solutions in c | hackerrank c class solution | pointer hackerrank solution in c | box it hackerrank solution in c | codechef  | 2021

Previous
Next Post »