我是新手,问题我找不到,求助。。。
源程序:#include<stdio.h>void main()
{
int a,result=0;
int sqrt(int a);
printf("please input a number: \n");
while(1)
{
scanf("%d",&a);
result=sqrt(int a);
if(result!=0)
{
printf("%d 的平方根是 %d\n",result);
break;
}
else
{
printf("您输入了错误的数值,请重新输入: \n");
getchar();
}
}
}
int sqrt(int a)
{
int i,z=0;
for(i=1;i<=a;i++)
{
if(a==i*i)
{
z=i;
}
else
{
continue;
}
}
return z;
}
错误:
D:\c++\MSDev98\MyProjects\a\z.c(9) : error C2143: syntax error : missing ')' before 'type'
D:\c++\MSDev98\MyProjects\a\z.c(9) : error C2198: 'sqrt' : too few actual parameters
D:\c++\MSDev98\MyProjects\a\z.c(9) : error C2059: syntax error : ')' int sqrt(int a);这一句放到main()外边 本帖最后由 小剑剑 于 2016-7-17 10:05 编辑
要努力啊{:9_231:}
#include<stdio.h>
void main()
{
int a,result=0;//sqrt返回值应该为double型
int sqrt(int a);
printf("please input a number: \n");
while(1)
{
scanf("%d",&a);
result=sqrt(int a);//调用函数错误
if(result!=0)
{
printf("%d 的平方根是 %d\n",result);
break;
}
else
{
printf("您输入了错误的数值,请重新输入: \n");
getchar();
}
}
}
int sqrt(int a)
{
int i,z=0;
for(i=1;i<=a;i++)
{
if(a==i*i)
{
z=i;
}
else
{
continue;
}
}
return z;
}
小改了一下
#include <stdio.h>
void main()
{
int a;
double result;
int sqrt(int a);
printf("please input a number: \n");
while(1)
{
scanf("%d",&a);
result=sqrt(a);
if(result!=0)
{
printf("%d 的平方根是 %lf\n",a,result);
break;
}
else
{
printf("您输入了错误的数值,请重新输入: \n");
getchar();
}
}
}
int sqrt(int a)
{
int i,z=0;
for(i=1;i<=a;i++)
{
if(a==i*i)
{
z=i;
}
else
{
continue;
}
}
return z;
}
小剑剑 发表于 2016-7-17 10:04
要努力啊
是的,问题解决了,谢谢
页:
[1]