#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