servet6666 adlı üyeden alıntı

Teşekkür ederim, uğraşınız için ama siz yıldız adetini girdiriyorsunuz, ben kenar uzunluğunu girdirilmesini istiyorum; Örneğin 6 girecem

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

Yukardaki gibi şekil olacak. Tabii kare olmuyor burda (siz bunun karesini düşünün)


Hocam çok hazırcısınız :D . Sadece 1 satırı değiştirerek yapabilirdiniz. Buyrun program kodu.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Write("Kanar uzunluğunu girin : ");
String yildiz_adeti = Console.ReadLine(); // String olarak kullanıcıdan yıldiz adeti alındı.
int int_yildiz_adeti = Int32.Parse(yildiz_adeti); // String ifade integer ifadeye dönüştürüldü.


int en_ust_satirdaki_yildiz_sayisi = int_yildiz_adeti;
int ust_satir_sayaci;
int alt_bolumde_atilacak_bosluk_sayisi = 1;
for (ust_satir_sayaci = 1; ust_satir_sayaci <= en_ust_satirdaki_yildiz_sayisi; ust_satir_sayaci++)
{
Console.Write("*");
alt_bolumde_atilacak_bosluk_sayisi++;
}

alt_bolumde_atilacak_bosluk_sayisi -= 2; // alt bölümde atılacak boşluk sayısı üst satırdaki en baş ve en son * ların çıkarılması ile belirlendi.
String string_olarak_boslugun_yazimi = " ";
String string_olarak_yildizin_yazimi = "*";
int bosluk_sayaci;
String yeni_string_olarak_boslugun_yazimi = ""; // başta boş
String yeni_string_olarak_yildizin_yazimi = "";

for (bosluk_sayaci = 1; bosluk_sayaci < alt_bolumde_atilacak_bosluk_sayisi; bosluk_sayaci++)
{
yeni_string_olarak_boslugun_yazimi = yeni_string_olarak_boslugun_yazimi + string_olarak_boslugun_yazimi;
yeni_string_olarak_yildizin_yazimi = yeni_string_olarak_yildizin_yazimi + string_olarak_yildizin_yazimi;
}

Console.WriteLine("");
for (ust_satir_sayaci = 1; ust_satir_sayaci < en_ust_satirdaki_yildiz_sayisi; ust_satir_sayaci++)
{
if (ust_satir_sayaci == alt_bolumde_atilacak_bosluk_sayisi) // Son satırdaysa.
{
Console.WriteLine("*" + yeni_string_olarak_yildizin_yazimi + "*");
}
else
{
Console.WriteLine("*" + yeni_string_olarak_boslugun_yazimi + "*"); // Ara satırdaysa
}
}




Console.ReadLine(); // konsolu ekranda tutmaya yarar.
}
}
}