C语言例题第七章

本文通过一系列C语言编程实例,讲解了如何使用函数解决实际问题,包括找最大数、求和、递归求阶乘、汉诺塔问题等。同时,涉及了变量作用域、外部变量与局部变量的处理,以及字符串操作和数组排序等核心概念。
摘要由CSDN通过智能技术生成

第七章用函数实现模块化程序设计


##例7.1想输出以下结果,用函数调用实现。
******************
How do you do!
******************

# include<stdio.h>
int main()
    {
   void print_star();
     void print_message();
      print_star();
      print_message();
      print_star();
      return 0;
     }
void print_star()
    {
   
     printf("******************\n");
    }
void print_message()
    {
   printf("How do you do!\n");
    }

在这里插入图片描述
##例7.2输入两个整数,要求输出其中较大者。要求用函数来找到大数。

(1)先编写max函数:
int max(int x,int y)
    {
   
     int z;
     z=x>y?x:y;
     return(z);
    }
(2)在编写主函数
# include<stdio.h>
int main()
    {
   int max(int x,int y);
     int a,b,c;
     printf("please enter two integer numbers:");
     scanf("%d,%d",&a,&b);
     c=max(a,b);
     printf("max is %d\n",c);
     return 0;
    }

在这里插入图片描述
##例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=x>y?x:y;
    return(z);
}

在这里插入图片描述
##例7.4输入两个实数,用一个函数求出它们之和。

# include<stdio.h>
int main()
    {
   float add(float x,float y);
     float a,b,c;
     printf("Please enter a and b:");
     scanf("%rf,%f",&a,&b);
     c=add(a,b);
     printf("sum is %f\n",c);
     return 0;
    }
float add(float x,float y)
    {
   float z;
    z=x+y;
    return(z);
    }

在这里插入图片描述
##例7.5输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。

# include<stdio.h>
int main()
    {
   int max4(int a,int b,int c,int d);
     int a,b,c,d,max;
     printf("Please enter 4 interger numbers:");
     scanf("%d %d %d %d",&a,&b,&c,&d);
     max=max4(a,b,c,d);
     printf("max=%d\n",max);
     return 0;
    }
int max4(int a,int b,int c,int d)
    {
   int max2(int a,int b);
     int m;
     m=max2(a,b);
     m=max2(m,c);
     m=max2(m,d);
     return(m);
    }
int max2(int a,int b)
    {
   if(a>=b)
        return a;
    else
        return b<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值