C++初级问题,数组方面的,麻烦进来看看,谢谢!```

来源:百度知道 编辑:UC知道 时间:2024/04/30 01:29:36
麻烦大家务必按照我每道题目后写出的不理解的地方回答,先谢谢大家了!
题目1如下:(求运行结果,答案是aabcdi),两个a哦,我没打错````
main()
{
int i=5;
char a[7]={'a','b','c','d','i','\0'};//我单引号老打不出来````
do {a[i]=a[i-1];} while(--i>0);
cout<<a;
}
我想请问,cout<<a这个a是什么意思啊?每次循环都要输出个a(只要满足while里的条件,不是吗?),到底输出a是什么意思````糊涂了```我做的答案是idcb.
#######################################################################################################################################################################################################################
题目2如下:(答案是0,我做的答案是8,哭````)
f(int a[],int n)
{
int s=0;
for(int j=0;j<n;j+=2,s+=a[j])
return s;
}
main()
{
int j,i=5;
int a[]={1,2,3,6,4,5};
cout<<f(a,6);
}

首先我不明白的是for后面没有分号,说明是和下行的return s连一起的,这样循环一次就要return一次s吗?它到底是每个都return还是只return最后一个?糊涂中```另外一个疑问就是为什么做错了,j=0,s=0+a[0]为1.j=2,s=1+a[2]为4.j=4,s=4+a[4]为8,哪里错了哦

第一题:
首先,do...while是一个循环,和while(){}很像,当while条件满足,循环继续执行。

你初始化的字串为:a = {'a','b','c','d','i','\0','\0'}
进入循环:
1、i = 5
a[5] = a[5-1];
此时,a = {'a','b','c','d','i','i','\0'};
--i = 4;
满足--i > 0
2、i = 4
a[4] = a[4-1];
此时,a = {'a','b','c','d','d','i','\0'};
--i = 3
满足--i > 0
3、i = 3;
a[3] = a[3-1];
此时,a = {'a','b','c','c','d','i','\0'};
--i = 2
满足--i > 0
4、i = 2;
a[2] = a[2-1];
此时,a = {'a','b','b','c','d','i','\0'};
--i = 1
满足--i > 0
4、i = 1
a[1] = a[0];
此时,a = {'a','a','b','c','d','i','\0