c语言关于九九乘法表for循环的一个问题
解决时间 2021-03-21 09:52
- 提问者网友:戎马万世
- 2021-03-20 17:35
#include
void main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%-4d",i,j,i*j);
printf("\n");
}
}
问题:当i=1时会输出:1*1=1 (这个我能理解)
当i=2时,会输出:2*1=2 2*2=4(这里面2*1=2式中的1是怎么来的?第二个for循环执行完后j++不是已经成为2了吗?怎么第二次还会是1?)
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-03-20 17:59
内层for循环每次执行完后,外层for循环加1,内层for循环又是从j=1这个条件开始执行的
希望可以帮到你!
全部回答
在语句printf("%d*%d=%-4d",i,j,i*j);中, i = 2时,j = 1,2,那么两次打印分别是 2*1= 2和2*2= 4。
- 2楼网友:山河有幸埋战骨
- 2021-03-20 20:05
你的理解有些偏差,你把两个循环分开来看:
i==1时,j从1到1
i==2时,j从1到2
……
1==9时,j从1到9
- 3楼网友:几近狂妄
- 2021-03-20 18:31
你的程序运行结果正确,语法没有问题,不过许多东西我看来很多余,而且九九表一般是三角形的,你试试看我我下面程序: #include"stdio.h" void main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%d*%d=%-3d",i,j,i*j); printf("\n"); } } 我在tc下执行的结果是: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 你原来的程序效果是每行后空一行,如果有这个需求,把我上面程序里面的printf("\n");改为printf("\n\n");就可以了。
我要举报
大家都在看
推荐资讯