九九乘法表C语言代码(多种形式)
九九乘法表是编程初学者常见的练习题之一,它不仅能帮助我们巩固C语言的基础知识,还能提升我们对循环结构的理解和运用能力。在本文中,我们将深入探讨如何使用C语言编写九九乘法表,并逐步优化代码以实现更加美观的输出效果。
让我们从最基础的实现开始,使用两个嵌套的 for 循环,我们可以轻松地生成九九乘法表:
#include <stdio.h> int main() { int i, j; for (i = 1; i <= 9; i++) { for (j = 1; j <= 9; j++) { printf("%d*%d=%d ", i, j, i*j); } printf("\n"); } return 0; }
这段代码会输出完整的九九乘法表,但输出结果并不是很美观。我们来看一下输出结果:
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9 2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 ...
我们可以看到,虽然结果是正确的,但排版不够整齐。为了改善输出效果,我们可以对代码进行一些优化。比如,我们可以调整输出格式,使用左对齐并限制字段宽度:
#include <stdio.h> int main() { int i, j; for (i = 1; i <= 9; i++) { for (j = 1; j <= 9; j++) { printf("%-8s", ""); printf("%d*%d=%-3d", i, j, i*j); } printf("\n"); } return 0; }
在这个改进版本中,我们使用了%-2s
来在每个表达式之前添加 2 个空格,使用%-3d
来左对齐结果并限制其宽度为 3 个字符,这样可以使输出更加整齐:
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9 2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 ...
虽然这个版本的输出更加整齐,但它并不是我们通常看到的九九乘法表的形式,传统的九九乘法表通常只显示上半部分,即 i <= j 的部分。我们可以再次优化代码来实现这一点:
#include <stdio.h> int main() { int i, j; for (i = 1; i <= 9; i++) { for (j = 1; j <= i; j++) { printf("%d*%d=%-4d", j, i, i*j); } printf("\n"); } return 0; }
这个版本的代码将输出传统的九九乘法表形式。注意我们交换了 i 和 j 的位置,以确保乘数始终小于或等于被乘数。输出结果如下:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
这个版本的九九乘法表更加符合我们的传统印象。然而,我们还可以进一步优化代码,使其更加灵活。例如,我们可以将乘法表的大小参数化,允许用户自定义表的大小:
#include <stdio.h> void print_multiplication_table(int size) { int i, j; for (i = 1; i <= size; i++) { for (j = 1; j <= i; j++) { printf("%d*%d=%-4d", j, i, i*j); } printf("\n"); } } int main() { int table_size; printf("请输入乘法表的大小:"); scanf("%d", &table_size); print_multiplication_table(table_size); return 0; }
这个版本的代码将乘法表的生成封装在一个函数中,并允许用户自定义表的大小。这种方法不仅提高了代码的可读性和可维护性,还增加了程序的灵活性。用户可以根据需要生成不同大小的乘法表,甚至可以生成超过 9*9 的乘法表。
通过这个循序渐进的过程,我们不仅实现了九九乘法表的基本功能,还学习了如何逐步优化代码以提高输出的美观性和程序的灵活性。这个过程体现了程序设计中重要的思想:从简单到复杂,从基础功能到优化改进。在实际的编程过程中,我们也常常需要经历这样的迭代优化过程,以不断提升代码的质量和用户体验。