运行本程序时,首先在显示器屏幕上给出提示串input number,这是由执行部分的第一行完成的。用户在提示下从键盘上键入某一数,如5,按下回车键,接着在屏幕上给出计算结果。 & m/ s3 j) o* Z& o# w " N" Q; r8 W/ D. b/ |/ b: D# i' t输入和输出函数 L. V& H0 M8 R9 @2 K. G6 H- t* ~; t7 P" L1 n. e. x
在前两个例子中用到了输入和输出函数scanf和 printf,在第三章中我们要详细介绍。这里我们先简单介绍一下它们的格式,以便下面使用。scanf和 printf这两个函数分别称为格式输入函数和格式输出函数。其意义是按指定的格式输入输出值。因此,这两个函数在括号中的参数表都由以下两部分组成: “格式控制串”,参数表 格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。各种类型的格式表示法可参阅第三章。在printf函数中还可以在格式控制串内出现非格式控制字符,这时在显示屏幕上将原文照印。参数表中给出了输入或输出的量。当有多个量时,用逗号间隔。例如: % t. z. K" p' O6 {3 T- l' vprintf("sine of %lf is %lf\n",x,s);6 {7 a A% N; m- s
其中%lf为格式字符,表示按双精度浮点数处理。它在格式串中两次现,对应了x和s两个变量。其余字符为非格式字符则照原样输出在屏幕上5 r0 x1 p8 _6 Z( P" c
int max(int a,int b); / @$ M) A+ l0 o+ vmain() 0 p* {7 N6 O0 X& O2 [8 J5 d- r{3 M6 ^; R% |1 i3 b# G
int x,y,z; ( Z) o- X: I9 c1 ~2 x" u L printf("input two numbers:\n"); ?( a) i, ]+ i3 }8 q1 y
scanf("%d%d",&x,&y); . b/ v6 t4 ~9 }+ T* E- c( } z=max(x,y); 2 w2 P5 G, w/ z6 Q8 c5 K/ `8 E printf("maxmum=%d",z);5 @7 `( s6 t7 r; U! c' Q, X
} $ }) p: U0 K+ hint max(int a,int b) 9 D+ E- [/ S4 z3 E# m: A1 ~' o{ 9 U% c4 Y$ N+ ]% M if(a>b)return a; 6 D6 I( w0 z8 l5 [3 @& ? else return b;! d. v: W. n* R
}+ U5 D& ?( _, G
此函数的功能是输入两个整数,输出其中的大数。1 P j& Q' ]. i( e
/*函数说明*/" P8 u# _! _& Q0 w- n) M
/*主函数*/8 k$ ]6 m0 \0 J# F: `/ t
/*变量说明*/! G; ^( F# b. a& p: s: b5 a' O8 T
/*输入x,y值*/ 5 z4 @; B" q& h1 [/*调用max函数*/ , Z7 ` b; X0 ~1 \
/*输出*/4 N. Q, G+ v! [
/*定义max函数*/9 [/ q% p5 h* V: f6 E. \+ J5 T7 \
/*把结果返回主调函数*/ 1 t# K" Z3 N, x 上面例中程序的功能是由用户输入两个整数,程序执行后输出其中较大的数。本程序由两个函数组成,主函数和max 函数。函数之间是并列关系。可从主函数中调用其它函数。max 函数的功能是比较两个数,然后把较大的数返回给主函数。max 函数是一个用户自定义函数。因此在主函数中要给出说明(程序第三行)。可见,在程序的说明部分中,不仅可以有变量说明,还可以有函数说明。关于函数的详细内容将在第五章介绍。在程序的每行后用/*和*/括起来的内容为注释部分,程序不执行注释部分。( P# c" j% Z- e0 J) F$ j; Z* x
5 F' v# R# j( U 上例中程序的执行过程是,首先在屏幕上显示提示串,请用户输入两个数,回车后由scanf函数语句接收这两个数送入变量x,y中,然后调用max函数,并把x,y 的值传送给max函数的参数a,b。在max函数中比较a,b的大小,把大者返回给主函数的变量z,最后在屏幕上输出z的值。