题目:设计一个程序,要求计算学生的总成绩和平均成绩,并用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程序设计》这本书。)