C语言程序题 while(i<j) {k=a[i];a[i]=a[j];a[j]=k;i++;j--;}
解决时间 2021-04-11 22:20
- 提问者网友:聂風
- 2021-04-11 09:33
#include "stdio.h"
void main()
{
int i=0,j=7,k, a[8]={6,2,11,4,5,9,7,8};
while(i {k=a[i];a[i]=a[j];a[j]=k;i++;j--;}
for(i=0;i<8;i++)
printf("%3d",a[i]);
}
输出结果是 8 7 9 5 4 11 2 6
求详细解答过程
我最大的疑惑就是WHILE语句到后来,i=4,j=3;应该不执行语句可是i,j为什么还交换。。。
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-04-11 09:42
那是在i=3,j=4的时候交换的,当i=4,j=3时就不交换了,之后就结束了
全部回答
i=j=k=0; //赋值语句,将i j k变量赋值为0
while(a[i]&&b[j]) //a和b代表的是数组,i和j分别代表下标的变化;a[i]和b[j]两者同时为1时,执行大括号里面的语句
c[k++]=a[i++]; c[k++]=b[j++]; //将数组a b交替赋值给数组c
。。。
- 2楼网友:忘川信使
- 2021-04-11 12:27
68换
27换
11 9换
45换
当I=4J=3时停了。循环4次,第五次时停了。
- 3楼网友:走死在岁月里
- 2021-04-11 11:04
第1次[0]和[7]交换
第2次[1]和[6]交换
第3次[2]和[5]交换
第4次[3]和[4]交换
然后循环条件不再满足,退出
我要举报
大家都在看
推荐资讯