C语言 用星号输出菱形。

Python020

C语言 用星号输出菱形。,第1张

#include <stdio.h>

void print(int k)

{

    int i,j,n

n = k/2+1

    for(i = 0i<ni++)

    {

        for(j=0j<n-i j ++)

            putchar(' ')

        for(j = 0 j<2*i+1 j++)

            putchar('*')

        putchar('\n')

    }

    for(i = n-2 i>=0 i --)

    {

        for(j=0j<n-i j ++)

            putchar(' ')

        for(j = 0 j<2*i+1 j++)

            putchar('*')

        putchar('\n')        

    }

}

int main()

{

    int n

    scanf("%d",&n)

    print(n)

    return 0

}

我写的代码常量可修改任意奇数,实现其他大小的菱形

#include <stdio.h>

#define maxLen 7//菱形最宽处*号个数,可修改!(必须是奇数)

int main()

{

    int i=1,j,m=maxLen

    while(i<m)//上半层

    {

        for(j=0j<(m-i)/2j++)

            printf(" ")

        for(j=0j<ij++)

            printf("*")

        for(j=0j<(m-i)/2j++)

            printf(" ")

        printf("\n")

        i+=2

    }

    for(i=0i<mi++)//中间层

        printf("*")

    printf("\n")

    i=m-2

    while(i>=1)//下半层

    {

        for(j=0j<(m-i)/2j++)

            printf(" ")

        for(j=0j<ij++)

            printf("*")

        for(j=0j<(m-i)/2j++)

            printf(" ")

        printf("\n")

        i-=2

    }

    return 0

}

#include"stdio.h"

int main(void){

 int i,j,k

 for(i=0i<=3i++) {   //   循环4次,打出前4行

  for(j=0j<=2-ij++)//设定每行*前面的空格,每行都是2-i个

   printf(" ") 

  for(k=0k<=2*ik++)//循环打出2*i-1个*号,

   printf("*") 

  printf("\n") //打完一行后换行

 }

 for(i=0i<=2i++) {//循环3次,打出后3行

  for(j=0j<=ij++)//设定每行*前面的空格,每行都是i个

   printf(" ") 

  for(k=0k<=4-2*ik++)//循环打出2*(2-i)个*号

   printf("*") 

  printf("\n") //打完一行后换行

 } 

 return 0