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

C语言for()循环打印三角形、倒置三角形、菱形、九九表

2019-01-08 20:31 597 查看

C语言for()循环打印三角形、倒置三角形、菱形图形、九九表

一、三角形
#include <stdio.h>
int main(void){
//输入行数打印三角形

int n; //行数
printf("输入行数: \n");
scanf("%d",&n);

/*
printf("     *\n"); //1
printf("    ***\n"); //2
printf("   *****\n"); //3
printf("  *******\n"); //4
printf(" *********\n"); //5
printf("***********\n"); //6
*/

/*
第1行:  5个空格,    1个*
第2行:  4个空格,    3个*
第3行:  3个空格,    5个*
第4行:  2个空格,    7个*
第5行:  1个空格,    9个*
第6行:  0个空格,    11个*
第i行: n-i个空格, *个数=2*i-1;
*/

for(int i=1;i<=n;i++){

//每次循环打印一行

//打印空格,空格数是n-i个
for(int j=0;j<n-i;j++){
printf(" ");
}

//打印*,个数是2i-1
for(int j=0;j<2*i-1;j++){
printf("*");
}

//打印换行符
printf("\n");

}

return 0;

}

二、倒置三角形
#include <stdio.h>
int main(void){
//输入行数打印倒置三角形

int n; //行数

printf("输入行数: \n");
scanf("%d",&n);

/*
printf("***********\n"); //1
printf(" *********\n"); //2
printf("  *******\n"); //3
printf("   *****\n"); //4
printf("    ***\n"); //5
printf("     *\n"); //6
*/

/*
第1行:   	0个空格,    11个*
第2行:   	1个空格,    9个*
第3行:   	2个空格,    7个*
第4行:   	3个空格,    5个*
第5行:   	4个空格,    3个*
第6行:   	5个空格,    1个*

第i行:    i-1个空格, *个数=2*n-(2*i-1);
*/

for(int i=1;i<=n;i++){

//每次循环打印一行

//打印空格,空格数是i-1个
for(int j=0;j<i-1;j++){
printf(" ");
}

//打印*,个数是2*n-(2*i-1);
for(int j=0;j<2*n-(2*i-1);j++){
printf("*");
}

//打印换行符
printf("\n");

}

return 0;

}

三、菱形
#include <stdio.h>
int main(void){
//输入行数打印菱形
int i;
int n; //行数

printf("输入奇数行数,如5,7,9等数(偶数不能打印对称的菱形): \n");
scanf("%d",&n);

/*
printf("     *\n"); //1
printf("    ***\n"); //2
printf("   *****\n"); //3
printf("  *******\n"); //4
printf(" *********\n"); //5
printf("***********\n"); //6
printf(" *********\n"); //7
printf("  *******\n"); //8
printf("   *****\n"); //9
printf("    ***\n"); //10
printf("     *\n"); //11
*/

/*
第1行:   	5个空格,    	 1个*
第2行:   	4个空格,    	 3个*
第3行:   	3个空格,    	 5个*
第4行:   	2个空格,    	 7个*
第5行:   	1个空格,    	 9个*
第6行:   	0个空格,    	 11个*
第i行:   (n+1)/2-i个空格, *个数=2i-1;

第7行:  	1个空格,  		9个*
第8行:  	2个空格,  		7个*
第9行:		3个空格,  		5个*
第10行:		4个空格,  		3个*
第11行: 	5个空格,  		1个*
第i行: 	i-(n+1)/2 个空格, *个数=2*n-(2*i-1);
*/

for(i=1;i<=n;i++){

//每次循环打印一行

if(i<=(n+1)/2){
//打印空格,空格数是(n+1)/2-i
for(int j=0;j<(n+1)/2-i;j++){
printf(" ");
}

//打印*个数是2i-1
for(int j=0;j<2*i-1;j++){
printf("*");
}
}

if(i>(n+1)/2){
//打印空格,空格数是i-(n+1)/2
for(int j=0;j<i-(n+1)/2;j++){
printf(" ");
}

//打印*个数是2*n-(2*i-1)
for(int j=0;j<2*n-(2*i-1);j++){
printf("*");
}
}

//打印换行符
printf("\n");
}

return 0;

}

四、九九表
#include <stdio.h>
int main(void){
/*
数学版乘法口诀表
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

*/
//每次打印一行
int i; //行 一共9行
int j; //列 一共9列
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
printf("%dX%d=%d\t",j,i,j*i);
}
printf("\n");
}
return 0;

}
gcc 文件名 -std=c99编译以上三种图运行即可。编译器是MinGW。
本小猿代码可能臃肿,望大猿不吝赐教。

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