求助如何在原有矩阵多加一行变为另一个矩阵,多加的一行为前几列的平均值
编写一个求3个学生的各科平均成绩的程序,每个学生有4科成绩,学生成绩存放在A数组中,求平均成绩需调用函数void aver(float array[][4], int n),n为学生数,其中A数组的矩阵表示为编写源程序,给出注释及运行结果,自己试着增加学生数或者成绩科数再运行程序。(提示,注意按科平均成绩可存入数组A中,只需将A增加1行并先付初值0,求出平均值之后替换0)
//这是一个动态行主序数组的示例,如果行不够多,到时候利用realloc函数扩大就可以了。 //但是扩大之后的'行'依旧需要为其使用malloc申请空间。 //以下代码建立一个 5 × 10的‘多维数组’ int **p; p = ( int ** )malloc( 5 * sizoef( int * ) ); for( int i = 0; 5 > i; ++i ) p[ i ] = ( int * )malloc( 10 * sizeof( int ) );
#include <stdio.h> #define ARRAY( TYPE ) ( TYPE ){ 0 } int main( void ) { int ( *P1 )[10], ( *P2 )[ 10 ]; P1 = ARRAY( int [ 2 ][ 10 ] ); for( int i = 0; 2 > i; ++i ) for( int j = 0; 10 > j; ++j ) P1[ i ][ j ] = j + i; for( int i = 0; 2 > i; ++i ) for( int j = 0; 10 > j; ++j ) printf( "%d", P1[ i ][ j ] ), putchar( '\n' ); printf( "============P2=============\n" ); P2 = ARRAY( int [ 3 ][ 10 ] ); for( int i = 0; 3 > i; ++i ) for( int j = 0; 10 > j; ++j ) P2[ i ][ j ] = j + i; for( int i = 0; 3 > i; ++i ) for( int j = 0; 10 > j; ++j ) printf( "%d", P2[ i ][ j ] ), putchar( '\n' ); return 0; }
[此贴子已经被作者于2017-6-13 09:23编辑过]