C语言打印99乘法表

  • Post author:
  • Post category:其他

项目场景:

项目场景:使用C语言打印出99乘法表,加深对for循环的理解。打印99乘法表这个应该是一个比较典型的例子。


问题描述

打印乘法表时打印出来的是

1*1=1
2*2=4
3*3=9
4*4=16
5*5=25
6*6=36
7*7=49
8*8=64
9*9=81
#include <stdio.h>
int main(){
    int i=1,j=1;
    for(i;i<10;i++){
        for(j;j<=i;j++){
            printf("%d*%d=%d ",j,i,i*j);
        }
        printf("\n");
    }
    return 0;
}

原因分析:

两层for循环为什么只打印出9个,最后通过检查代码发现是变量j在第一层for循环结束之后没有重置为1,在下一次的for时j变量和i变量是相同的,所以只会打印一次。


解决方案:

这里有两种解决方案:

第一种:在第一层for循环结束之后将j重置为1,代码如下:

#include <stdio.h>
int main(){
	int i=1,j=1;
	for(i;i<10;i++){
		for(j;j<=i;j++){
			printf("%d*%d=%d ",j,i,i*j);
		}
		j=1;
		printf("\n");
	}
    return 0;
}

第二种:将变量i和j写在for循环里面,给他一个初始值为1即可,代码如下:

#include <stdio.h>
int main(){
	int i,j;
	for(i=1;i<10;i++){
		for(j=1;j<=i;j++){
			printf("%d*%d=%d ",j,i,i*j);
		}
		printf("\n");
	}
    return 0;
}

其实是只需要将j变量的赋值写在for循环里面就行,i变量的赋值可以在它声明的同时直接赋值。

最后成功的打印出了99乘法表,如下图:

 

 


版权声明:本文为aa2325727631原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。