函数

一、目标:
1.掌握函数的定义、声明、调用
2.理解形参和实参概念
3.掌握函数调用时的值传递和地址传递的区别
4.掌握数组元素和数组名作参数的不同用法
二、学习内容

  1. 程序1
    1.1 用C编写 int max(int a,int b)函数,和主函数。完成主函数输入的3个整数,调用max函数计算并输出最大数。
    1.2 参考代码:
#include <stdio.h>
void main( )
{
      int max(int a,int b);
      int x,y,z,m;
      printf("Please enter three numbers: ");
      scanf("%d%d%d",&x,&y,&z);
      
      m=max(max(x,y),z);
      
      printf("The max is %d.\n",m);
}
int max(int a,int b)
{
      int c;
      if(a>b)   
      		c=a;
      else      
      		c=b;
      return (c);
}
  1. 程序2
    2.1 编写C程序,输入三角形三边a、b、c,通过调用float area(float a, float b, float c)计算三角形面积。
    注意:sqrt()开平方函数,需要include <math.h>
    2.2 参考代码
#include <stdio.h>
#include <math.h>
void main( )
{
    float area(float a,float b,float c);
    float x,y,z,ts;
    printf("Please enter x,y and z: ");
    scanf("%f,%f,%f",&x,&y,&z);
    if(x>0 && y>0 && z>0
            && x+y>z
            && y+z>x
            &&x+z>y)
    {
        ts=area(x,y,z);
        printf("area=%f\n",ts);
    }
    else
        printf("data error!\n");
}
float area(float a,float b,float c)
{
    float s,p,area;
    s=(a+b+c)/2;
    p=s*(s-a)*(s-b)*(s-c);
    area=sqrt(p);
    return (area);
}

  1. 程序3
    3.1 编写C程序,输入一个整数n,输出一个n行的三角形金字塔。如下图
    输入4时,输出4行的*构成的金字塔
    3.2 参考代码
#include <stdio.h>
void main( )
{
    void trangle(int n);
    int n;
    printf("请输入一个整数值:");
    scanf("%d",&n);
    printf("\n");
    trangle(n);
}
void trangle(int n)
{
    int i,j;
    for(i=0; i<n; i++)
    {
        for(j=0; j<=n-i; j++)  putchar(‘ ’);
        for(j=0; j<=2*i; j++)  putchar(*);
        putchar(‘\n’);
    }
}

  1. 程序4
    4.1 编C程序,定义数组存放一个学生的5门课程的成绩,输入成绩,并通过调用aver函数求平均成绩。
    注意:函数名作参数。
    4.2 参考代码
#include <stdio.h>
void main( )
{
    float aver(float a[ ]);
    int i;
    float score[5],average;
    printf("请输入该学生5门课程的成绩:\n");
    for(i=0; i<5; i++)
        scanf("%f",&score[i]);
    average=aver(score);
    printf("平均成绩是%5.2f\n",average);
}
float aver(float a[ ])
{
    int i;
    float ave,sum=0;
    for(i=0; i<5; i++)
        sum=sum+a[i];
    ave=sum/5;
    return ave;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值