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

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

```#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 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿