c - 为什么我会收到运行时错误?

标签 c runtime-error

我知道当程序消耗大量内存或在某处被0除时会发生运行时错误。 这是打印所有数字直到用户输入 42 的代码。(不打印 42)。

#include<stdio.h>
int main()
{
    int n;
    while(1)
    {

        scanf("%d",&n);
        if(n==42)
            break;
        else
            printf("%d",n);

    }
} 

请告诉我为什么在如此简单的代码中会出现运行时错误?

最佳答案

您的 main 函数应该返回一个 int,但您没有:这就是您收到运行时错误的原因。这是正确的代码:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int n = 0;
    while(1) {

        scanf("%d",&n);
        if(n == 42)
            break;
        else
            printf("%d",n);

    }
    return EXIT_SUCCESS;
}

如果您不想包含 stdlib.h,您还可以更改 return 0; 中的 return EXIT_SUCCESS;,但这里是 why it's better .

您还应该考虑使用除 CodeChef 之外的其他 IDE。 CodeBlocks 或 VisualStudio 更好、更明确,带有错误和警告。在使用之前,您应该将 int n 设置为 0。

关于c - 为什么我会收到运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44083881/

相关文章:

c++ - 执行 wcscpy_s 时 WCHAR 溢出

c - 该代码在 gcc 编译器上正常工作,但是当我将其提交到编码门户(SPOJ)时,它显示运行时错误,为什么?

c - 如何使用c代码打开vi编辑器读取并在一段时间后关闭

c - 我如何找到由套接字 SOCK_DGRAM 选项创建的 ip/udp header

c - 用 C/Python 打包和解包

c++ - 如何正确打印 __FILE__ 扩展到的字符串?

c - 键盘输入被错误地重定向到命名管道读取

android - 无法调度 DDM block 46454154 : no handler defined - Eclipse - Android SDK

python - 为什么将我的数据转换为 ndarray 会给我 'python' 信号 SIGBUS 终止(地址未对齐错误)?

runtime-error - 我在Microsoft Excel 365 VBA中收到运行时错误 '429'。我如何解决它?