#include <stdio.h> 
 
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 ( "%d" ,& marks
[ i
] [ j
] ) ;          } 
    } 
 
    double  average[ number_of_students] ; 
 
    for ( i= 0 ; i< number_of_students; i++ )  { 
 
            printf ( "average[%d] = %d\n " , i
, average
[ i
] ) ;          for ( j= 0 ; j< number_of_courses; j++ )  { 
                average[ i]  +=  marks[ i] [ j] ; 
            printf ( "\t -->average[%d] = %d\n " , i
, average
[ i
] ) ;   
        } 
    } 
    printf ( "average[] = %d\n " , average
[ 0 ] ) ;   
    for ( i= 0 ; i< number_of_students; i++ )  { 
        printf ( "Average mark of %s: %0.2lf\n " , student_name
[ i
] , average
[ i
] ) ;      } 
    return  0 ; 
} 
 
 
				I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpCnsKICAgIGludCBudW1iZXJfb2Zfc3R1ZGVudHM7CiAgICBwcmludGYoIkVudGVyIG51bWJlciBvZiBzdHVkZW50czogIik7CiAgICBzY2FuZigiJWQiLCZudW1iZXJfb2Zfc3R1ZGVudHMpOwoKICAgIGNoYXIgc3R1ZGVudF9uYW1lW251bWJlcl9vZl9zdHVkZW50c11bNTBdOwogICAgaW50IGksajsKCiAgICBmb3IoaT0wOyBpPG51bWJlcl9vZl9zdHVkZW50czsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiU3R1ZGVudCAlZCBuYW1lOiAiLGkpOwogICAgICAgIGZmbHVzaChzdGRpbik7CiAgICAgICAgZ2V0cyhzdHVkZW50X25hbWVbaV0pOwogICAgfQoKICAgIGZvcihpPTA7IGk8bnVtYmVyX29mX3N0dWRlbnRzOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCJTdHVkZW50ICVkIG5hbWU6ICIsaSk7CiAgICAgICAgcHV0cyhzdHVkZW50X25hbWVbaV0pOwogICAgfQoKICAgIGludCBudW1iZXJfb2ZfY291cnNlczsKICAgIHByaW50ZigiRW50ZXIgbnVtYmVyIG9mIGNvdXJzZXM6ICIpOwogICAgc2NhbmYoIiVkIiwmbnVtYmVyX29mX2NvdXJzZXMpOwoKICAgIGRvdWJsZSBtYXJrc1tudW1iZXJfb2Zfc3R1ZGVudHNdW251bWJlcl9vZl9jb3Vyc2VzXTsKCiAgICBmb3IoaT0wO2k8bnVtYmVyX29mX3N0dWRlbnRzO2krKykgewogICAgICAgIHByaW50ZigiTWFya3Mgb2YgJXM6IFxuIixzdHVkZW50X25hbWVbaV0pOwogICAgICAgIGZvcihqPTA7ajxudW1iZXJfb2ZfY291cnNlcztqKyspIHsKICAgICAgICAgICAgcHJpbnRmKCJcdC0+TWFyayBvZiBjb3Vyc2UgJWQ6ICIsIGopOwogICAgICAgICAgICBzY2FuZigiJWQiLCZtYXJrc1tpXVtqXSk7CiAgICAgICAgfQogICAgfQoKICAgIGRvdWJsZSBhdmVyYWdlW251bWJlcl9vZl9zdHVkZW50c107CgogICAgZm9yKGk9MDtpPG51bWJlcl9vZl9zdHVkZW50cztpKyspIHsKCiAgICAgICAgICAgIHByaW50ZigiYXZlcmFnZVslZF0gPSAlZFxuIixpLGF2ZXJhZ2VbaV0pOwogICAgICAgIGZvcihqPTA7ajxudW1iZXJfb2ZfY291cnNlcztqKyspIHsKICAgICAgICAgICAgICAgIGF2ZXJhZ2VbaV0gKz0gbWFya3NbaV1bal07CiAgICAgICAgICAgIHByaW50ZigiXHQtLT5hdmVyYWdlWyVkXSA9ICVkXG4iLGksYXZlcmFnZVtpXSk7CgogICAgICAgIH0KICAgIH0KICAgIHByaW50ZigiYXZlcmFnZVtdID0gJWRcbiIsYXZlcmFnZVswXSk7CgogICAgZm9yKGk9MDtpPG51bWJlcl9vZl9zdHVkZW50cztpKyspIHsKICAgICAgICBwcmludGYoIkF2ZXJhZ2UgbWFyayBvZiAlczogJTAuMmxmXG4iLHN0dWRlbnRfbmFtZVtpXSxhdmVyYWdlW2ldKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==