#include <stdio.h>
#include <stdlib.h>
void print_table( int row, int col, double marks[ row] [ col] )
{
int i, j;
for ( i= 0 ; i< row; i++ )
{
for ( j= 0 ; j< col; j++ )
{
printf ( "%02.1lf " , marks
[ i
] [ j
] ) ; }
}
}
int main( )
{
int number_of_students;
printf ( "Enter number of students: " ) ; scanf ( "%d" ,& number_of_students
) ;
char student_name[ number_of_students] [ 50 ] ;
int i, j;
for ( i= 0 ; i< number_of_students; i++ )
{
printf ( "Student %d name: " , i
) ; }
for ( i= 0 ; i< number_of_students; i++ )
{
printf ( "Student %d name: " , i
) ; }
int number_of_courses;
printf ( "Enter number of courses: " ) ; scanf ( "%d" ,& number_of_courses
) ;
double marks[ number_of_students] [ number_of_courses] ;
for ( i= 0 ; i< number_of_students; i++ )
{
printf ( "Marks of %s: \n " , student_name
[ i
] ) ; for ( j= 0 ; j< number_of_courses; j++ )
{
printf ( "\t ->Mark of course %d: " , j
) ; scanf ( "%lf" ,& marks
[ i
] [ j
] ) ; }
}
/// Average mark of each student
double total_mark[ number_of_students] ;
for ( i= 0 ; i< number_of_students; i++ )
{
total_mark[ i] = 0 ;
for ( j= 0 ; j< number_of_courses; j++ )
{
total_mark[ i] += marks[ i] [ j] ;
}
printf ( "Average mark of %s is %0.2lf\n " , student_name
[ i
] , total_mark
[ i
] / number_of_courses
) ; }
print_table( number_of_students, number_of_courses, marks) ;
/// highest mark of each student
double highest_student_mark[ number_of_students] ;
for ( i= 0 ; i< number_of_students; i++ )
{
highest_student_mark[ i] = marks[ i] [ 0 ] ;
for ( j= 0 ; j< number_of_courses; j++ )
{
if ( highest_student_mark[ i] < marks[ i] [ j] )
{
highest_student_mark[ i] = marks[ i] [ j] ;
}
}
printf ( "Highest mark of %s is %0.2lf\n " , student_name
[ i
] , highest_student_mark
[ i
] ) ; }
/// HIGHEST NUMBER OF EACH COURSE
double highest_course_mark[ number_of_students] ;
for ( i= 0 ; i< number_of_courses; i++ )
{
highest_course_mark[ i] = - 1 ;
for ( j= 0 ; j< number_of_students; j++ )
{
if ( highest_course_mark[ i] < marks[ j] [ i] )
{
highest_course_mark[ i] = marks[ j] [ i] ;
}
}
printf ( "\n Highest mark of course %d is %0.2lf\n " , i
, highest_course_mark
[ i
] ) ; }
/// subject grade of each student
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnZvaWQgcHJpbnRfdGFibGUoaW50IHJvdywgaW50IGNvbCwgZG91YmxlIG1hcmtzW3Jvd11bY29sXSkKewogICAgaW50IGksajsKICAgIGZvcihpPTA7IGk8cm93OyBpKyspCiAgICB7CiAgICAgICAgZm9yKGo9MDsgajxjb2w7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiJTAyLjFsZiAiLG1hcmtzW2ldW2pdKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQp9CgoKCmludCBtYWluKCkKewogICAgaW50IG51bWJlcl9vZl9zdHVkZW50czsKICAgIHByaW50ZigiRW50ZXIgbnVtYmVyIG9mIHN0dWRlbnRzOiAiKTsKICAgIHNjYW5mKCIlZCIsJm51bWJlcl9vZl9zdHVkZW50cyk7CgogICAgY2hhciBzdHVkZW50X25hbWVbbnVtYmVyX29mX3N0dWRlbnRzXVs1MF07CiAgICBpbnQgaSxqOwoKICAgIGZvcihpPTA7IGk8bnVtYmVyX29mX3N0dWRlbnRzOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCJTdHVkZW50ICVkIG5hbWU6ICIsaSk7CiAgICAgICAgZmZsdXNoKHN0ZGluKTsKICAgICAgICBnZXRzKHN0dWRlbnRfbmFtZVtpXSk7CiAgICB9CgogICAgZm9yKGk9MDsgaTxudW1iZXJfb2Zfc3R1ZGVudHM7IGkrKykKICAgIHsKICAgICAgICBwcmludGYoIlN0dWRlbnQgJWQgbmFtZTogIixpKTsKICAgICAgICBwdXRzKHN0dWRlbnRfbmFtZVtpXSk7CiAgICB9CgogICAgaW50IG51bWJlcl9vZl9jb3Vyc2VzOwogICAgcHJpbnRmKCJFbnRlciBudW1iZXIgb2YgY291cnNlczogIik7CiAgICBzY2FuZigiJWQiLCZudW1iZXJfb2ZfY291cnNlcyk7CgogICAgZG91YmxlIG1hcmtzW251bWJlcl9vZl9zdHVkZW50c11bbnVtYmVyX29mX2NvdXJzZXNdOwoKICAgIGZvcihpPTA7IGk8bnVtYmVyX29mX3N0dWRlbnRzOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCJNYXJrcyBvZiAlczogXG4iLHN0dWRlbnRfbmFtZVtpXSk7CiAgICAgICAgZm9yKGo9MDsgajxudW1iZXJfb2ZfY291cnNlczsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgcHJpbnRmKCJcdC0+TWFyayBvZiBjb3Vyc2UgJWQ6ICIsIGopOwogICAgICAgICAgICBzY2FuZigiJWxmIiwmbWFya3NbaV1bal0pOwogICAgICAgIH0KICAgIH0KCiAgICAvLy8gQXZlcmFnZSBtYXJrIG9mIGVhY2ggc3R1ZGVudAogICAgZG91YmxlIHRvdGFsX21hcmtbbnVtYmVyX29mX3N0dWRlbnRzXTsKCiAgICBmb3IoaT0wOyBpPG51bWJlcl9vZl9zdHVkZW50czsgaSsrKQogICAgewogICAgICAgIHRvdGFsX21hcmtbaV0gPSAwOwogICAgICAgIGZvcihqPTA7IGo8bnVtYmVyX29mX2NvdXJzZXM7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIHRvdGFsX21hcmtbaV0gKz0gbWFya3NbaV1bal07CiAgICAgICAgfQogICAgICAgIHByaW50ZigiQXZlcmFnZSBtYXJrIG9mICVzIGlzICUwLjJsZlxuIixzdHVkZW50X25hbWVbaV0sdG90YWxfbWFya1tpXS9udW1iZXJfb2ZfY291cnNlcyk7CiAgICB9CgogICAgc3lzdGVtKCJjbHMiKTsKICAgIHByaW50X3RhYmxlKG51bWJlcl9vZl9zdHVkZW50cyxudW1iZXJfb2ZfY291cnNlcyxtYXJrcyk7CgoKICAgIC8vLyBoaWdoZXN0IG1hcmsgb2YgZWFjaCBzdHVkZW50CiAgICBkb3VibGUgaGlnaGVzdF9zdHVkZW50X21hcmtbbnVtYmVyX29mX3N0dWRlbnRzXTsKICAgIGZvcihpPTA7IGk8bnVtYmVyX29mX3N0dWRlbnRzOyBpKyspCiAgICB7CiAgICAgICAgaGlnaGVzdF9zdHVkZW50X21hcmtbaV0gPSBtYXJrc1tpXVswXTsKICAgICAgICBmb3Ioaj0wOyBqPG51bWJlcl9vZl9jb3Vyc2VzOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZihoaWdoZXN0X3N0dWRlbnRfbWFya1tpXSA8IG1hcmtzW2ldW2pdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBoaWdoZXN0X3N0dWRlbnRfbWFya1tpXSA9IG1hcmtzW2ldW2pdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHByaW50ZigiSGlnaGVzdCBtYXJrIG9mICVzIGlzICUwLjJsZlxuIixzdHVkZW50X25hbWVbaV0saGlnaGVzdF9zdHVkZW50X21hcmtbaV0pOwogICAgfQoKICAgIC8vLyBISUdIRVNUIE5VTUJFUiBPRiBFQUNIIENPVVJTRQogICAgZG91YmxlIGhpZ2hlc3RfY291cnNlX21hcmtbbnVtYmVyX29mX3N0dWRlbnRzXTsKICAgIGZvcihpPTA7IGk8bnVtYmVyX29mX2NvdXJzZXM7IGkrKykKICAgIHsKICAgICAgICBoaWdoZXN0X2NvdXJzZV9tYXJrW2ldID0gLTE7CiAgICAgICAgZm9yKGo9MDsgajxudW1iZXJfb2Zfc3R1ZGVudHM7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGhpZ2hlc3RfY291cnNlX21hcmtbaV0gPCBtYXJrc1tqXVtpXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaGlnaGVzdF9jb3Vyc2VfbWFya1tpXSA9IG1hcmtzW2pdW2ldOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHByaW50ZigiXG5IaWdoZXN0IG1hcmsgb2YgY291cnNlICVkIGlzICUwLjJsZlxuIixpLGhpZ2hlc3RfY291cnNlX21hcmtbaV0pOwogICAgfQogICAgLy8vIHN1YmplY3QgZ3JhZGUgb2YgZWFjaCBzdHVkZW50CgogICAgcmV0dXJuIDA7Cn0K