当前位置: 代码迷 >> C语言 >> 实在是解决不了了![求助]
  详细解决方案

实在是解决不了了![求助]

热度:122   发布时间:2006-05-07 22:12:00.0
实在是解决不了了![求助]

/*函数调用求最小公倍数和最大公约数*/
#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( );
}


今天突发奇想:想试试函数调用!
可是怎么着也没有通过编译!搜了一下也没有和我个程序错一样的(可能是这个错太低级了!)
请指教!!

搜索更多相关的解决方案: return  include  最小公倍数  

----------------解决方案--------------------------------------------------------
#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;是返回给系统的,不加也行
----------------解决方案--------------------------------------------------------
以下是引用疯狂VC在2006-5-7 22:36:00的发言:
我就不再提那个分号的事了!
a=gys(int num1,int num2) /*这里有错!表达式语法错在main函数中*/
a = gys(num1, num2);
 

同一函数内变量只能定义一次,你上面不已经定义过了吗
----------------解决方案--------------------------------------------------------
谢了!
那个呢?
就是3楼的问题!!!
----------------解决方案--------------------------------------------------------