与在线编译器相比,代码块编译器提供了错误的输出

问题描述

我的操作系统:Windows 64位

在代码块下: 当我进入设置->编译器->选定的编译器为“ GNU GCC编译器”

但是,在标签工具链可执行文件下

我看到以下信息:

编译器的安装目录:C:\ Program Files(x86)\ CodeBlocks \ MinGW

C编译器:mingw32-gcc.exe

C ++编译器:mingw32-g ++。exe

我正在尝试运行以下C ++程序:

#include<iostream>
#include<math.h>
using namespace std;
int find_size(int a,int b)
{
    int lena=0;
    int lenb=0;
    while(a>1)
    {
        lena++;
        a/=10;
    }
     while(b>1)
    {
        lenb++;
        b/=10;
    }
    if(lena%2!=0)
        lena+=1;
    if(lenb%2!=0)
        lenb+=1;
    return (lena>lenb?lena:lenb);
}
int karatsuba (int x,int y)
{
    if(x<=10 && y<=10)
        return x*y;
    int n=find_size(x,y);
    int p1 = pow(10,n/2);
    int p2 = pow (10,n);
    int a = x/p1;
    int b = x%p1;
    int c = y/p1;
    int d = y%p1;
    int pdt = p2*karatsuba(a,c)+p1*(karatsuba(a,d)+karatsuba(b,c))+karatsuba(b,d);
    return pdt;
}
int main()
{
    int x,y;
    cout<<"Enter the numbers"<<endl;
    cin>>x>>y;
    int ans=karatsuba(x,y);
    cout<<"\n Product : "<<ans<<endl;
    return 0;
}

在在线编译器上运行时,相同的代码为我提供了正确的输出。 但是,codeblocs给了我不同的输出。我的编译器可能是什么问题? 我的本地Visual Studio代码也存在同样的问题。它给出了相同的错误输出。

示例: 输入,x = 2023,y = 3003

正确答案(以及在线编译器的输出):6075069

但是我的代码块和VSC的输出是6132081

我不知道我的代码块,VSC或编译器有什么问题。 我多年来一直在使用相同的代码块,但从未遇到过这样的问题。

我可以提供的信息是,几周前我安装了MinGW,这可能会导致我的编译器设置出现问题吗?

有人可以帮我解决这个问题吗?

解决方法

也许它具有不同版本的编译器。否则,我建议您切换到另一个IDE。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...