例 6.7 输出一个菱形图。

来源:互联网 发布:mysql count 编辑:程序博客网 时间:2024/06/05 02:23

C程序设计(第四版) 谭浩强 例6.7 个人设计

例 6.7 输出一个菱形图。

   

        

   

代码块:

方法1:(利用循环结构)

#include <stdio.h>int main(){    int i, j, k;    for (i=0; i<3; printf("\n"), i++){            //此行控制前3行输出,并以换行结尾。        for (j=2-i; j>0; printf(" "), j--);       //此行控制第一个星号前的空格        printf("*");                              //输出每行第一次出现的星号        //以下是除去第一行执行下列语句        if (i){            for (k=0; k<2*i-1; printf(" "), k++); //此行控制每行第一个星号后面的空格输出            printf("*");                          //输出每行第二次出现的星号        }    }    for (i=0; i<2; printf("\n"), i++){             //此行控制后两行的输出,并以换行结尾。        for (j=0; j<i+1; printf(" "), j++);        //此行控制第一个星号前的空格        printf("*");                               //输出每行第一次出现的星号        //以下是除去最后一行执行下列语句        if (!i){            for (k=2*i+1; k>0; printf(" "), k--);  //此行控制每行第一个星号后面的空格输出            printf("*");                           //输出每行第二次出现的星号        }    }    return 0;}

方法2:(利用数组和循环结构)

#include <stdio.h>int main(){    //定义一个5*5的数组,对于满足条件元素赋值星号,不满足的为空。    for (int i=0, a[5][5]; i<5; i++)        for (int j=0; j<5; j++)            if (j==i+2 || j==i-2 || j==2-i || j==6-i) a[i][j]='*';            else a[i][j]=' ';    //输出数组全部元素    for (i=0; i<5; printf("\n"), i++)        for (int j=0; j<5; printf("%c", a[i][j++]));    return 0;}
原创粉丝点击