#33118: 記憶體區段錯誤


alex950301 (alex0301)

學校 : 新北市立新莊高級中學
編號 : 141423
來源 : [49.159.246.211]
最後登入時間 :
2024-10-19 20:13:44
b266. 矩陣翻轉 -- 2016 APCS 實作題第二題 | From: [61.64.1.159] | 發表日期 : 2022-12-03 00:39

include <iostream>
#include <vector>
using namespace std ;
int main() {
    int n , m , v , num , p ;
    cin >> n >> m >> v ;
    vector<vector<int>> ans , x ;
    for( int i = 0 ; i < n; i++ ) {
        vector<int> temp ;
        for( int j = 0 ; j < m ; j++ ) {
            cin >> num ;
            temp.push_back( num ) ;
        }
        x.push_back( temp ) ;
    }
    int order[v] ;
    for( int i = v - 1 ; i >= 0 ; i-- ) cin >> order[i] ;
    for( int k = 0 ; k < v ; k++ ) {
        if( order[k] == 1 ) {
            for( int i = n - 1 ; i >= 0 ; i-- ) {  //翻轉 x
                vector<int> temp ;
                for( int j = 0 ; j < m ; j++ ) {
                    temp.push_back( x[i][j] ) ;
                }
                ans.push_back( temp ) ;
            }
            
        } else {
            for( int j = m - 1 ; j >= 0 ; j-- ) {  // 旋轉 x
                vector<int> temp ;
                for( int i = 0 ; i < n ; i++ ) {
                    temp.push_back( x[i][j] ) ;
                }
                ans.push_back( temp ) ;
            }
            swap( n , m ) ;
        }
        x.clear() ;
        
        for( int i = 0 ; i < n ; i++ ) {
            vector<int> temp ;
            for( int j = 0 ; j < m ; j++ ) {
                temp.push_back( ans[i][j] ) ;
            }
            x.push_back( temp ) ;
        }
        ans.clear() ;
    }
    cout << n << " " << m << endl ;
    for( int i = 0 ; i < n ; i++ ) {
        for( int j = 0 ; j < m ; j++ ) {
            cout << x[i][j] << " " ;
        }
        cout << endl ;
    }
    return 0 ;
}

請問為何上述會有此問題 ,在編譯器上都沒事 多次重置vector會有問題嗎

我可以怎麼修改,如果要變成int的二維陣列我可以怎麼改變陣列的大小阿

 
#33119: Re: 記憶體區段錯誤


alex950301 (alex0301)

學校 : 新北市立新莊高級中學
編號 : 141423
來源 : [49.159.246.211]
最後登入時間 :
2024-10-19 20:13:44
b266. 矩陣翻轉 -- 2016 APCS 實作題第二題 | From: [61.64.1.159] | 發表日期 : 2022-12-03 01:00

Zerojudge在跟我開玩笑嗎...

測試會記憶體區段錯誤!

送出後就AC了~

AC (2ms, 340KB)
 
ZeroJudge Forum