关于C函数返回值的问题
问题是这样的,本来做一个“求一个数,该数加100是一个完全平方数,再加168又是一个完全平方数”编程序的时候,由于一个语句的位置写错了,出现了return语句执行不到的问题,但函数也返回了值,但这个值完全出乎意料。请了解的牛人给予解答,谢谢!!程序如下#include<stdio.h>
int f(int x)
{
int i,j;
for(i=1;i<=x;i++)
for(j=1;j<=10;j++)
if(i*i==x+100&&(i+j)*(i+j)==x+268)
{ printf("i=%d,j=%d\n",i,j);
return 1;
// if(i>x)return(0);///开始写的时候出错,写到此处,由于不能执行到return语句,返回值比较奇怪
}
if(i>x)return(0);
}
void main()
{
int i;
for(i=1; ;i++)
{printf("f(i)=%d\n",f(i));//查看返回值
if( f(i) )
{
printf("num is=%d\n",i);
break;
}}
}
在主函数中,如果i从1开始,函数返回2,i从2开始,函数返回3,i从3开始,函数返回4,完全不知道这个返回值怎么返回来的,请大牛给答案。