In this **HackerRank Students marks sum in c** programming language problem you need to 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 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;
}
```

## 0 Comments