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: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不知道为什么显示不出来
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 我爱橙 发表于 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]