c语言程序阅读问题!

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:45:05
阅读程序,说明运行后的输出结果.
#include "stdio.h"
main()
{
int x,j,a[10]={1};
for(j=1;j<10;j++)
{
x=a[j-1]*2;
if(j%2)
x=-x;
a[j]=x;
}
for(j=0;j<10;j++)
printf("%d",a[j]);
printf("\n");
}
说明下!!谢谢 !!!!

1-2-4816-32-64128256-512
(由于a[i]与a[i+1]之间没有分隔符,相当于1 -2 -4 8 16 -32 -64 128 256 -512)
给你解释一下for语句吧,这样我想你也明白了:
for(j=1;j<10;j++)
{
x=a[j-1]*2; //x为中间变量。相当于|a[j+1]|=2*|a[j]|
if(j%2) //j对为奇数时,x取反。相当于a[j+1]= -a[j]
x=-x;
a[j]=x;
}

自然有:
j=1:
1) a[1]=a[0]*2;即a[1]=2;
2)由于j为技术所以取反: a[1]=-a[1]; 即a[1]=-a[1]=-2;

j=2:
1) a[2]=a[1]*2;即a[2]=-4;
2)由于j为偶数所以不进行取反: a[2]=a[2]; 即a[1]=-4;
……
晕,没有分写了这么多……
多多加分!