用C语言输出各种三角形

三角形类型

  • 用C语言输出各种三角形
  • 1.直角在左下角的三角形
  • 2.直角在左上角的三角形
  • 3.直角在右下角的三角形
  • 4.直角在右上角的三角形
  • 5.正三角形(金字塔)
  • 倒三角形

1.直角在左下角的三角形

代码:

#includeint main(){ int i,j,n; printf("请输入一个数字\n");//输入三角形的行数 scanf("%d",&n); for(i=1;i<=n;i++)//外循环,控制三角形行数 { for(j=1;j<=i;j++)//内循环,控制三角形列数 printf("*"); printf("\n"); }return 0;}

2.直角在左上角的三角形

代码:

#includeint main(){int i,j,n; printf("请输入一个数字\n");//输入三角形的行数 scanf("%d",&n); for(i=1;i<=n;i++)//外循环,控制三角形行数 { for(j=n-i+1;j>=1;j--)//j=n-i+1是因为j这个变量必须跟i有相关性(j的范围得靠i来锁定)//而i从1加到n,我们打印的*应逐行减少,应从n到1所以j=n-i+1 printf("*");printf("\n"); }return 0;}

3.直角在右下角的三角形

代码:
其实要变化的是第二个for循环,要先打印出空格

#includeint main(){int i,j,n; printf("请输入一个数字\n");//输入三角形的行数 scanf("%d",&n); for(i=1;i<=n;i++)//大for循环 { //第一个小for循环,控制空格个数从n-1个到0个空格for(j=n-i;j>=1;j--)printf(" "); //第二个小for循环,控制*个数,从1到那个n个因为j要由i控制,所以就j<=ifor(j=1;j<=i;j++)printf("*");printf("\n");}return 0;}

4.直角在右上角的三角形

代码:

#includeint main(){int i,j,n; printf("请输入一个数字\n"); scanf("%d",&n); for(i=1;i<=n;i++) { //打印空格,空格从0到i-1个 ,j=1而不是j=0,因为j=0会打印出一个空格 for(j=1;j<=i-1;j++)printf(" ");//打印* ,随着i增大,*应该减少 ,且由i控制,所以j=n-i+1 for(j=n-i+1;j>=1;j--)printf("*");printf("\n");}return 0;}

5.正三角形(金字塔)

每行*数=行数×2-1

#includeint main(){int i,j,n; printf("请输入一个数字\n"); scanf("%d",&n); for(i=1;i<=n;i++) {//空格数从n-1到0for(j=n-i;j>=1;j--)printf(" ");//每行*数=行数×2-1,从i开始到行数-1for(j=1;j<=i*2-1;j++)printf("*");printf("\n"); }return 0;}

倒三角形

#include int main() {int n;printf("请输入等边三角形的行数:");scanf("%d", &n);for (int i = n; i >= 1; i--) {// 打印空格,用于控制每行的缩进for (int j = 0; j < n - i; j++) {printf(" ");}// 打印"*",用于构建三角形for (int j = 0; j < 2 * i - 1; j++) {printf("*");}// 换行printf("\n");}return 0;}