c++编程题2


使用双重循环输出下图:

    *
   ***
  *****
 *******

思路一,每一行(i)先循环输出空格,再循环输出*号:

#include <stdio.h>
int main()
{
    int i, j, k;
    for(i=1; i<5; i++)
    {
        
        for(    j=i ; j<5 ;  j++  )  
        {
            printf(" ");    //输出空格
        }

        for( k=0 ;  k<2*i-1 ;  k++     ) 
        {
            printf("*");   //每行输出的*号
        }
        printf("\n");     //每次循环换行
    }
    return 0;
}


思路二,观察题目发现空格出现在行(i)与列(i)有关系:j+i<=4和j-i>=4的地方,故得代码如下:

#include "stdafx.h"
#include <stdio.h>
int main()
{
    int i, j;
    for(i=1; i<5; i++)
    {
       
        for(    j=1 ;  j<8 ;  j++  )  
        {
            if(j+i<=4||j-i>=4){
                printf(" "); //输出“ ”
            }else{
                printf("*"); //输出“*”
            }
        }

        printf("\n");     //每次循环换行
    }
    return 0;
}





发布了22 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/csucoder_zone/article/details/52492733
今日推荐