#38556: 求救 #2: 6% RE (SIGSEGV) 記憶體區段錯誤! Segmentation fault (core dumped)


mia2277 (雲貓)

學校 : 忠信學校
編號 : 247272
來源 : [123.195.45.126]
最後登入時間 :
2024-08-04 18:19:21
a010. 因數分解 | From: [61.220.127.183] | 發表日期 : 2023-12-06 20:26

請問要如何改才好?

#include <iostream>

using namespace std;

int main()
{
    int n=0,h=0,m;
    cin>>m;
    int c[m],d[m]={0};
    for(int i = 2 ; i<=m ;i++){
        
        while(m%i == 0){
            c[h] = i;
            d[h] += 1;
            m /= i;
        }    
        if(d[h]>0){
            h+=1;
        }
    }
    if(d[0] == 1){
        cout<<c[0];
    }else{
        cout<<c[0]<<'^'<<d[0];
    }
    for(int j = 1 ; j<h ; j++){
        if(d[j]==1){
            cout<<" * "<<c[j];
        }else{
            cout<<" * "<<c[j]<<'^'<<d[j];
        }
    }

    return 0;
}

 

 

 
#38600: Re: 求救 #2: 6% RE (SIGSEGV) 記憶體區段錯誤! Segmentation fault (core dumped)


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
a010. 因數分解 | From: [101.136.114.122] | 發表日期 : 2023-12-09 17:17


    int c[m],d[m]={0};

 


輸入數字很大,陣列放不下。可以考慮用vector

 
ZeroJudge Forum