大佬们,[Error] ld returned 1 exit status 这个报错是什么意思?
#include <stdio.h>#include <math.h>
int mian(){
int n,i,o;
int j,k = 0;
long sum = 0;
printf("enter n:\n");
scanf("%d",&n);
if (n < 3 || n > 7){
printf("error");
}
else{
i = pow(10,n-1);
o = pow(10,n)-1;
for (;i <= o;i++){
j = i;
while (j != 0){
sum += j % 10 * pow(10,k);
j / 10;
k++;
}
if(sum == i){
printf("%d是水仙花数!\n",i);
}
}
}
return 0;
}
编译后出现这个报错
ld returned 1 exit status
大佬们看看什么意思吧
int main() claws0n 发表于 2018-10-25 20:46
int main()
hahahah{:10_266:} 傻了傻了,犯了这么低级的错误,谢谢大佬了
claws0n 发表于 2018-10-25 20:46
int main()
不过这个程序还是有点问题,他是用来求水仙花数的但是输入n后好久没有反应,大佬看看哪里有问题可好?
cookies945 发表于 2018-10-25 20:52
不过这个程序还是有点问题,他是用来求水仙花数的但是输入n后好久没有反应,大佬看看哪里有问题可好?
你要遍历还是检查输入的值就好?单一的如下#include <stdio.h>
#include <math.h>
int main()
{
int n, k , t;
int sum = 0;
printf("enter n:\n");
scanf("%d", &n);
t = n;
k = log10(n)+1;
while(t)
{
sum += pow((t % 10),k);
t /= 10;
}
if(sum == n)
printf("%d is a Daffodil number\n",n);
else
printf("%d is NOT a Daffodil number\n",n);
return 0;
} claws0n 发表于 2018-10-25 21:04
你要遍历还是检查输入的值就好?单一的如下
#include <stdio.h>
#include <math.h>
int main(){
int n;
int j;
long sum = 0;
printf("enter n:\n");
scanf("%d",&n);
if (n < 3 || n > 7){
printf("error");
}
else{
for (int i = pow(10,n-1);i <= pow(10,n)-1;i++){
j = i;
while (j > 0){
sum += pow(j % 10,n);
j = j / 10;
}
if(sum == i){
printf("%d是水仙花数!\n",i);
}
sum = 0;
}
}
return 0;
}
问题我早上找到了,是我的思路有问题,这是我改进了的代码 claws0n 发表于 2018-10-25 21:04
你要遍历还是检查输入的值就好?单一的如下
大神我的代码是输入N输出所有N位数的水仙花数,大佬的好像是判断N是不是水仙花数 暴力破解的 n 有限制哟,计算量很大,迟点再看 cookies945 发表于 2018-10-26 16:18
大神我的代码是输入N输出所有N位数的水仙花数,大佬的好像是判断N是不是水仙花数
#include <stdio.h>
#include <math.h>
int main()
{
int n, t, sum;
printf("enter order of n:\n");
scanf("%d", &n);
if(n < 3 || n > 7)
{
printf("3 <= n <= 7\n");
return 0;
}
for(int i = pow(10, n-1); i < pow(10, n); i++)
{
sum = 0, t = i;
while(t)
{
sum += pow((t % 10),n);
t /= 10;
}
if(sum == i)
printf("%d is a Daffodil number\n", i);
}
return 0;
}
页:
[1]