一道C语言题目, 求详细解题思路,谢谢~

main()
{ int 1,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;
}while(!i);
n++;
}
printf("n=%d\n",n);
}

答案是 n=4,求详细解题思路 本人新手学C,~

第1个回答  2011-09-09
三个盒子中其中两个各有一个球,另一个有两个球。
总的方法为4*4*4*4=256种
恰巧有一个空盒子的方法有4*6*3*2=144种
概率为p=144/256=9/16
第2个回答  2011-09-07
do
{
if(i%3) continue;
n++; //这个n++只有i=3即i%3==0时执行了一遍
}while(!i);
n++;//这里执行了3遍 i=2/3/4时追问

当i=3时候, i%3==0 执行后面的 n++ 但是 while(!i)后面的 n++也执行吗?

追答

执行
第二个n++是for循环里面的,没有其他任何的循环控制语句跳过它,所以它每次都执行~
以后这种问题可以自己跟着debug一下,按F10,看看每一步怎么走的~

本回答被提问者采纳
第3个回答  2011-09-07
写下每步变量n,i的值
第4个回答  2011-09-07
自己看看书吧,基本循环问题追问

我觉得像你这种 还不如不回答,不愿意回答可以不用点进来.自认清高.

追答

解释一下
!i 在c中只有零与非零,当i不是0时,!i就代表0.
循环开始
i=2
i<5
i%3=0
n=1
!i=0
n=2循回
i=3
i%3=0
n=3
!i=0
n=4循回
i=4
i%3=1终止循环输出n=4
学习是为了超越

C语言入门题目,求详细易懂的解答过程。
答案为第一行:Tony。解答:for循环共循环2次,然后strcpy(a,b)比较两串字符大小,如果strcpy值大于0,则a大于b。具体的比较是看字符串的字母的ASCII码的大小,如果相同,再继续比较第二个,这个不赘述。主要看一下name[],对于一维数组来讲,它是元素,对于二维数组来讲,它不是具体的元素,而是代...

C语言基础填空题,在线等,要详细步骤和解题思路?
第二题: 答案:j=3,i=4 do{ j++; } while(i++<3); 此语句 是先循环 再检查条件 和上一题不同。初始化值:int i=1,j=0;第1次循环:先执行j++, 然后 求表达式 i<3 ,为TRUE,最后i+1,执行结果:j=1,i=2;第2次循环:先执行j++, 然后 求表达式 i<3 ,为TRUE,最后i+1...

C语言编程题,求解题思路!
只要按照公式计算每月还款金额就可以了,其中"已归还本金累计额"等于"贷款本金 除以 还款月数 乘以 已还款月数".按照题目要求编写的等额本金还款的C语言程序如下 include<stdio.h> int main(){ double P,R,repayment;int N,i;scanf("%lf;%d;%lf",&P,&N,&R);printf("[");for(i=0;i<N;...

这道C语言题目,怎么做,烦请写下过程!
3,5,7.关键看输出的a[i][2-1]。当a=0时,输出a[0][2],即第一行第三个。循环a=1时。输出a[1][1],即第二行第二个数。同理循环a=2时,输出a[2][0],即第三行第一个数。在C语言中,行和列的标号是从0开始的。%2d代表的是输出的数字的间隔 ...

C语言题目,详细解释,每一项为什么,谢谢
这个题目选C。因为定义a[3][4]二维数组后,第一下标的取值范围是0~2三个数,第二下标的取值范围是0~3四个数,即:a[0~2][0~3],共计3×4=12个元素。显然选项C的a[0][4]并不在这个范围内,所以这个元素并不存在,是非法调用。

C语言求助题目有图,希望过程详细一些!!
= 20 % 6 \/\/取余数 = 2 当i = 1时候 a[1] = 10* (1+2-5*(1>2)) % 6; \/\/(1>2)为判断语句,1大于2为假 ,结果是0 = 10* (1+2-5*0) % 6 = 30 % 6 \/\/取余数 = 0 当i = 2时候 a[2] = 10* (2+2-5*(2>2)) % 6; \/\/(2>2)为判断语句,2...

求教一个二级C语言的题目,求详细解释,尤其是答案解析里面:x9+3=12,怎...
sss函数有三个参数,第一个参数是函数指针,指向函数入口地址,后两个参数为整型。返回值为一个拥有两个int型参数x和y的函数的返回值。因此,sss(funa,9,3)相当于调用函数funa(9,3),其返回值就是funa(9,3)的返回值。故x=funa(9,3)=12。同理x+=funb(8,3)=5,x=12+5=17。故答案为...

C语言题目,求代码
思路1:递归求解 b 用来表示左脚还是右脚:b=0, 表示这一步要跨左脚 ,(也表示跨了奇数步)b=1,表示这一步要跨右脚,(也表示跨了偶数步)当台阶只剩下一个时,这时 必须要跨右脚,才达到偶数步。a 用来表示要跨的步数:当a==2时,不管b==0还是1,都各有一种走法(这两种跨法不同),...

C语言求助,题目有图,希望过程详细一些? 。。。
第一:对二维数组进行剖析 int a[8][8] 是一个两维数组:a[行数][列数] 就是8行,8列,int a[8][8]={20,30,32,50,52,68,52,88, 72,78,61,89,1,4,101,24, 11,14,97,83};int a[8][8]={{20,30,32,50,52,68,52,88}, {72,78,61,89,1,4,101,24},{11,14...

C语言选择题8,9题,求大神给个具体解答思路和解析,谢谢了,在线等。
解析:B 选项中 char *p = &s;,该句无意义,由于 s 已经是一个 char * 变量了,再进行 & 操作符只会使它变为一个 char ** 的表达式,赋值到 p 中。C 选项中 char *p; p = *s;,该句无意义,只是把一个 char 表达式强制转换成 char * 表达式赋值到 p 中。D 选项中 char *p; ...

相似回答