A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© tingfeng1992 中级黑马   /  2015-6-21 15:41  /  19012 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*                 如果是5行            
    *              第一行4个空格,1个*   
   ***           第二行3个空格,3个*
  *****        第三行2个空格,5个*
*******     第四行1个空格,7个*
*********  第五行0个空格,9个*
*/
首先打印5行的正三角形,代码如下
#include <stdio.h>

int main(int argc, const char * argv[]) {
   
    for(int i=1;i<=5;i++){
         //打印空白
        for (int j=4; j>=i; j--) {
            printf(" ");
        }
        for (int j=1; j<=2*i-1; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}
但是上面这个只是打印5行的正三角形,不具有通用性,不能手动输入需要打印的行数。
下面这个程序可以手动输入你需要打印的行数,打印任意行数的正三角形。代码如下:
//这个是通用性的
#include <stdio.h>

int main(int argc, const char * argv[]) {
    int low=0;
    printf("请输入正三角的行数\n");
    scanf("%d",&low);
    for(int i=1;i<=low;i++){
        //打印空白
        for (int j=low-1; j>=i; j--) {
            printf(" ");
        }
        for (int j=1; j<=2*i-1; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

17 个回复

倒序浏览
王博Lynn 发表于 2015-6-23 20:47
这种题需要先算好空格和*的规律

是啊,主要是算法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马