求助!关于C++函数定义的一个问题

ariesgeng 2009-02-04 04:55:20
我是初学者
#include <iostream>
using namespace std;


int main()
{
int a, m, n, e;
cin >> a;
for ( int i = 1; i <= a; i++ )
{
cin >> m >> n;
cout << endl;
}
int p = run( m );
int q = run( n );
if ( p >= q )
{
e = p;
}
else
{
e = q;
}
for ( int j = 1; j <= a; j++ )
{
cout << e << endl;
}
return 0;
}

int run( int n )
{
int count = 0;
while ( n != 1 )
{
if ( n % 2 == 0 )
{
n = n / 2;
}
else if ( n % 2 == 1 )
{
n = 3 * n + 1;
}
count++;
}
return count;
}
编译后显示
1>f:\visual studio 2008\projects\3n+1\3n+1\1.cpp(14) : error C3861: 'run': identifier not found
1>f:\visual studio 2008\projects\3n+1\3n+1\1.cpp(15) : error C3861: 'run': identifier not found
为什么呢?
...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgccaa 2009-02-04
  • 打赏
  • 举报
回复


#include <iostream>
using namespace std;

int run(int n); //声明run函数

int main()
{
int a, m, n, e; //变量的命名要有好的习惯,不要用一些简单的字母表示,而且重要变量最好给加个注释
cin >> a;

for ( int i = 1; i <= a; i++ )
{
cin >> m >> n;
cout<<endl;
}

int p = run( m );
int q = run( n );
if ( p >= q )
{
e = p;
}
else
{
e = q;
}

for ( int j = 1; j <= a; j++ )
{
cout<< e <<endl;
}
//system("puase");
return 0;
}

int run( int n )
{
int count = 0;
while ( n != 1 )
{
if ( n % 2 == 0 )
{
n = n / 2;
}
else if ( n % 2 == 1 )
{
n = 3 * n + 1;
}
count++;
}
return count;
}

sunnywyg 2009-02-04
  • 打赏
  • 举报
回复
你的run函数没有声明,main函数看不到他的存在

两个方法:
在main函数前面加上 int run(int n);
或者把run函数写到main函数前面
weidong0210 2009-02-04
  • 打赏
  • 举报
回复
先声明 或将run()写在main()之前
sld666666 2009-02-04
  • 打赏
  • 举报
回复
没有声明run 你要在mian()函数开头声明 int run(int n); 还有楼主得程序问题有点多
passionboy03 2009-02-04
  • 打赏
  • 举报
回复
在main函数前面先声明int run( int n )函数。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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