非典型废言 2017-03-01 01:33 采纳率: 66.7%
浏览 830
已采纳

数组内容被改写,莫名其妙

```#include<stdio.h>
```#include<string.h>
```int getFactorsSum(int n){
    int sum =0;
    for(int t=1;t<n;t++){
        if((n%t) == 0){
            sum =sum + t;
        }

    }//end for
    return sum;
```}


```void main(){
    int perfect[10]={0},over[10]={0};
    int i =0,j = 0;
    for(int k=2;k<=60;k++){

        if(k==getFactorsSum(k)){
            perfect[i++]=k; 
        }

        if(k<getFactorsSum(k)){
            over[j++]=k;    
        }
    }//end for

    printf("Perfect numbers are\n");
    for(k=0;k<i;k++){
        printf( "%d\t",perfect[k]);
    }
    printf("\n");

    printf("Over numbers are\n");
    for(k=0;k<j;k++){
        printf("%d\t",over[k]);
    }
    printf("\n");
}

求完数和盈数那个程序,一开始perfect数组里面存有6和28但是后面被56和60覆盖掉了,什么原因啊?

  • 写回答

1条回答 默认 最新

  • 伪造的时空 2017-03-01 01:42
    关注

    over数组申请空间太小,导致溢出直接覆盖了perfect数组里的数据。把over数组调大点就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失