例7.1 想输出以下的结果,用函数调用实现。
# include <stdio.h>
int main ( )
{
int a[ 2 ] [ 3 ] = { { 1 , 2 , 3 } , { 4 , 5 , 6 } } ;
int b[ 3 ] [ 2 ] , i, j;
printf ( "array a:\n" ) ;
for ( i= 0 ; i<= 1 ; i++ )
{
for ( j= 0 ; j<= 2 ; j++ )
{
printf ( "%5d" , a[ i] [ j] ) ;
b[ j] [ i] = a[ i] [ j] ;
}
printf ( "\n" ) ;
}
printf ( "array b:\n" ) ;
for ( i= 0 ; i<= 2 ; i++ )
{
for ( j= 0 ; j<= 1 ; j++ )
printf ( "%5d" , b[ i] [ j] ) ;
printf ( "\n" ) ;
}
return 0 ;
例7.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数
#include <stdio.h>
int main ( )
{
int a[ 10 ] ;
int i, j, t;
printf ( "input 10 numbers:\n" ) ;
for ( i= 0 ; i< 10 ; i++ )
scanf ( "%d" , & a[ i] ) ;
printf ( "\n" ) ;
for ( j= 0 ; j< 9 ; j++ )
for ( i= 0 ; i< 9 - j; i++ )
if ( a[ i] > a[ i+ 1 ] )
{ t= a[ i] ; a[ i] = a[ i+ 1 ] ; a[ i+ 1 ] = t; }
printf ( "the sorted numbers:\n" ) ;
for ( i= 0 ; i< 10 ; i++ )
printf ( "%d " , a[ i] ) ;
printf ( "\n" ) ;
return 0 ;
}
例7.4 输入两个实数,用一个函数求出它们之和。
# include <stdio.h>
int main ( )
{
int max ( float x, float y) ;
float a, b;
int c;
scanf ( "%f,%f" , & a, & b) ;
c= max ( a, b) ;
printf ( "max is %d\n" , c) ;
return 0 ;
}
int max ( float x, float y)
{ float z;
z= x> y? x: y;
return ( z) ;
}
例7.3 将例7.2稍作改动,将在max函数中定义的变量z改为float型。函数返回值的类型与指定的函数类型不同,分析其处理方法。
# int max(int x,int y)
{
int z;
z= x> y? x: y;
return ( z) ;
}
#include <stdio.h>
int main ( )
{
int max ( int x, int y) ;
int a, b, c;
printf ( "please enter two integer numbers:" ) ;
scanf ( "%d,%d" , & a, & b) ;
c= max ( a, b) ;
printf ( "max is %d\n" , c) ;
return 0 ;
}