C:for循环有两个嵌套的for循环,在第一个循环后停止工作
有人能帮我弄清楚为什么在第一个循环之后,带有变量v的for循环没有执行吗C:for循环有两个嵌套的for循环,在第一个循环后停止工作,c,for-loop,C,For Loop,有人能帮我弄清楚为什么在第一个循环之后,带有变量v的for循环没有执行吗 #include <stdio.h> #include <stdlib.h> int main() { int x[100],n,h,s,v,k,l; s=0; scanf("%d",&n); h=n; for(int j=0;j<n;j++) scanf("%d",&x[j]); for(v=0;v<n;
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x[100],n,h,s,v,k,l;
s=0;
scanf("%d",&n);
h=n;
for(int j=0;j<n;j++)
scanf("%d",&x[j]);
for(v=0;v<n;v++)
{
for(k=0;k<n;k++)
if(h%x[k]==0) x[k]=0;
for(l=0;l<n;l++)
if(x[l]==0) h--;
}
for(int m=0;m<n;m++)
s=s+x[m];
printf("%d",s);
return 0;
}
#包括
#包括
int main()
{
int x[100],n,h,s,v,k,l;
s=0;
scanf(“%d”和“&n”);
h=n;
对于(int j=0;j关于:
if(h%x[k]==0) x[k]=0;
模运算符%
是一种“除以然后返回余数”运算
所以当x[k]的内容
是否为零发生“被零除”异常,程序崩溃。为什么不使用调试器逐步检查代码,自己找出答案?甚至是基本的调试打印语句?在诉诸堆栈溢出之前,您可以做更多的事情。如果您真的需要进一步的帮助,请提供确切的输入、预期的结果和结果实际结果。scanf(“%d”和&n);
-检查scanf
中的返回值,然后打印n
的值。在for循环的内容周围放上大括号“刚停止”是什么意思?是否有任何错误消息?您的printf
是无条件的。因此,除非程序崩溃,否则应该打印一些内容。那么您以何种方式确定程序“刚刚停止”?如果x[k]
已经为零,则不需要进行除法。