远旅朗逸 2023-11-07 18:00 采纳率: 100%
浏览 8
已结题

pta运行结果不正确,但Dev-c++运行正确

#include<stdio.h>
int main(void)
{
int i,j,n,sum;
int a[10][10];

scanf("%d",&n);
for(i=0;i<n;i++){
    for(j=0;j<n;j++){
        scanf("%d",&a[i][j]);
        if(i+j==n-1||j==n-1||i==n-1){
            sum=sum;
        }else{
            sum=sum+a[i][j];
        }
    }
}

printf("%d",sum);
return 0;

}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-07 21:06
    关注

    【以下回答由 GPT 生成】

    这种差异可能是由于代码中缺少对sum变量的初始化导致的。在C语言中,变量在定义时没有明确初始化的话,其初始值是未定义的。因此,在不同的编译器或不同的平台上,sum的初始值可能是不同的,这就导致了不一致的结果。

    要解决这个问题,你可以在定义sum变量时将其初始化为0,这样就可以确保sum的初始值是一致的,无论是在Dev-c++还是在PTA上运行都会得到正确的结果。

    以下是修改后的代码:

    #include<stdio.h>
    
    int main(void)
    {
        int i,j,n,sum = 0;
        int a[10][10];
    
        scanf("%d",&n);
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                scanf("%d",&a[i][j]);
                if(i+j==n-1||j==n-1||i==n-1){
                    sum=sum;
                }else{
                    sum=sum+a[i][j];
                }
            }
        }
    
        printf("%d",sum);
        return 0;
    }
    

    通过这种方式,你就可以确保在不同的平台上运行时,结果是一致的了。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月7日

悬赏问题

  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题