柠(♡˙︶˙♡)檬 2022-05-05 20:10 采纳率: 100%
浏览 249
已结题

输出四叶玫瑰数的问题

四叶玫瑰数:一个四位数,它每一位数字的4次幂之和都等于它本身。

出现的问题:引发异常


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int length = 0;
    int sum = 0;
    int arr[4];
    for (int num = 1000; num < 10000; ++num)
    {
        while (num != 0)
        {
            arr[length++] = num % 10;
            num = num / 10;
        }
        for (int i = length - 1; i >= 0; i--)
        {
            sum+= pow(arr[i], 4);
        }
        if (sum == num)
        {
            printf("%d\n", num);
        }
    }
    system("pause");
    return 0;
}

img

-

  • 写回答

2条回答 默认 最新

  • 柒号华仔 2022年度博客之星评选前沿技术领域TOP 1 2022-05-05 20:36
    关注
    int length = 0;
    int arr[4];
    for (int num = 1000; num < 10000; ++num)
        {
            while (num != 0)
            {
                arr[length++] = num % 10;
                num = num / 10;
            }
    }
    
    

    从你代码里摘出了这一部分,for循环从1000到10000,也就是从要循环9000次,length++要累加到9000,arr[4]数组元素只有4个,从arr[4]到arr[9000]都是超出范围的,必然异常

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿
  • ¥15 Matlab在app上输入带有矩阵形式的初始条件发生错误
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址