C语言求分析、
#include<stdio.h>
void main()
{
static int a[200];
int i,j,n;
for(i=0;i<200;i++)
{
a[i]=0;
}
n=100;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[j]=a[i]+1;
}
}
printf("%d\n",a[99]);
}
只要分析、为什么a[99]以下都是199?我思维算出的总是99
答案:i=0,j=0时a[0]=a[0]+1=1
i=0,j=1时a[1]=a[0]+1=1+1=2
i=0,j=2时a[2]=a[0]+1=1+1=2
知道错在哪了吧
其他:for(i=0;i<200;i++)
{
a[i]=0;
}
n=100;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[j]=a[i]+1;
}
}
这是两重循环,你算出来等于99,只把内循环执行了一遍。当i=0,内循环执行了一遍,a[99]=99,当i=1,内循环又执行了一遍,a[99]=100,以此类推。最后结果就是a[99]=199
上一个:C语言题目,问题如下!
下一个:谁能帮我看出错误~难道没人能看出来吗~c语言问题