根据特定功能设计程序,要求由main.c, Fun1.c-Fun3.c共三个C语言文件和1个头文件组成, 其中fun1.c, fun2.c和fun3.c都使用了define.h中的声明,四个C语言文件的功能分别是: fun1.c:1+1=2 fun2.c:2+2=4 fun3.c:3+3=6 main.c:输入fun1,执行1;输入fun2,执行2;输入fun3,执行3。都执行完,英文显示”恭喜你,已完成测试”,否则,英文输出”测试未完成,请继续努力”。 请为该程序编写相应的makefle文件,用make命令生成最后的可执行文件main,并运行,确保功能正确
时间: 2024-03-20 08:43:38 浏览: 31
以下是makefile文件的内容:
```makefile
CC = gcc
CFLAGS = -Wall -Wextra -Werror
SRCS = main.c Fun1.c Fun2.c Fun3.c
OBJS = $(SRCS:.c=.o)
TARGET = main
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) $^ -o $@
%.o: %.c define.h
$(CC) $(CFLAGS) -c $< -o $@
.PHONY: clean
clean:
rm -f $(OBJS) $(TARGET)
```
请将以上内容复制到一个名为makefile的文件中,然后在终端中进入该文件所在目录,输入`make`命令编译生成可执行文件。如果没有错误,将生成名为main的可执行文件。输入`./main`运行程序,按照题目要求输入相应的数字,测试程序的功能是否正确。
相关问题
根据特定功能设计程序,要求由main.c, Fun1.c-Fun3.c选择其中任意两个,共三个C语言文件和1个头文件组成, 其中fun1.c, fun2.c和fun3.c都使用了define.h中的声明,四个C语言文件的功能分别是:fun1.c:输出9*9口诀 fun2.c:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? fun3.c:输入某年某月某日,判断这一天是这一-年的第几天? main.c:输入fun1,执行1;输入fun2,执行2;输入fun3,执行3。都执行完,英文显示”恭喜你,已完成测试”,否则,英文输出”测试未完成,请继续努力”。 请为该程序编写相应的makefle文件,用make命令生成最后的可执行文件main,并运行,确保功能正确。
以下是相应的Makefile文件:
```
CC = gcc
CFLAGS = -Wall -Werror
OBJ = main.o Fun1.o Fun2.o Fun3.o
HEADER = define.h
main: $(OBJ)
$(CC) -o main $(OBJ)
main.o: main.c $(HEADER)
$(CC) $(CFLAGS) -c main.c
Fun1.o: Fun1.c $(HEADER)
$(CC) $(CFLAGS) -c Fun1.c
Fun2.o: Fun2.c $(HEADER)
$(CC) $(CFLAGS) -c Fun2.c
Fun3.o: Fun3.c $(HEADER)
$(CC) $(CFLAGS) -c Fun3.c
clean:
rm -f main $(OBJ)
```
在命令行中运行`make`命令即可生成可执行文件`main`,然后运行`./main`即可测试程序。如果程序全部执行完毕,将会输出"恭喜你,已完成测试",否则将会输出"测试未完成,请继续努力"。
用c语言写一段程序,要求:用fun函数计算:1-1/3!+1/5!-1/7!.....,不使用数学函数
好的,这是一个比较简单的题目,可以使用循环和递归来实现。下面是使用循环实现的代码:
```
#include <stdio.h>
double fun(int n);
int main()
{
int n;
printf("请输入n的值:");
scanf("%d", &n);
printf("计算结果为:%lf", fun(n));
return 0;
}
double fun(int n)
{
double result = 0.0;
int i;
int flag = 1;
double temp = 1.0;
for (i = 1; i <= n; i += 2)
{
temp = 1.0;
for (int j = 1; j <= i; j++)
{
temp *= j;
}
result += flag / temp;
flag = -flag;
}
return result;
}
```
在这个程序中,我们定义了一个fun函数,用来计算1-1/3!+1/5!-1/7!.....的结果。在fun函数中,我们定义了一个result变量,用来保存计算的结果。然后我们使用一个循环,每次循环加上一个数,同时更新flag的值(用来记录加还是减),并计算阶乘,最后将当前的数加到result中。计算完所有的数后,返回result即可。
需要注意的是,我们在计算阶乘时,不能直接使用math.h中的函数,因此我们使用了另一个循环来计算阶乘。如果n的值比较大,这个计算阶乘的循环可能会比较耗时,因此可以考虑使用递归来实现。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)