您的位置:首页 > 编程语言 > C语言/C++

C语言基础--循环 递归打印乘法表

2015-08-24 21:35 489 查看
for循环打印乘法表:

#include <stdio.h>
//  for循环打印乘法表
int main(int argc, const char * argv[]) {
//矩形
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
printf("%i * %i = %i\t", j, i, i * j);
}
printf("\n");
}
printf("\n");

//尖尖朝上
for(int i = 1; i <= 9; i++){
for (int j =1; j <= i; j++) {
printf("%i * %i = %i\t", j, i, i * j);
}
printf("\n");
}
printf("\n");

//尖尖朝下
for (int i = 1; i <= 9; i++) {
for (int j = i; j <= 9; j++) {
printf("%i * %i = %i\t", i, j, i * j);
}
printf("\n");
}
return 0;
}
/*
输出结果:
1 * 1 = 1  2 * 1 = 2   3 * 1 = 3   4 * 1 = 4   5 * 1 = 5   6 * 1 = 6   7 * 1 = 7   8 * 1 = 8   9 * 1 = 9
1 * 2 = 2  2 * 2 = 4   3 * 2 = 6   4 * 2 = 8   5 * 2 = 10  6 * 2 = 12  7 * 2 = 14  8 * 2 = 16  9 * 2 = 18
1 * 3 = 3  2 * 3 = 6   3 * 3 = 9   4 * 3 = 12  5 * 3 = 15  6 * 3 = 18  7 * 3 = 21  8 * 3 = 24  9 * 3 = 27
1 * 4 = 4  2 * 4 = 8   3 * 4 = 12  4 * 4 = 16  5 * 4 = 20  6 * 4 = 24  7 * 4 = 28  8 * 4 = 32  9 * 4 = 36
1 * 5 = 5  2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  6 * 5 = 30  7 * 5 = 35  8 * 5 = 40  9 * 5 = 45
1 * 6 = 6  2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  7 * 6 = 42  8 * 6 = 48  9 * 6 = 54
1 * 7 = 7  2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  8 * 7 = 56  9 * 7 = 63
1 * 8 = 8  2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  9 * 8 = 72
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

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

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 * 2 = 4   2 * 3 = 6   2 * 4 = 8   2 * 5 = 10  2 * 6 = 12  2 * 7 = 14  2 * 8 = 16  2 * 9 = 18
3 * 3 = 9   3 * 4 = 12  3 * 5 = 15  3 * 6 = 18  3 * 7 = 21  3 * 8 = 24  3 * 9 = 27
4 * 4 = 16  4 * 5 = 20  4 * 6 = 24  4 * 7 = 28  4 * 8 = 32  4 * 9 = 36
5 * 5 = 25  5 * 6 = 30  5 * 7 = 35  5 * 8 = 40  5 * 9 = 45
6 * 6 = 36  6 * 7 = 42  6 * 8 = 48  6 * 9 = 54
7 * 7 = 49  7 * 8 = 56  7 * 9 = 63
8 * 8 = 64  8 * 9 = 72
9 * 9 = 81
*/


递归替换for循环:

#include <stdio.h>

void printfMultiple(int);
void printfMultiple1(int);
void printfMultiple2(int);
void replaceFor(int,int);

int main(int argc, const char * argv[]) {
/*
int i
i 从 1 加到 9
输出 i * 1 ~ 9 的结果
i == 0时退出
*/
int num1 = 9;
printfMultiple(num1);
printf("\n");

int num2 = 1;
printfMultiple1(num2);
printf("\n");

int num3 = 1;
printfMultiple2(num3);

return 0;
}

//输出结果: 尖尖朝下
void printfMultiple(int i){
if(0 == i){
return;
}
else{
//输出 i * 1 到 i * 9 的结果
for (int j = 1; j <= i ; j++) {
printf("%i * %i = %i\t", i, j, i * j);
}
printf("\n");
// i 控制 行数  i-- 表示进行下一行的输出
i--;
printfMultiple(i);
}
}

// 如果 i 从 1 开始  i = 10 结束  就尖尖朝上了
void printfMultiple1(int i){
if (10 == i) {
return;
}
else{
for (int j = 1; j <= i; j++) {
printf("%i * %i = %i\t", j, i, i * j);
}
printf("\n");
i++;
printfMultiple1(i);
}
}

/*用递归替换方法体里的for循环
接收参数 i j
退出条件 j == i + 1
*/
void printfMultiple2(int i){
if (10 == i) {
return;
}
else{
replaceFor(i, 1);
printf("\n");
i++;
printfMultiple2(i);
}
}

//用这个方法替换到原来for循环的位置
void replaceFor(int num1, int num2){
if (num2 == num1 + 1) {
return;
}
else{
printf("%i * %i = %i\t", num2, num1, num1 * num2);
num2++;
replaceFor(num1, num2);
}
}
/*
输出结果:
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
8 * 1 = 8  8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64
7 * 1 = 7  7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49
6 * 1 = 6  6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36
5 * 1 = 5  5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25
4 * 1 = 4  4 * 2 = 8   4 * 3 = 12  4 * 4 = 16
3 * 1 = 3  3 * 2 = 6   3 * 3 = 9
2 * 1 = 2  2 * 2 = 4
1 * 1 = 1

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

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
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: