cookies945 发表于 2018-10-25 20:42:14

大佬们,[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
大佬们看看什么意思吧

claws0n 发表于 2018-10-25 20:46:03

int main()

cookies945 发表于 2018-10-25 20:50:34

claws0n 发表于 2018-10-25 20:46
int main()

hahahah{:10_266:} 傻了傻了,犯了这么低级的错误,谢谢大佬了

cookies945 发表于 2018-10-25 20:52:37

claws0n 发表于 2018-10-25 20:46
int main()

不过这个程序还是有点问题,他是用来求水仙花数的但是输入n后好久没有反应,大佬看看哪里有问题可好?

claws0n 发表于 2018-10-25 21:04:30

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;
}

cookies945 发表于 2018-10-26 16:15:09

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;
}
问题我早上找到了,是我的思路有问题,这是我改进了的代码

cookies945 发表于 2018-10-26 16:18:11

claws0n 发表于 2018-10-25 21:04
你要遍历还是检查输入的值就好?单一的如下

大神我的代码是输入N输出所有N位数的水仙花数,大佬的好像是判断N是不是水仙花数

claws0n 发表于 2018-10-26 17:18:03

暴力破解的 n 有限制哟,计算量很大,迟点再看

claws0n 发表于 2018-10-26 20:14:23

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]
查看完整版本: 大佬们,[Error] ld returned 1 exit status 这个报错是什么意思?