/*函数调用求最小公倍数和最大公约数*/
#include<stdio.h>
gys(int x,int y)
{
int r;
while(y!=0)
{
r=x%y;
x=y;
y=r;
}
return(x);
}
main( )
{
int num1,num2,a,c,d;
printf("qing shu ru liang ge zheng shu:");
scanf("%d%d",&num1,&num2);
a=gys(int num1,int num2) /*这里有错!表达式语法错在main函数中*/
printf("liang ge shu de gong yue shu shi %d\n",a);
printf("liang ge shu de gong bei shu shi %d\n",num1*num2/a);
getch( );
}
今天突发奇想:想试试函数调用!
可是怎么着也没有通过编译!搜了一下也没有和我个程序错一样的(可能是这个错太低级了!)
请指教!!
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int gys(int x,int y)
{
int r;
while(y!=0)
{
r=x%y;
x=y;
y=r;
}
return(x);
}
int main(void)
{
int num1,num2,a,c,d;
printf("qing shu ru liang ge zheng shu:");
scanf("%d%d",&num1,&num2);
a = gys(num1, num2);
printf("liang ge shu de gong yue shu shi %d\n",a);
printf("liang ge shu de gong bei shu shi %d\n",num1*num2/a);
getch( );
return 0;
}
----------------解决方案--------------------------------------------------------
论坛大哥:为什么我在a=gys(int num1,int num2);里面对num1和num2指定为int型会出错呢!
----------------解决方案--------------------------------------------------------
我就不再提那个分号的事了!
a=gys(int num1,int num2) /*这里有错!表达式语法错在main函数中*/
a = gys(num1, num2);
----------------解决方案--------------------------------------------------------
#include<stdio.h>
gys(int x,int y)//X>Y
{
int r;
while(y!=0)
{
r=x%y;
x=y;
y=r;
}
return(x);
}
int main( )
{
int num1,num2,a;//c,d;//
printf("qing shu ru liang ge zheng shu:");
scanf("%d%d",&num1,&num2);
if(num1>num2)
a=gys(num1,num2);
else
a=gys(num2,num1);
printf("liang ge shu de gong yue shu shi %d\n",a);
printf("liang ge shu de gong bei shu shi %d\n",num1*num2/a);
getch( );
return 0;
}
----------------解决方案--------------------------------------------------------
请问2楼的,为什么在最后加一个return 0;,是不是因为主函数前没有加VOID
----------------解决方案--------------------------------------------------------
谢谢5楼上的兄弟!
那个c和d是我在调试的时候加上的!
忘了删了!
看出来你很细心啊!
再问一下那个main()函数中return 0很重要吗?
我在编译的时候没加它也可以得到正确的结果!
还有就是你的程序为什么还要再多出一个判断num1和num2大小的语句呢!
不用判断也可以啊!
[此贴子已经被作者于2006-5-7 22:45:13编辑过]
----------------解决方案--------------------------------------------------------
RETURN 0;是返回给系统的,不加也行
----------------解决方案--------------------------------------------------------
我就不再提那个分号的事了!
a=gys(int num1,int num2) /*这里有错!表达式语法错在main函数中*/
a = gys(num1, num2);
同一函数内变量只能定义一次,你上面不已经定义过了吗
----------------解决方案--------------------------------------------------------
谢了!
那个呢?
就是3楼的问题!!!
----------------解决方案--------------------------------------------------------