27 Kasım 2011 Pazar

C#’ta Yıldızlı Kelebek tarifi, içerik: iki yarım üçgen, bir sürü boşluk…

Çıktı kodun altındadır.

Kod:

  1: void KelebekYildizli(int n)
  2:         {
  3:             if (n % 2 == 0) n++;
  4:             for (int i = 0; i < n / 2; i++)
  5:             {
  6:                 for (int j = 0; j < i + 1; j++)
  7:                 {
  8:                     Console.Write("*");
  9:                 }
 10:                 for (int j = 0; j < n - 2 * i - 2; j++)
 11:                 {
 12:                     Console.Write(" ");
 13:                 }
 14:                 for (int j = 0; j < i + 1; j++)
 15:                 {
 16:                     Console.Write("*");
 17:                 }
 18:                 Console.WriteLine();
 19:             }
 20:             for (int i = 0; i < n ; i++)
 21:             {
 22:                 Console.Write("*");
 23:             }
 24:             Console.WriteLine();
 25:             for (int i = (n-2) / 2; i >= 0 ; i--)
 26:             {
 27:                 for (int j = i+1; j > 0; j--)
 28:                 {
 29:                     Console.Write("*");
 30:                 }
 31:                 for (int j =  n - 2 * i - 2; j > 0; j--)
 32:                 {
 33:                     Console.Write(" ");
 34:                 }
 35:                 for (int j = i+1; j > 0; j--)
 36:                 {
 37:                     Console.Write("*");
 38:                 }
 39:                 Console.WriteLine();
 40:             }
 41:         }
 42: 

Çıktısı:
kelebekyildizli

Not: Girlen satır sayı tek değilse, bir üst tek satır gibi algılar (mes: 6 girildise, 7 algılar). Kelebeğin simetrik olması içindir.

7 yorum:

  1. Hocam sana zahmet kodları C ye cevirebilirmisin??

    bide extradan tek printf le yapmak istiyorsak napmalıyız..

    YanıtlaSil
  2. c de 4 for lu hali

    #include
    main()
    {
    int n=0, i=0, a=0, b=8,t;
    for(t=0;t<7;t++)
    {
    if(t<=3){i++;b-=2;}
    else if(t>3){i--;b+=2;}

    for(n=0;n<i;n++)
    {
    printf("X");
    }
    for(a=0;a<b;a++)
    {
    printf(" ");
    }
    for(n=0;n<i;n++)
    {
    printf("X");
    }
    printf("\n");
    }
    }

    YanıtlaSil
    Yanıtlar
    1. Adamın dibisin :) gerçekten Allah razı olsun ..

      Sil
  3. Çok güzel. Ey ninja yolunun takipçisi, sana saygılarımı bildiriyorum. :)

    YanıtlaSil
  4. rica ederim :)
    tek printf le de böyle yazılabilr herhalde en kısa boşluklardan kurtardım ;)
    main()
    {
    char a='*';
    printf("*%8c\n**%6c*\n***%4c**\n****%2c***\n*****%c***\n****%2c***\n***%4c**\n**%6c*\n*%8c\n",a,a,a,a,a,a,a,a,a);

    }

    YanıtlaSil
  5. kardeş n hatası atıyor

    YanıtlaSil
  6. hocam sana zahmet javaya çevirme şansın varmı

    YanıtlaSil