C语言及程序设计提高例程-9 函数的嵌套调用

简介: 贺老师教学链接  C语言及程序设计提高 本课讲解函数的嵌套调用:函数内调用函数#include <stdio.h>int gcd(int n1, int n2);int lcm(int n1, int n2);int main(){ int num1,num2; int iGcd, iLcm; //最大公约数和最小公倍数 printf("pl

贺老师教学链接  C语言及程序设计提高 本课讲解


函数的嵌套调用:函数内调用函数

#include <stdio.h>
int gcd(int n1, int n2);
int lcm(int n1, int n2);
int main()
{
    int num1,num2;
    int iGcd, iLcm;  //最大公约数和最小公倍数
    printf("please input two numbers:");
    scanf("%d%d",&num1,&num2);
    iGcd=gcd(num1, num2);
    iLcm=lcm(num1,num2);
    printf("the gcd is: %d\n",iGcd);
    printf("the lcm is: %d\n",iLcm);
    return 0;
}

int gcd(int n1, int n2)
{
    int r;
    while(n2!=0)/*利用辗除法,直到n2为0为止*/
    {
        r=n1%n2;
        n1=n2;
        n2=r;
    }
    return n1;
}

int lcm(int n1, int n2)
{
    return n1*n2*gcd(n1, n2);
};


用弦截法求解方程
/*用弦截法求方程f(x)=x^3-5x^2+16x-80=0的根。*/


#include <stdio.h>
#include <math.h>

double f(double);                  //函数声明 
double xpoint(double, double);     //函数声明
double root(double, double);       //函数声明

int main( )
{
    double x1,x2,f1,f2,x;
    do
    {
        printf("input x1,x2:");
        scanf("%lf %lf", &x1, &x2);
        f1=f(x1);
        f2=f(x2);
    }
    while(f1*f2>=0);  //保证f(x1)和f(x2)异号,(x1,x2)间有根
    x=root(x1,x2);
    printf("A root is %.5f\n", x);
    return 0;
}

/*
功能:求(x1, x2)区间方程的实根
参数:两个浮点型值,表示x轴上两点,由主调函数保证f(x1)和f(x2)是异号
返回值:方程的根
*/
double root(double x1, double  x2)
{
    double x,y,y1;
    y1=f(x1);
    do
    {
        x=xpoint(x1,x2);
        y=f(x);
        if (y*y1>0)
        {
            y1=y;
            x1=x;
        }
        else
            x2=x;
    }
    while(fabs(y)>=0.00001);
    return x;
}

/*
功能:求(x1, f(x1))和(x2, f(x2))的连线与x轴的交点x
参数:两个浮点型值,表示x轴上两点
返回值:交点的x轴坐标
*/
double xpoint(double x1, double x2)
{
    double x;
    x=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
    return x;
}

/*
功能:求函数f(x)=x3-5x2+16x-80的值
参数:一个浮点型数,表示x轴上的一点
返回值:给定函数的值
*/
double f(double x)
{
    double y;
    y=x*x*x-5*x*x+16*x-80;
    return y;
}


目录
相关文章
|
4天前
|
安全 C语言
【C语言基础】:内存操作函数
【C语言基础】:内存操作函数
|
4天前
|
编译器 C语言 C++
【C语言基础】:字符函数和字符串函数-2
【C语言基础】:字符函数和字符串函数
|
4天前
|
C语言
【C语言基础】:字符函数和字符串函数-1
【C语言基础】:字符函数和字符串函数
TU^
|
4天前
|
编译器 程序员 Serverless
C语言之函数
C语言之函数
TU^
4 0
TU^
|
4天前
|
机器学习/深度学习 C语言
C语言之函数递归
C语言之函数递归
TU^
7 1
|
4天前
|
C语言
C语言——字符串操作函数
C语言——字符串操作函数
5 0
|
4天前
|
机器学习/深度学习 算法 C语言
【C语言基础】:函数递归详解
【C语言基础】:函数递归详解
|
7月前
|
C语言
【C语言】用函数递归的方法解决汉诺塔问题
【C语言】用函数递归的方法解决汉诺塔问题
36 0
|
算法 程序员 C语言
C语言基础(有关三个数比较大小、冒泡排序、最大公约数、和有关某个数x的绝对值的n次方除于n的阶乘问题的函数求解法;和阶乘函数递归方法;和数组作函数参数的
C语言基础(有关三个数比较大小、冒泡排序、最大公约数、和有关某个数x的绝对值的n次方除于n的阶乘问题的函数求解法;和阶乘函数递归方法;和数组作函数参数的
|
Linux 编译器 C语言
C语言调用C++实现的库函数方法
C语言调用C++实现的库函数方法
143 0