清泛IT社区
标题:
如递归所有控件路径,函数将导致运行时堆栈溢出
[打印本页]
作者:
泡面
时间:
2016-01-15 15:55
标题:
如递归所有控件路径,函数将导致运行时堆栈溢出
程序如下
#include<iostream>
#include<stdio.h>
#include<limits.h>
int max(int a,int b)
{
if(a>b)
return a=max(a,b);
else return b=max(a,b);
}
int max(int a,int b);
int main()
{
int x,y,z;
int max(int a,int b);
printf("input tow numbers:\n");
scanf_s("%d,%d",&x,&y);
z=max(x,y);
printf("maxmum=%d",z);
}
不能正常运行只能输入一个数提示
1>c:\users\administrator\desktop\user\video\video\video.cpp(9): warning C4717: “max”: 如递归所有控件路径,函数将导致运行时堆栈溢出
求解答{:wg:}
作者:
清泛网
时间:
2016-01-15 16:07
首先这段程序的几个问题:
1、int max(int a,int b); 两次函数申明都是多余的:函数定义在调用地方的前面,就不用申明;反之,必须先申明,然后在调用地方的后面实现函数体。
2、max 是自定义的递归函数,但是这是个无限递归函数,没有跳出函数(break)的条件,因此会无限调用直至栈空间溢出。
3、max 在math.h中已经有现成的函数。
作者:
清泛网
时间:
2016-01-15 16:07
#include<iostream>
#include<stdio.h>
#include<limits.h>
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
int main()
{
int x,y,z;
printf("input tow numbers:\n");
scanf_s("%d,%d",&x,&y);
z=max(x,y);
printf("maxmum=%d",z);
}
复制代码
作者:
泡面
时间:
2016-01-15 16:18
{:gza:}{:gza:}谢谢
欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/)
Powered by Discuz! X3.3