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");
以后编译无法通过啊
第二种方法看不懂啊。。。。
一直到你自己能看清楚你截的图片,再放上来。
追问就是我只数个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] < 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++输出结果不对的主要内容,如果未能解决你的问题,请参考以下文章
eclipse console输出结果顺序不对该怎么办?那个输出结果为啥是红色的?