《C语言及程序设计》实践参考——输出小星星(之3)

简介: 返回:贺老师课程教学链接  项目要求要输出的星号图是:  将一个图,看作为6行,完成了第一级的分解,提到的算法框架为:i=1; While(i<=6) //需要输出6行 { 输出第i行; 换行; ++i; } 对于“输出第i行”的任务,可以进行细化:先输出若干空格(多少个空格?第1行0个,第2行1个,第3行2……第6行5个); 再输出若

返回:贺老师课程教学链接  项目要求


要输出的星号图是:


  
将一个图,看作为6行,完成了第一级的分解,提到的算法框架为:

i=1;  
While(i<=6)  //需要输出6行  
{  
  输出第i行;  
  换行;  
  ++i;  
} 

对于“输出第i行”的任务,可以进行细化:
先输出若干空格(多少个空格?第1行0个,第2行1个,第3行2……第6行5个);  
再输出若干个星号(多少星号?第一行11个,第2行9个……第6行1个)  
其实把空格数和星号数和表示行数的变量 i 挂起钩来,上面的“若干个”可以用 i 表示出来,简单地做些推算可以写出式子。
对于“输出第i行”的任务,可以进行细化:
先输出 i-1 个空格;   
再输出 2*(6-i)+1 个星号;   
于是,算法就是:
i=1;  
While(i<=6)  //需要输出6行  
{  
  //输出第i行  
  先输出 i-1 个空格;   
  再输出 2*(6-i)+1 个星号;   
  换行;  
  ++i;  
}  
将输出若干个空格/星号等写成代码,得到了下面的代码
//参考解答一  
#include <stdio.h>  
int main( )  
{  
    int i,j;  
    i=1;  
    while(i<=6)  //需要输出6行  
    {  
        //输出第i行  
        for(j=1; j<=i-1; ++j)  
            printf(" ");;  
        for(j=1; j<=2*(6-i)+1; ++j)  
            printf("*");;  
        printf("\n");  
        ++i;  
    }  
    return 0;  
}  

下面给出程序的另一种写法,其中引入了两个变化:(1)三角的行数可以由变量n控制;(2)最外层控制输出n行的循环改为了for循环,实际上,内层的循环用while也无不可。
//参考解答二  
#include <stdio.h>  
int main( )  
{  
    int i,j,n=15; //用n来灵活对待可能的行数  
    for(i=1;i<=n;++i)  //将上一种解法中的while循环改造为for循环  
    {  
        //输出第i行  
        for(j=1; j<=i-1; ++j) //内层的这个for循环可以写作while循环  
            printf(" ");;  
        for(j=1; j<=2*(n-i)+1; ++j) //这儿也可以用其他循环,可尝试改造  
            printf("*");;  
        printf("\n");  
    }  
    return 0;  
}  

下面的程序采用的是让控制循环的变量由大变小(与三角上大下小呼应)的思路,相应地,只需要改变控制空格数和星号数的式子即可
//参考解答三  
#include <stdio.h>  
int main( )  
{  
    int i,j,n=6;   
    for(i=n;i>=1;--i) //i由大变小  
    {  
        //输出第i行  
        for(j=1; j<=n-i; ++j) //关键:输出的是n-i个空格  
            printf(" ");;  
        for(j=1; j<=2*i-1; ++j) //关键:输出的是2*i-1个星号  
            printf("*");;  
        printf("\n");  
    }  
    return 0;  
}  

其他的星号图,思路类似。
目录
相关文章
|
2月前
|
存储 程序员 C语言
【C语言程序设计】数组程序设计
【C语言程序设计】数组程序设计
43 0
|
5月前
|
C语言
第1章 程序设计和C语言
第1章 程序设计和C语言
34 0
|
2月前
|
Serverless 程序员 C语言
【C语言程序设计】函数程序设计
【C语言程序设计】函数程序设计
38 0
|
2月前
|
C语言
【C语言程序设计】循环结构程序设计
【C语言程序设计】循环结构程序设计
31 0
|
2月前
|
存储 C语言
【C语言程序设计】选择结构程序设计
【C语言程序设计】选择结构程序设计
16 0
|
2月前
|
存储 算法 Serverless
【C语言程序设计】顺序结构程序设计
【C语言程序设计】顺序结构程序设计
43 0
|
2月前
|
程序员 编译器 C语言
【C语言程序设计】编写简单的C程序
【C语言程序设计】编写简单的C程序
34 0
|
2月前
|
C语言
C语言程序设计-前5章-思维导图
C语言程序设计-前5章-思维导图
17 0
|
2月前
|
算法 Java 程序员
第一章:程序设计与C语言
第一章:程序设计与C语言
35 0
|
6月前
|
存储 C语言
C语言程序设计-----猜数字游戏(1A2B详解)
C语言程序设计-----猜数字游戏(1A2B详解)
204 0

相关产品