程序员女妹子求助!
//写两个函数,分别求两个证书的最大公约数和最小公倍数,用主函数调用两个函数并输出结果每次写个简单的程序都会出错!!气死了,下面这个程序运行不了不知道为什么。。。
#include<iostream>
using namespace std ;
void main()
{
int hcf(int , int ) ;//最大公约数
int lcd(int , int , int) ; //最小公倍数
int m , n , h , l ;
cout << "please input two data:" << endl ;
cin >> m >> n ;
//cout << m << n ;
h = hcf(m , n ) ;
l = lcd(m , n , h) ;
cout << h << l << endl ;
}
int hcf(int m , int n )
{
int t ;
if(m < n)
{
t = m ;
m = n ;
n = t ;
}
int r ;
while((r = m % n ) != 0)
{
m = n ;
n = r ;
}
return (r) ;
}
int lcd(int m , int n , int r)
{
return (m * n / r) ;
}
你好,又是我。while((r = m % n ) != 0)
{
m = n ;
n = r ;
}
return n ; 还有一点。main函数里的:
cout << h <<endl<< l << endl ;(不然会很难分辨) while((r = m % n ) != 0)
{
m = n ;
n = r ;
}
return (r) ;
这里经过循环后r==0时跳出循环 返回值是0出错又把0作为参数传入函数中作除数...可想而知了 是不是因为自己写的函数int lcd()。。。放在了int main()后面,应该放在前面吧。 优雅的独行者 发表于 2014-4-28 17:25 static/image/common/back.gif
while((r = m % n ) != 0)
{
m = n ;
嗯嗯,明白了,我还想说r和n是相等的,怎么returnr 不行呢,现在明白了 谢谢啦 holy-jeusus 发表于 2014-4-28 22:21 static/image/common/back.gif
是不是因为自己写的函数int lcd()。。。放在了int main()后面,应该放在前面吧。
做了函数声明就可以放到main函数后面了 sidfate 发表于 2014-4-28 17:12 static/image/common/back.gif
还有一点。main函数里的:
cout
恩。我运行的时候发现这个问题了,就加了一个空格,写程序的时候总是忘 sidfate 发表于 2014-4-28 16:25 static/image/common/back.gif
你好,又是我。
谢谢帮忙!以后记得常常帮助我哈
页:
[1]