我爱橙 发表于 2022-5-17 21:10:22

EX8.5 数组运算

本帖最后由 我爱橙 于 2022-5-18 21:48 编辑

下面的程序段运行后,输出结果是。

int i,j,x=0;
static int a;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a=2*i+j;
for(i=0;i<8;i++)
x+=a;
printf("%d",x);


A.
9


B.×
不确定值


C.√
0


D.
18



for(i=0;i<3;i++)         //i=0,i=1,i=2
for(j=0;j<3;j++)      //j=0,j=1,j=2
a=2*i+j;            //a=0 1 2 2 3 4 3 5 6
for(i=0;i<8;i++)         //i=0 1 2 3 4 56 7
x+=a;                

ZWY_712 发表于 2022-5-17 21:43:06

建议用代码块发代码,不然这样不好看

ZWY_712 发表于 2022-5-17 21:53:11

本帖最后由 ZWY_712 于 2022-5-17 21:58 编辑

int i,j,x=0;
static int a;
for(i=0;i<3;i++){

    for(j=0;j<3;j++){
      a=2*i+j;
    }
}
for(i=0;i<8;i++){
x+=a;}
printf("%d",x);

static int a给数组赋值为0

a=2*i+j;            //a【i】=   0 1 2 0 0 0 0 0
                                               2 3 4 0 0 0 0 0
                                               4 5 6 0 0 0 0 0
                                               0 0 0 0 0 0 0 0
                                               0 0 0 0 0 0 0 0
                                               0 0 0 0 0 0 0 0
                                               0 0 0 0 0 0 0 0
                                               0 0 0 0 0 0 0 0

for(i=0;i<8;i++)         //i=0 1 2 3 4 56 7
x+=a【i】;说明j=0不变
就是求x += a【i】
应该是0+2+4+0+0+0+0+0=6


【i】是英文中括号加i不知道为什么显示不出来

我爱橙 发表于 2022-5-17 22:01:54

ZWY_712 发表于 2022-5-17 21:53
static int a给数组赋值为0

a=2*i+j;            //a【i】=   0 1 2 0 0 0 0 0


你电脑上运行结果是6吗?我的运行你的程序还是0哎QAQ

ZWY_712 发表于 2022-5-19 15:13:59

我爱橙 发表于 2022-5-17 22:01
你电脑上运行结果是6吗?我的运行你的程序还是0哎QAQ

#include <stdio.h>
int main(){

        int i,j,x=0;
        int b = 0;
        static int a;
       
        for(i=0;i<3;i++)
        {

            for(j=0;j<3;j++)
                {
              a=2*i+j;
            }
        }
       
        for(i=0;i<8;i++)
        {       
                j = 0;
                x +=a;

        }
       
        for(i = 0; i < 8; i++)
        {
                for(j = 0; j < 8; j++)
                {
                        printf("%d ",a);
                }
                putchar('\n');
        }
        printf("%d",x);
       
        return 0;
}

不好意思,疏忽了
for(i=0;i<8;i++)
        {       
                j = 0;
                x +=a;

        }
这里还需要给j赋值0,才能输出6.

这道题目没有这句话,所以找不到数组里面具体的值,所以等于0.
页: [1]
查看完整版本: EX8.5 数组运算