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。
本小猿代码可能臃肿,望大猿不吝赐教。