编写计算阶乘的C语言程序,编译并运行,记录其计算结果。 要求:将main主程序、计算阶乘的函数factorial分别保存在两个源文件中(main.c、factorial.c),写一个makefile文件,编译main.c和factorial.c并生成可执行文件myfact。
时间: 2024-11-27 21:14:41 浏览: 37
编写计算阶乘的C语言程序通常会包括一个`factorial`函数,它接收一个整数作为输入并返回该数的阶乘。我们将这个功能分为两个源文件:一个用于包含主函数`main`(main.c),另一个包含阶乘计算函数`factorial`(factorial.c)。接下来,我们将创建一个简单的Makefile来管理编译过程。
**main.c**(包含main函数)
```c
#include "factorial.h" // 引入头文件
int main() {
int num = 5; // 示例数值
long long result = factorial(num);
printf("The factorial of %d is: %lld\n", num, result);
return 0;
}
```
**factorial.c**(包含阶乘函数)
```c
// factorial.h(假设存在,包含声明)
#ifndef FACTORIAL_H
#define FACTORIAL_H
long long factorial(int n);
#endif
// factorial.c
long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
```
在上述代码中,我们在`factorial.h`头文件中声明了`factorial`函数,然后在`factorial.c`文件中实现了它。现在我们需要编写Makefile来编译这两个文件:
**Makefile**
```makefile
CC = gcc
CFLAGS = -Wall -Werror
EXEC = myfact
all: $(EXEC)
$(EXEC): main.o factorial.o
$(CC) $(CFLAGS) -o $@ main.o factorial.o
main.o: main.c factorial.h
$(CC) $(CFLAGS) -c main.c
factorial.o: factorial.c
$(CC) $(CFLAGS) -c factorial.c
clean:
rm -f *.o $(EXEC)
```
在终端中,你可以通过`make`命令编译并运行程序:
```
$ make
$ ./myfact
```
这将会计算并打印5的阶乘。如果你想改变计算的数字,只需修改main.c中的`num`变量即可。
阅读全文