#2107: RE 的錯誤訊息


wujjjj (頹頹)

學校 : 不指定學校
編號 : 5462
來源 : [220.133.20.129]
最後登入時間 :
2009-07-06 14:24:26
a016. 數獨(SUDOKU) | From: [211.74.164.177] | 發表日期 : 2009-06-29 14:12

想請較各位大大,如下的問題點是發生在程式哪裡,謝謝?(我懷疑是在cin,但用DEV跑是正確的)

 執行時發生錯誤 (SIGBUS)(7)!!
* 可能原因為嘗試定址不相符的記憶體位址,比如記憶體每頁為 4KB,但定址卻不是 4 的倍數。
sh: line 1: 15894 匯流排錯誤 (Bus error)  

程式碼如下:
#include <iostream>     
using namespace std;  
     
int main()           
{           
    int a[9][9];

    while(cin)           
    {              
        for(int i=1; i<=9; i++)     
            for(int j=1; j<=9; j++)     
                cin>>a[i][j];             
   
        for(int i=1; i<=9; i++)
        {     
            int sx=0;     
            int sy=0;     
            for(int j=1; j<=9; j++)
            {       
                sx+=a[i][j];     
                sy+=a[j][i];     
            }     
                 
            if(sx!=45 || sy!=45)
            {     
                cout<<"NO"<<endl;     
                return 1;
            }  
        }  
             
        int sz[9]={0};     
        for(int i=1; i<=9; i++)     
        {     
            for(int j=1; j<=9; j++)     
            {     
                if(i>=1 && i<=3){           
                    if(j>=1 && j<=3) sz[0]+=a[i][j];           
                    if(j>=4 && j<=6) sz[1]+=a[i][j];           
                    if(j>=7 && j<=9) sz[2]+=a[i][j];}           
                if(i>=4 && i<=6){           
                    if(j>=1 && j<=3) sz[3]+=a[i][j];           
                    if(j>=4 && j<=6) sz[4]+=a[i][j];           
                    if(j>=7 && j<=9) sz[5]+=a[i][j];}           
                if(i>=7 && i<=9){           
                    if(j>=1 && j<=3) sz[6]+=a[i][j];           
                    if(j>=4 && j<=6) sz[7]+=a[i][j];           
                    if(j>=7 && j<=9) sz[8]+=a[i][j];}     
            }     
        }     
             
        for(int k=0; k<9; k++)           
        {           
            if(sz[k]!=45){           
                cout<<"NO"<<endl;           
                break;}           
            else{           
                cout<<"YES"<<endl;           
                break;}           
        }   
    }     
    return 0;           
}

 
ZeroJudge Forum