第七章 用函数实现模块化程序设计
例7.1 想输出一下的结果,用函数调用实现。
******************
How do you do!
******************
#include<stdio.h>
int main()
{ void print_star(); //声明print_star函数
void print_message(); //声明print_message函数
print_star(); //调用print_star函数
print_message(); //print_message函数
print_star(); //调用print_star函数
return 0;
}
void print_star() //定义print_star函数
{
printf("******************\n"); //输出一行*号
}
void print_message() //定义print_message函数
{printf("How do you do!\n"); //输出一行文字信息
}
运行结果如下:
例7.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。
(1)先编写max函数:
int max(int x,int y) //定义max函数,有两个参数
{
int z; //定义临时变量
z=x>y? x:y; //把x和y中的大者赋给z
return(z); //把z作为max函数的值带回main函数
}
(2)再编写主函数
#include<stdio.h>
int main()
{ int max(int x,int y); //对max函数的声明
int a,b,c;
printf("please enter two integer numbers:"); //提示输入数据
scanf("%d,%d",&a,&b); //输入两个整数
c=max(a,b); //调用max函数,有两个实参。大数赋给变量c
printf("max is %d\n",c); //输出大数c
return 0;
}
把二者结合为一个程序文件,主函数在前面,max函数在下面。
运行结果如下:
例7.3 将例7.2稍作改动,将在max函数中定义的变量z改为float型。函数返回值的类型与指定的函数类型不同,分析其处理方法。
#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为实型变量
z=x>y? x:y;
return(z);
}
运行结果如下:
例7.4 输入两个实数,用一个函数求出它们之和。
#include<stdio.h>
int main()
{float add(float x,float y); //对add函数作声明
float a,b,c;
printf("Please enter a and b;"); //提示输入
scanf("%f,%f",&a,&b); //输入两个实数
c=add(a,b); //调用add函数
printf("sum is %f\n",c); //输出两数之和
return 0;
}
float add(float x,float y) //定义add函数
{ float z;
z=x+y;
return(z); //把变量z的值作为函数值返回
}
运行结果如下: