すみませんもう一度、教えていただきませんか?
#include "stdio.h"
#include "stdlib.h"
//関数のプロトタイプ宣言
void f_init( int, int, int [][5] );
void f_pout( int, int, int [][5] );
void f_max( int , int , int [][5] );
void f_max_2( int , int , int [][5] );
void f_min( int, int, int [][5] );
void f_min_2( int , int , int [][5] );
void f_ave( int , int , int [][5] );
void f_ave_2( int , int , int [][5] );
int main()
{
int row = 3, col = 5;
int data1[3][5];
printf("data max min ave\n");
f_init( row, col, data1 );
f_pout( row, col, data1 );
printf("\n");
f_max( row, col, data1 );
f_min( row, col, data1 );
f_ave( row, col, data1 );
return 1;
}
void f_init( int row, int col, int dat[][5] )
{
int i, j;
for( i = 0; i < row; i++ ){
for( j = 0; j < col; j++ ){
dat[i][j] = rand() % 100;
}
}
}
void f_pout( int row, int col, int dat[][5] )
{
int i, j;
for( i = 0; i < row; i++ ){
printf( " " );
for( j = 0; j < col; j++ ){
printf( "%5d", dat[i][j] );
}
if( i == 0 ){
f_max_2( row, col, dat );
f_min_2( row, col, dat );
f_ave_2( row, col, dat );
}
printf( "\n" );
}
}
void f_max( int row, int col, int dat[][5] )
{
int i, j, k;
int Amax[5], max[5];
printf( "max" );
for( i = 0; i < row; i++ ){
for( j = 0; j < col; j++ ){
if( dat[i][j] > max[j] ){
max[j] = dat[i][j];
Amax[j] = max[j];
}
}
}
for( k = 0; k < col; k++ ){
printf( "%5d", Amax[k] );
}
printf( "\n" );
}
void f_min( int row, int col, int dat[][5] )
{
int i, j, k;
int Amin[5], min[5] = { 99, 99, 99, 99, 99 } ;
printf( "min" );
for( i = 0; i < row; i++ ){
for( j = 0; j < col; j++ ){
if( dat[i][j] < min[j] ){
min[j] = dat[i][j];
Amin[j] = min[j];
}
}
}
for( k = 0; k < col; k++ ){
printf( "%5d", Amin[k] );
}
printf( "\n" );
}
void f_ave( int row, int col, int dat[][5] )
{
int i, j, sum;
printf( "ave " );
for( j = 0; j < col; j++ ){
sum = 0;
for( i = 0; i < row; i++ ){
sum += dat[i][j];
}
printf( "%5.1f", (double)sum / row );
}
printf( "\n" );
}
void f_max_2( int row, int col, int dat[][5] )
{
int i, j;
int Amax_2[3], max_2[3];
for( i = 0; i < row; i++ ){
for( j = 0; j < col; j++ ){
if( dat[i][j] > max_2[i] ){
max_2[i] = dat[i][j];
Amax_2[i] = max_2[i];
}
}
printf( "%5d",Amax_2[i] );
}
}
void f_min_2( int row, int col, int dat[][5] )
{
int i, j;
int Amin_2[3], min_2[3] = {99,99,99};
for( i = 0; i < row; i++ ){
for( j = 0; j < col; j++ ){
if( dat[i][j] < min_2[i] ){
min_2[i] = dat[i][j];
Amin_2[i] = min_2[i];
}
}
printf( "%5d", Amin_2[i] );
}
}
void f_ave_2( int row, int col, int dat[][5] )
{
int i, j;
int sum;
for( i = 0; i < row; i++ ){
sum = 0;
for( j = 0; j < col; j++ ){
sum += dat[i][j];
}
printf( "%5.1f", (double)sum / col );
}
}
でもそれをなくすと3回ずつ表示されます、、、
前回の質問のときよりだいぶ考えたのですが、、、やっぱりよくわかりませんでしたorz
本当にもうお手上げです、、、