C语言:乘法口诀表的一些实现方法
一、优点
1、有菜单
2、可自定义大小
3、可进行重复输入
二、缺点
1、在 9 以内(包括 9 )的乘法口诀表才能正常左对齐输出
三、代码
1、迭代法
#include <stdio.h>void menu()
{printf("******************************\n");printf("*** 是否要输出乘法口诀表 ***\n");printf("*** 1、是 ***\n");printf("*** 0、否 ***\n");printf("******************************\n");
}void printMulTable()
{int n = 0;printf("请输入大小:");scanf("%d", &n);//用“迭代法”来输出乘法口诀表int i = 0;int j = 0;for (i = 1; i <= n; i++){for (j = 1; j <= i; j++){printf("%d*%d=%-2d\t", j, i, i * j);}printf("\n");}
}int main()
{int input = 0;do{menu();//菜单printf("请输入:");scanf("%d", &input);switch (input){case 1:printMulTable();break;case 0:printf("成功退出\n");break;default:printf("输入错误\n");break;}} while (input);return 0;
}
2、递归法 + 迭代法
#include <stdio.h>void menu()
{printf("******************************\n");printf("*** 是否要输出乘法口诀表 ***\n");printf("*** 1、是 ***\n");printf("*** 0、否 ***\n");printf("******************************\n");
}//用 “递归法” + “迭代法” 打印乘法表
void print(int n)
{if (n > 1){print(n - 1);}int i = 0;for (i = 1; i <= n; i++){printf("%d*%d=%-2d\t", i, n, i * n);}printf("\n");
}void mulTable()
{int n = 0;printf("请输入大小:");scanf("%d", &n);print(n);
}int main()
{int input = 0;do{menu();//菜单printf("请输入:");scanf("%d", &input);switch (input){case 1:mulTable();//乘法口诀表break;case 0:printf("成功退出\n");break;default:printf("输入错误\n");break;}} while (input);return 0;
}
附:若有不足,望指出
^_^感谢^_^