用C语言输出各种三角形

2024最全用C语言输出各种三角形(含完整代码)

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

代码:

#include<stdio.h>
int 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.直角在左上角的三角形

代码:

#include<stdio.h>
int 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循环,要先打印出空格

#include<stdio.h>
int 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<=i
        for(j=1;j<=i;j++)
        printf("*");
         
       printf("\n");
      }
return 0;
}

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

代码:

#include<stdio.h>
int 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

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

在这里插入图片描述

倒三角形

#include <stdio.h>

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;
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值