C 语言范例 - 创建各类三角形图案
创建三角形图案
使用 * 号
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int i, j, rows; printf("行数: "); scanf("%d",&rows); for(i=1; i<=rows; ++i) { for(j=1; j<=i; ++j) { printf("* "); } printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 行数: 4 * * * * * * * * * *
使用数字
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int i, j, rows; printf("行数: "); scanf("%d",&rows); for(i=1; i<=rows; ++i) { for(j=1; j<=i; ++j) { printf("%d ",j); } printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 行数: 4 1 1 2 1 2 3 1 2 3 4
使用字母
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int i, j; char input, alphabet = 'A'; printf("输入大写字母: "); scanf("%c",&input); for(i=1; i <= (input-'A'+1); ++i) { for(j=1;j<=i;++j) { printf("%c", alphabet); } ++alphabet; printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out
输入大写字母: D
A
BB
CCC
DDDD
倒三角形
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int i, j, rows; printf("行数: "); scanf("%d",&rows); for(i=rows; i>=1; --i) { for(j=1; j<=i; ++j) { printf("* "); } printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 行数: 4 * * * * * * * * * *
倒三角形数字
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int i, j, rows; printf("行数: "); scanf("%d",&rows); for(i=rows; i>=1; --i) { for(j=1; j<=i; ++j) { printf("%d ",j); } printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 行数: 4 1 2 3 4 1 2 3 1 2 1
金字塔
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int i, space, rows, k=0; printf("Enter number of rows: "); scanf("%d",&rows); for(i=1; i<=rows; ++i, k=0) { for(space=1; space<=rows-i; ++space) { printf(" "); } while(k != 2*i-1) { printf("* "); ++k; } printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out Enter number of rows: 4 * * * * * * * * * * * * * * * *
数字金字塔
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int i, space, rows, k=0, count = 0, count1 = 0; printf("行数: "); scanf("%d",&rows); for(i=1; i<=rows; ++i) { for(space=1; space <= rows-i; ++space) { printf(" "); ++count; } while(k != 2*i-1) { if (count <= rows-1) { printf("%d ", i+k); ++count; } else { ++count1; printf("%d ", (i+k-2*count1)); } ++k; } count1 = count = k = 0; printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 行数: 4 1 2 3 2 3 4 5 4 3 4 5 6 7 6 5 4
倒金字塔
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include<stdio.h> int main() { int rows, i, j, space; printf("行数: "); scanf("%d",&rows); for(i=rows; i>=1; --i) { for(space=0; space < rows-i; ++space) printf(" "); for(j=i; j <= 2*i-1; ++j) printf("* "); for(j=0; j < i-1; ++j) printf("* "); printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 行数: 4 * * * * * * * * * * * * * * * *
杨辉三角
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int rows, coef = 1, space, i, j; printf("行数: "); scanf("%d",&rows); for(i=0; i<rows; i++) { for(space=1; space <= rows-i; space++) printf(" "); for(j=0; j <= i; j++) { if (j==0 || i==0) coef = 1; else coef = coef*(i-j+1)/j; printf("%4d", coef); } printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 行数: 5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
弗洛伊德三角形
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int rows, coef = 1, space, i, j; printf("行数: "); scanf("%d",&rows); for(i=0; i<rows; i++) { for(space=1; space <= rows-i; space++) printf(" "); for(j=0; j <= i; j++) { if (j==0 || i==0) coef = 1; else coef = coef*(i-j+1)/j; printf("%4d", coef); } printf("\n"); } return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 行数: 5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1