[C语言]九九乘法表:三种九九乘法表的打印,按照如下形式,用循环编程输出九九乘法表

 按照如下形式,用循环编程输出九九乘法表:

   1   2   3   4   5   6   7   8   9
   2   4   6   8  10  12  14  16  18
   3   6   9  12  15  18  21  24  27
   4   8  12  16  20  24  28  32  36
   5  10  15  20  25  30  35  40  45
   6  12  18  24  30  36  42  48  54
   7  14  21  28  35  42  49  56  63
   8  16  24  32  40  48  56  64  72
   9  18  27  36  45  54  63  72  81

==================================

   1
   2   4
   3   6   9
   4   8  12  16
   5  10  15  20  25
   6  12  18  24  30  36
   7  14  21  28  35  42  49
   8  16  24  32  40  48  56  64
   9  18  27  36  45  54  63  72  81

==================================

   1   2   3   4   5   6   7   8   9
       4   6   8  10  12  14  16  18
           9  12  15  18  21  24  27
              16  20  24  28  32  36
                   25  30  35  40  45
                       36  42  48  54
                            49  56  63
                                64  72
                                     81

注意:每一项占4位,灰色背景相当于屏幕。

我们先来看第一种乘法表:

显然,很容易想到用9x9的二维数组来处理,只需先规定第一行和第一列的数其余,则由它们相乘即可得到,所以:

#include <stdio.h>
#include <stdlib.h>
int main() {
	int i,j;
	int a[9][9];
	for(i=0;i<9;i++){
		for(j=0;j<9;j++){
			if(i==0){
			    a[i][j]=j+1;   //若在第一行,则该值即为纵坐标+1
			}
			else if(j==0){
				a[i][j]=i+1;    //若在第一列,则该值即为横坐标+1
			}
			else{
				a[i][j]=a[i][0]*a[0][j];   //其余项由它们相乘即可得出
			}
		}
	}
	for(i=0;i<9;i++){
		for(j=0;j<9;j++){
			printf("%4d",a[i][j]);//因为每一位占四位。所以写上"%4d"
		}
		printf("\n");
    }
	return 0;
}

再来看,第二种乘法表,显然找出规律,当横坐标大于等于纵坐标时才有值,否则没有,所以依据此条件来控制是否打印即可,只需在上述代码的打印部分加入该条件即可:

#include <stdio.h>
#include <stdlib.h>
int main() {
	int i,j;
	int a[9][9];
	for(i=0;i<9;i++){
		for(j=0;j<9;j++){
			if(i==0){
			    a[i][j]=j+1;
			}
			else if(j==0){
				a[i][j]=i+1;
			}
			else{
				a[i][j]=a[i][0]*a[0][j];
			}
		}
	}
	for(i=0;i<9;i++){
		for(j=0;j<9;j++){
			if(i>=j){          //新增条件:横坐标>=纵坐标
				printf("%4d",a[i][j]);
		    }
		}
		printf("\n");
    }
	return 0;
}

接着再来看第三种乘法表:也很容易找出规律,横坐标<=纵坐标时打印,否则不打印,

但是还没完,因为,系统默认时从左往右打印,而如果只单单加此条件,会出现错误,

所以不符合条件的不再是不打印就可以了,而是打印空格来控制,

题中要求每一项占四位,所以不符合条件的打印四个空格即可,如下:

#include <stdio.h>
#include <stdlib.h>
int main() {
	int i,j;
	int a[9][9];
	for(i=0;i<9;i++){
		for(j=0;j<9;j++){
			if(i==0){
			    a[i][j]=j+1;
			}
			else if(j==0){
				a[i][j]=i+1;
			}
			else{
				a[i][j]=a[i][0]*a[0][j];
			}
		}
	}
	for(i=0;i<9;i++){
		for(j=0;j<9;j++){
			if(i<=j){
				printf("%4d",a[i][j]);
		    }
		    else{
		    	printf("    ");//多加的分支,意为不符合打印条件则打印四个空格
			}
		}
		printf("\n");
    }
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值