#include<stdio.h>
#include<math.h>
int main(){
int i,t,a,k;
scanf("%d",&i);
i=fabs(i);
a=1,t=11,k=0;
while(t>=10){
t=i/a;a=a*10;k=k+1; };
printf("%d",k);
}
错误提示: [Error] ld returned 1 exit status
哪里出问题了呢?
#include<stdio.h>
#include<math.h>
int main(){
int i,t,a,k;
scanf("%d",&i);
i=fabs(i);
a=1,t=11,k=0;
while(t>=10){
t=i/a;a=a*10;k=k+1; };
printf("%d",k);
}
错误提示: [Error] ld returned 1 exit status
哪里出问题了呢?
不是return 0的问题。ld returned 1 exit status意思是连接器返回码为1,表示连接的时候出错了。具体什么错误因为你的编译器没有说所以不知道,但应该是顶上的两个库找不到,试试在编译选项中指定一下路径
ld
的错误是 链接错误
,把 编译错误
和 链接错误
分清楚很重要。abs
,浮点数才用 fabs
。-lm
开关以使用数学库。你这个问题估计高手就不会理睬的。。。代码太乱了,你想做什么功能呢?如果是验证是几位数就这个代码吧:
int test(int n)
{
int count = 0;
while(n > 0)
{
n = n / 10;
count += 1;
}
return count;
}
codepad通过了,输出了1
。
不知道你的编译环境怎么了。试一试return 0;
。
还有个小建议,int取绝对值用abs
就可以了,没必要转成float用fabs
,虽然也能编译过。
1.code error
delete the semicolon after brace.
2. link to math lib.
gcc a.c -lm