c语言里while(i)什么意思这是数据结构里的代码,看不懂。。

如题所述

第1个回答  推荐于2017-10-21
输出3040
具体分析:i在循环中取值为0,1,2,3. 取模i%2, 当i为0,2时值为0; i为1,3时置1。因此a[1],a[3]为0;a[0], a[2]再进入switch判断。a[0]原来为2,进入a[0]++,变成3;a[2]原来为5,进入a[2]--,变成4。综合最后结果a[0]=3,a[1]=0,a[2]=4,a[3]=0,所以输出3040
#include<stdio.h>main(){ int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2)//i分别为0,1,2,3 { case 0:switch(a[i]%2)//i为0,2进入这,a[0]=2,a[2]=5 { case 0:a[i]++;break;//a[0]=2进入这,执行a[0]++后变成a[0]=3 case 1:a[i]--;//a[2]=5进入这,执行a[2]--后变成a[2]=4 }break; case 1:a[i]=0;//i为1,3,即a[1],a[3]变成0 } for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}
第2个回答  2016-05-09
就是数数从最大数到0。追问

就是小于i的最大值时一直循环吗

追答

不是。i一直在减小。到0就结束了。这个意思。

追问

为啥循环条件里就写了一个i

追答

因为把int当bool处理了。0是假,其他是真。

本回答被提问者采纳