gpt4 book ai didi

c++ - 为什么我会在 'ideone' 中收到运行时错误,而相同的代码却可以在 Turbo C 等其他编译器上运行?

转载 作者:行者123 更新时间:2023-11-30 21:15:21 24 4
gpt4 key购买 nike

问题:你的程序是使用蛮力方法来找到生命、宇宙和一切的答案。更准确地说...重写小数字从输入到输出。读入数字42后停止处理输入。输入的所有数字都是一位或两位整数。(因此我无法向 SPOJ 提交答案)

我的代码:

#include <stdio.h>
void main()
{
int a[5],i,j;
printf("Enter some numbers:");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
if(a[i]==42)
{
j=i;
break;
}
}
for(i=0;i<j;i++)
{
printf("\n%d",a[i]);
}
return 0;
}

最佳答案

j 尚未在其定义位置进行初始化。如果您从未进入包含该行的 block ,它将继续处于未初始化状态

j = i;

在程序开始时将j初始化为5,以避免使用未初始化的值,从而导致未定义的行为。

您还可以更改最终循环以使用 j 作为循环计数器,使用 i 作为停止值。

for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
if(a[i]==42)
{
++i;
break;
}
}

for(j=0;j<i;j++)
{
printf("\n%d",a[j]);
}

关于c++ - 为什么我会在 'ideone' 中收到运行时错误,而相同的代码却可以在 Turbo C 等其他编译器上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com