电脑网络

C++,为什么显示[Error]ldreturned1exitstatus,求大神解答。

346 浏览

C++ ,为什么显示[Error] ld returned 1 exit status,求大神解答。

1 个回答

hzh1106用户头像
hzh1106 回答于 2024-07-20
已采纳

提问:C++,为什么显示[Error]ldreturned1exitstatus,求大神解答。

#include<stdio.h>#include<math.h>int main(){int m,k;printf("请输入一个数:");scanf("%d",&m);k = sqrt (m);if ( m % 2 == 0 ){printf("这不是素数。");}else if (m % 3 == 0){printf("这不是素数。");}else if (m % k == 0){printf("这不是素数。");}else{printf("这是素数。");}printf("%d",m);return 0;}

网友回答:

你的代码没有任何语法问题,可以编译运行

(当然,逻辑上完全不正确,你对素数定义理解不够)

 

你没有把开发工具及完整的出错信息发上来,可能的问题是

1。你项目建错了(这个与你的开发工具有关)若是VS,要建立控制台应用

2。你上次编译运行程序没有退出,导致你程序无法写入,用任务管理器结束进程,重新生成就可以

3。你的安全软件阻止了你程序的生成,特别你把项目建立在C盘,关闭安全软件,将项目移动到其它非系统盘可以解决

而你程序的逻辑问题,主要是算法的错

你的算法是只要不被2,3及其开方带整除的就是素数,当然是错的,上面的125就是例子

而实际是只要被2以上,k以下所有自然数带除的,都不是素数,所以要这样改

#include<stdio.h>

#include<math.h>

int main()

 

{

    int i,m,k;

    printf("请输入一个数:");

    scanf("%d",&m);

    k = sqrt (m);

    for(i=2; i<=k; i++)

        if (k%2==0)

            {

                printf("这不是素数。");

                return 1;

            }

    printf("这是素数。");

    printf("%d",m);

    return 0;

}


我来回答

相关问题