Dev c++输出结果不对

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dev c++输出结果不对相关的知识,希望对你有一定的参考价值。

这道题是求两点间距离,同样的数据我电脑上的dev运行结果不对,可在别人的电脑上和在线编译网站都是对的,求各位大佬们解释一下原因。(而且我只输一个数据居然就能出结果了!!!)我是WIN10 64位系统。#include<stdio.h>#include<math.h>double dist(double x1,double y1,double x2,double y2) double result; result=sqrt(pow((x1-x2),2)+pow((y1-y2),2)); return result;int main() double x1,y1,x2,y2; scanf("%lf%lf\n%lf%lf",&x1,&y1,&x2,&y2); printf("Distance=%.2lf",dist(x1,y1,x2,y2)); return 0;

方法一:加上程序语句
a.#include<system.h>
system("pause");
b.#include<conio.h>
getch();
c.getchar();
方法二:使用DOS命令行方式运行程序
这样程序结果会保留在命令行当中。
方法三:使用第三方IDE工具
建议使用SciTE,因为Dev正好也是采用GCC的架构,而Scite正好对c++及C的配置也是如此,可以对SciTE进行配置后就可以使用了,编译及运行结果会直接显示并保留在右侧的输出窗口中。追问

加上

#include<system.h>
system("pause");

以后编译无法通过啊

第二种方法看不懂啊。。。。

参考技术A 把你scanf语句中的\n删掉。追问

追答

一直到你自己能看清楚你截的图片,再放上来。

追问

就是我只数个10就能运行,结果和我输10 20 30 40 一样,都不对,都是2.133256.
输20结果是2.479673

追答

根本看不清。

Dev C++ 提供一个输出,但 Visual Studio 代码为相同代码提供另一个输出

【中文标题】Dev C++ 提供一个输出,但 Visual Studio 代码为相同代码提供另一个输出【英文标题】:Dev C++ gives one output, but Visual studio code gives another output for same code 【发布时间】:2021-04-06 22:22:13 【问题描述】:

为什么会这样? 任何想法,可能是由不同的编译选项引起的,或者是这里的代码错误。 询问您是否需要更多信息,我不知道为什么会这样。 如果这发生在这么小的代码上,那么大的代码会发生什么。

#include <iostream>
using namespace std;
int main() 
int line[10];
int i, j;
bool growing = false;
cout << "Input 10 numbers:\n";
for (i = 0; i < 10; i++ ) 
    cin >> line[i];

if (i >= 10) 
    for (j = 0; j < 10;) 

        if (line[j] < line[j + 1]) 
            growing= true;
            j++;
        
        else 
            growing= false;
            j = 12;
        

    


if (j >= 10 && growing== false) 
    cout << "Not growing";

else if (j >= 10 && growing== true
) 
    cout << "Growing";



【问题讨论】:

他们给出了什么输出,你给出了什么输入? if (niz[j] &lt; niz[j + 1]) 超出数组的末尾——未定义的行为。 我担心您在niz[j + 1] 处访问您的数组越界,这是未定义的行为,任何事情都可能发生。 如果您提供了两个不同的输出并解释了您的代码应该做什么,那将会很有帮助。此外,如果您在发布代码(变量)之前将其翻译成英文,也会有所帮助。 @gmijo47 修复未定义行为并重试。 UB 意味着任何事情都可能发生,没有任何理由可以推理。 【参考方案1】:

试试这个解决方案。从 1 开始变量 j 并将 line[j - 1]line[j] 进行比较。在这种情况下,j 最多为 9 个。

#include <iostream>
using namespace std;
int main()

    int line[10];
    bool growing = false;
    cout << "Input 10 numbers:\n";

    for (int i = 0; i < 9; i++)
    
        cin >> line[i];
    

    for (int j = 1; j < 10; j++)
    

        if (line[j - 1] < line[j])
        
            growing = true;
            continue; // start next iteration and skips line 22 and 23
        
        growing = false;
        break; // stops the loop and moves to line 25
    

    if (growing)
    
        cout << "Growing";
    
    else
    
        cout << "Not Growing";
    

或者让它更简单:

#include <iostream>
int main()

    const int size = 10;
    int line[size];

    for (int i = 0; i < size; i++)
    
        std::cin >> line[i];
    

    for (int i = 1; i < size; i++)
    
        if (!(line[i - 1] < line[i]))
        
            std::cout << "Not Growing\n";
            return 0;
        
    

    std::cout << "Growing";


【讨论】:

以上是关于Dev c++输出结果不对的主要内容,如果未能解决你的问题,请参考以下文章

DEV C++如何显示运行结果

eclipse console输出结果顺序不对该怎么办?那个输出结果为啥是红色的?

Embarcadero Dev C++ 中文输出乱码

如何在 dev c++ 中输出 pi 符号

Dev C++ 提供一个输出,但 Visual Studio 代码为相同代码提供另一个输出

输出结果不对,求大神帮我找一下bug