本帖最后由 丶忘却的年少o 于 2017-8-20 20:17 编辑 #include<stdio.h>
void main()
{
int sqrt(int a);
int x, y;
printf("please input a num:"); //加个提示语句会觉得舒服点,哈哈
scanf("%d", &x);
y = sqrt(x);
if(y == -1) //返回-1就是没有取到值
{
printf("error,input anthor number!\n");
}
else //否则就是取到了打印就好了
{
printf("%d是%d开方得出来的\n", y, x);
}
}
int sqrt(int a)
{
int i, b;
b = a / 2;
for(i = 1; i <= b; i++)
{
if(i*i == a)
{
b = i;
return b;
}
//return -1这一句不能放这里,判断一次要是i*i != a就返回那还要循环干嘛
}
return -1; //放循环外面,说明迭代到最大值都不满足退出循环并返回
}
//着重要说明一点,你的error和b是sqrt函数里的局部变量,不是全局变量,退出了sqrt就没了。而且你的error都没声明
|