Linux C语言程序的设计 Makefile文件编写

hi张永光 2012-04-30 03:51:59
将下面的程序分成多个子程序(输入数据,交换数据,辗除法,输出结果4个子程序),书写makefile文件进行编译和链接,实验报告中要打印源代码和makefile文件。



输入两个正整数m和n,利用辗除法,求其最大公约数和最小公倍数。
main()
{
  int a,b,num1,num2,temp;
  printf("please input two numbers:\n");
  scanf("%d,%d",&num1,&num2);
  if(num1<num2  { temp=num1;
   num1=num2; 
   num2=temp;
  }
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
  {
   temp=a%b;
   a=b;
   b=temp;
  }
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
...全文
158 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lu188887 2012-05-01
  • 打赏
  • 举报
回复
可怜的应试教育啊!!本来一个文件就能搞定的····
lu188887 2012-05-01
  • 打赏
  • 举报
回复
swap.c
#include<stdio.h>


void swap(int* a,int* b)
{
int temp=0;
if(*a<*b)
{
temp=*a;
*a=*b;
*b=temp;
}
}


input.c

#include<stdio.h>

int input(int* num1,int* num2)
{
printf("please input two numbers:\n");
scanf("%d,%d",num1,num2);
return (0);
}


gongyueshu.c

#include<stdio.h>
int gongyueshu(int num1 ,int num2)
{
int temp=0;
while(num2!=0)
{
temp=num1%num2;
num1=num2;
num2=temp;
}

return num1;
}



outputres.c

#include<stdio.h>
int gongyueshu(int num1 ,int num2)
{
int temp=0;
while(num2!=0)
{
temp=num1%num2;
num1=num2;
num2=temp;
}

return num1;
}



main.c

#include<stdio.h>
#include<stdlib.h>



int main(int argc,char* argv[])
{
int num1,num2,res;

input(&num1,&num2);
printf("num1:%d num2:%d\n",num1,num2);
swap(&num1,&num2);
res=gongyueshu(num1,num2);
outputres(num1,num2,res);


return(0);

}


makefile
all:gongyueshu
gongyueshu:main.o
mv main.o gongyueshu

main.o:main.c swap.o gongyueshu.o input.o outputres.o
gcc -o main.o main.c swap.o gongyueshu.o input.o outputres.o


swap.o:swap.c
cc -c swap.c

gongyueshu.o:gongyueshu.c
cc -c gongyueshu.c

input.o:input.c
cc -c input.c

outputres.o:outputres.c
cc -c outputres.c


clean:
rm -f *.o

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧