Linux编写makefile文件实战

本文介绍了如何将一个计算学生总成绩和平均成绩的C程序拆分为多个文件并用Makefile进行管理。程序包括主函数main.c,以及分别计算总成绩和平均成绩的fun_sum.c和fun_avg.c。头文件chengji.h包含了函数声明。通过编辑和编译这些文件,最后使用`make -f makefile`命令在Linux环境下运行程序。
摘要由CSDN通过智能技术生成

题目:设计一个程序,要求计算学生的总成绩和平均成绩,并用make工程管理器编译。系统要求用户输入学生数和成绩,接着调用自定义函数fun_sum和fun_avg分别计算总成绩和平均成绩。计算结果传递回主函数。主函数用printf函数输出。此程序有主函数main和自定义函数fun_sum和fun_avg,再把函数声明都分割成独立的头文件,由此可将此程序分割成四个文件。

分析如下:

                                四个文件                   

        四个文件的函数逻辑   

3-10-main.c:调用两个函数fun_sum、fun_avg 

     

3-10-fun_sum.c:定义函数fun_sum 

3-10-fun_avg.c:定义函数fun_avg

chengji.h:包含fun_avg和fun_sum的函数声明 

文件3-10-main.c内容:

#include<stdio.h>

#include"chengji.h"

int main(void)

{

    .  .  .

    sum=fun_sum(array,n);

    . . .

    average=fun_avg(array,n);

     . . .

}

完整代vc++6.0):

#include<stdio.h>
float fun_avg(int var[],int num);
float fun_sum(int var[],int num);

float fun_avg(int var[],int num){
        float avrg=0.0;
        for(int i=0;i<num ;++i){
                avrg+=var[i];
                avrg/=num;
        }
        return (avrg);
}

float fun_sum(int var[],int num){
         float avrg=0.0;
         for(int i=0;i<num;++i){
                 avrg+=var[i];
         }
         return (avrg);
 }

int main(void){
        int n,i;
        int array[8];
        float sum,average;
        printf("请输入需要统计的学生数:");
        scanf("%d",&n);
        for(i=0;i<n;++i){
                printf("请输入第%d个学生的成绩:",i+1);
                scanf("%d",&array[i]);

        }
        sum =fun_sum(array,n);

        printf("请输出的%d个学生的总成绩是:%6.2f\n",n,sum);
        average=fun_avg(array,n);

        printf("请输出第%d个学生的平均成绩是:%6.2f\n",n,average);
        return 0;
}

演示结果:

 好了,话不多说直接上Linux吧!

注:在此之前先了解下头文件的编写:#ifndef CHENGJ_H      //文件名要大写
                                                             #define CHENGJI_H
                                                             float fun_sum(int var[],int num);   //函数声明
                                                             float fun_avg(int var[],int num);    //函数声明
                                                             #endif

* vi  chengji.h文件:

* vi  3-10-main.c文件:

* vi  3-10-fun_sum.c文件:

* vi  3-10-fun_avg.c文件编写:

*  编写makefile文件

 注:gcc前面的空格是用Tab键缩进的,不是按空格键,否则会出错!!!

 以上文件准备好了之后,在Ubuntu命令行输入make -f makefile3-10编译程序,然后./3-10执行程序即可。

 

(注意:makefile编写文件详情可参考《Linux程序设计》这本书。)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值