第6章 函数
示例代码:
示例代码6-1
/*
返回两个整数中较大的函数
*/
#include <stdio.h>
// 返回较大整数的值
int maxof(int x, int y)
{
if (x > y)
return (x);
else
return (y);
}
int main(void)
{
int na, nb;
puts("请输入两个整数。");
printf("整数1:"); scanf("%d", &na);
printf("整数2:"); scanf("%d", &nb);
printf("较大整数的数值是%d。\n", maxof(na, nb));
return (0);
}
示例代码6-2
/*
返回三个整数中最大值的函数
*/
#include <stdio.h>
// 返回三个整数中最大值
int max3(int x, int y, int z)
{
int max = x;
if (y > max) max = y;
if (z > max) max = z;
return (max);
}
int main(void)
{
int na, nb, nc;
puts("请输入三个整数。");
printf("整数1:"); scanf("%d", &na);
printf("整数2:"); scanf("%d", &nb);
printf("整数3:"); scanf("%d", &nc);
printf("最大值是%d。\n", max3(na, nb, nc));
return (0);
}
示例代码6-3
/*
计算两个整数的平方差
*/
#include <stdio.h>
// 返回平方
int sqr(int x)
{
return (x * x);
}
// 返回差值
int diff(int x, int y)
{
return (x > y ? x - y : y - x);
}
int main(void)
{
int kx, ky, kx2, ky2;
puts("请输入两个整数。");
printf("整数kx:"); scanf("%d", &kx);
printf("整数ky:"); scanf("%d", &ky);
kx2 = sqr(kx); // kx的平方根
ky2 = sqr(ky); // ky的平方根
printf("kx和ky的平方差是%d。\n", diff(kx2, ky2));
return (0);
}
示例代码6-4
/*
计算幂
*/
#include <stdio.h>
// 返回dx的no次幂
double power(double dx, int no)
{
int i;
double tmp = 1.0;
for (i = 1; i <= no; i++)
tmp *= dx;
return (tmp);
}
int main(void)
{
int n;
double x;
printf("请输入一个实数:"); scanf("%lf", &x);
printf("请输入一个整数:"); scanf("%d", &n);
printf("%.2f的%d次幂是%.2f。\n", x, n, power(x, n));
return (0);
}
示例代码6-5
/*
计算幂
*/
#include <stdio.h>
// 返回dx的no次幂(第2版)
double power(double dx, int no)
{
double tmp = 1.0;
while (no-- > 0)
tmp *= dx;
return (tmp);
}
int main(void)
{
int n;
double x;
printf("请输入一个实数:"); scanf("%lf", &x);
printf("请输入一个整数:"); scanf("%d", &n);
printf("%.2f的%d次幂是%.2f。\n", x, n, power(x, n));
system("pause");
return (0);
}
示例代码6-6
/*
返回四个整数中较大的函数
*/
#include <stdio.h>
// 返回较大整数的值
int maxof(int x, int y)
{
if (x > y)
return (x);
else
return (y);
}
// 返回四个整数的最大值
int max4(int w, int x, int y, int z)
{
return (maxof(maxof(w, x), maxof(y, z)));
}
int main(void)
{
int na, nb, nc, nd;
puts("请输入四个整数。");
printf("整数1:"); scanf("%d", &na);
printf("整数2:"); scanf("%d", &nb);
printf("整数3:"); scanf("%d", &nc);
printf("整数4:"); scanf("%d", &nd);
printf("较大整数的数值是%d。\n", max4(na, nb, nc, nd));
return (0);
}
示例代码6-7
/*
显示出一个直角在左下方的直角三角形(函数版)
*/
#include <stdio.h>
// 连续显示出no个
void put_stars(int no)
{
while (no-- > 0)
putchar('*');
}
int main(void)
{
int i, ln;
printf("三角形有几层:");
scanf("%d", &ln);
for (i = 1; i <= ln; i++)
{
put_stars(i);
putchar('\n');
}
return (0);
}
示例代码6-8
/*
显示出一个直角在右下方的直角三角形(函数版)
*/
#include <stdio