一道C语言题目....

来源:百度知道 编辑:UC知道 时间:2024/05/09 05:48:52
#include <stdio.h>
void main()
{ int i,j;
for(i=0;i<3;i++,i++)
{for (j=10;j>=0;j--)
{
if((j+i)%2)
{j--; printf("*%d",j); continue;}
--j;--j;printf("%d",j);
}
printf("\n");
}
}

这题的答案是8*6*4*2*0

我运行后的结果却是8*6*4*2*0<回车>8*6*4*2*0 输出的是两行...
然而.我自己算的结果是8*86*64*42*20*0-2<回车>8*86*64*42*20*0-2
到底谁的结果是对的???为什么....请指教....
大家好,我又仔细算了一下,我的答案是8*6*4*2*0 <CR>10*8*6*4*2*0 ,在第二行,多了10*。运行的结果没有这个10*。我实在不知道我错在哪里了,哪位热心的朋友,能详细讲解一下解题过程吗

#include<stdio.h>
void main()
{
int i,j;
for(i=0;i<3;i++,i++)
{
for(j=10;j>=0;j--)
{
if((i+j)%2)
{
j--;
printf("*%d",j);
continue;
--j;
--j;
printf("%d",j);
}
}
printf("\n");
}
}
我运行的结果和答案一样。
我认为你是不是写的过程中哪里出错了!
这个程序本身没有错,是你自己出错,请仔细的再写一次!然后对照一下!

8*6*4*2*0<回车>8*6*4*2*0<回车>
这个是结果

你运行的结果是正确的,因为i++,i++之后,仍然小于3,所以外层循环做两次,所以打印两行。
i=0,j=10的时候不满足if,i=0,j=9的时候满足,此时j--之后j是8,然后j再做两次--,所以是6,依次类推,我不知道你自己算的结果是怎么算出来的。

还用说,当然是机器是正确的,就算结果有错那也是你自己的算法思想有问题。我想是因为你没有弄清continue的作用,continue是用于跳出本次循环,循环体内continue以后的语句都不再执行,直接进入下一次循环,所以除第一次以外,--j;--j;printf("%d",j); 这三个语句都没有执行。

两位都编错了!!!!!!!再看看书 好好理解一下里面的东东