#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,表示连接的时候出错了。具体什么错误因为你的编译器没有说所以不知道,但应该是顶上的两个库找不到,试试在编译选项中指定一下路径
你这个问题估计高手就不会理睬的。。。代码太乱了,你想做什么功能呢?如果是验证是几位数就这个代码吧:
int test(int n)
{
int count = 0;
while(n > 0)
{
n = n / 10;
count += 1;
}
return count;
}
编译连接参数加-lm
1.code error
while(t>=10){
t=i/a;a=a*10;k=k+1; };
delete the semicolon after brace.
2. link to math lib.gcc a.c -lm
codepad通过了,输出了1
。
不知道你的编译环境怎么了。试一试return 0;
。
还有个小建议,int取绝对值用abs
就可以了,没必要转成float用fabs
,虽然也能编译过。
fbs()函数的参数是浮点型,这个可能和编译器有关,最后return 0;
试一下
-
ld
的错误是链接错误
,把编译错误
和链接错误
分清楚很重要。 - 注意代码格式排版,不然很难看明白。
- 整数绝对值用
abs
,浮点数才用fabs
。 - 编译链接时加上
-lm
开关以使用数学库。 - 提供你的开发环境信息,操作系统,编译器,生成命令行等,越详细越好。