《明解C语言》示例代码和练习代码[第6章]

第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
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值