In this HackerRank Students Marks sum in c programming problem solution you need to Complete the function, marks_summation(int* marks, char gender, int number_of_students) which returns the total sum of:

1. marks of boys if gender = b
2. marks of girls if gender = g

## HackerRank students mark sum problem solution in c programming.

```#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) {
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;
}```

## Second solution

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

int marks_summation(int* p, int number_of_students, char gender) {
int s = 0, i = 0;
if (gender == 'g') {
i++;
}
for (; i < number_of_students; i = i+2) {
s += p[i];
}
return s;
}

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;
}```