#include`<stdio.h>`
#include`<stdlib.h>`
int main()
{
int k, i, j,tot=0, htot=0, vtot=0, dtot=0, m, n;
int a[8][8] = {
{0,0,0,0,0,0,1,0},
{0,0,0,1,0,0,0,0},
{0,1,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0},
{0,0,1,0,0,0,0,0},
{0,0,0,0,0,1,0,0},
{0,0,0,0,1,0,0,0},
{0,0,0,0,0,0,0,1},
};
for(i=0;i<8;i++)
{
htot=0;
printf("\n");
for(j=0;j<8;j++)
{
htot += a[i][j];
printf("%d\t", a[i][j]);
}
tot += htot ;
}
if(tot == 8)
printf("Moving on to Vertical checking");
else
printf("Horizontal criterion not fulfilled %d ", tot);
tot=0;
for(j=0;j<8;j++)
{
vtot=0;
printf("\n");
for(i=0;i<8;i++)
{
vtot += a[i][j];
printf("%d\t", a[i][j]);
}
tot +=vtot;
}
if(tot == 8)
printf("Moving on to Diagonal checking");
else
printf("Vertical criterion not fulfilled %d ", tot);
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if(a[i][j])
{
m=i;
n=j;
while(n!=0)// running the loop leftwards
{
m++;
n--;
dtot +=a[m][n];
}
printf("diagonal left total = %d", dtot);
if(dtot == 1)
{
m=i;
n=j;
while(n!=0)// running the loop rightwards
{
m++;
n++;
dtot +=a[m][n];
}
printf("diagonal right total = %d", dtot);
}
}
}
}
return 0;
}
-3
A
回答
1
while(n!=0)// running the loop rightwards
{
m++;
n++;
dtot +=a[m][n];
}
這似乎是一個非常明顯的崩潰對我來說。增加n
並檢查n!=0
。
之前的循環可能也會崩潰,因爲m
用盡了數組索引。
在這些循環中放置一些printf
爲m
和n
。更好的是:在編寫代碼之前考慮數組索引範圍。
+0
是的,我在這件事上發現了我的錯誤。謝謝 :) –
1
對角線運行未正確界定。你只是檢查n索引,並且你在右邊的範圍檢查它是錯誤的方向。在某個點n超出範圍並執行非法數組訪問。
相關問題
- 1. 爲什麼你認爲分割錯誤發生在該代碼?
- 2. 分割錯誤示例沒有給出分割錯誤
- 3. Unrar4iOS錯誤,File :: tell()拋出asm代碼,我該怎麼辦?
- 4. 這個C++代碼在給出分段錯誤時出了什麼問題?
- 5. 錯誤血管分支分割代碼
- 6. 以下代碼給出了分段錯誤
- 7. 代碼正常運行,但調試給出了「分段錯誤」
- 8. Google Analytics(分析)跟蹤代碼給出了CORS錯誤
- 9. 分割錯誤出來了嗎?
- 10. Std Map給出分割錯誤
- 11. 爲什麼下面的代碼給出了一個錯誤
- 12. 這段代碼有什麼問題,它給出了錯誤
- 13. Fortran代碼給出錯誤
- 14. Python代碼給出錯誤
- 15. MYSQL給出了這樣的錯誤
- 16. C代碼中的分割錯誤
- 17. 霍夫曼代碼 - 分割錯誤11
- 18. 分割錯誤 - 代碼最近工作
- 19. 爲什麼此代碼給出分段錯誤?
- 20. PHP給了空白頁,下面的代碼出現了錯誤
- 21. 給出錯誤的結果,我該怎麼辦?
- 22. 我的代碼怎麼了?
- 23. 我的揹包代碼給出了錯誤的輸出?
- 24. 我該怎麼做才能驗證我的代碼錯誤
- 25. Java代碼錯誤不知道我應該怎麼做?
- 26. 我怎樣才能每天分割舞者錯誤日誌?
- 27. 開始目標C代碼錯誤?怎麼了?
- 28. 該java代碼重試該怎麼辦
- 29. WebP編碼 - 分割錯誤
- 30. C代碼給出了錯誤的答案,但java代碼給出了正確的答案spoj
要做的最好的事情就是通過像gdb這樣的調試器來運行它,並告訴我們發生分段錯誤的確切行。 – GWW
它在哪裏段錯?你的調試器告訴你什麼?這甚至應該做什麼? – Mat
請縮進您的代碼,以便它可以真正被讀取。 – zellio