[code lang=”c”]#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i=0;
while(1)
{
printf("Lutfen n sayisini girin\n");
scanf("%d",&i);
if(i<22 && i>0 && i%2==1)
break;
printf("1 ile 21 arasinda tek bir sayi girin.\n");
}
int j,k,m=(i*2-1-i+2)/2-1;
for (j=0;j<i*2-1;j++)
{
for (k=0;k<i*2-1;k++)
{
if(k>m && j>m && k<i*2-2-m && j<i*2-2-m) // karenin ortası
printf(" ");
else if((k<i-1 && k+j<=i-2) || (k>i-1 && k-j>i-1)) // karenin sol üst ve sağ üst köşeler (veya ile ayrılmış)
{
printf(" ");
}
else if((k<i-1 && j-k>i-1 ) || (k>i-1 && k+j>=i*3-2)) // karenin sol alt ve sağ alt köşeler (veya ile ayrılmış)
{
printf(" ");
}
else
{
printf("*");
}
}
printf("\n");
}
system("PAUSE");
return 0;
}
Oğuz
05/05/2011 — 11:56
Ordaki while yerine do-while kullanmak sanki daha doğru gibi başgan.
Emrah Kahraman
05/05/2011 — 15:50
while ‘ın farklı bir kullanımını göstermek istedim. Kod çalışıyor sorun yok bu arada.
Nathalia
16/04/2012 — 16:02
My answer:static void asdpliy_char(char c){ switch (c) { case a’: printf( a ); break; case b’: printf( b ); break; case c’: printf( c ); break; case d’: printf( d ); break; case e’: printf( e ); break; case f’: printf( f ); break; case g’: printf( g ); break; case h’: printf( h ); break; case i’: printf( i ); break; case j’: printf( j ); break; case k’: printf( k ); break; case l’: printf( l ); break; case m’: printf( m ); break; case n’: printf( n ); break; case o’: printf( o ); break; case p’: printf( p ); break; case q’: printf( q ); break; case r’: printf( r ); break; case s’: printf( s ); break; case t’: printf( t ); break; case u’: printf( u ); break; case v’: printf( v ); break; case w’: printf( w ); break; case x’: printf( x ); break; case y’: printf( y ); break; case z’: printf( z ); break; default: printf( %c , c); }}int main(void){ char i; for (i = 0 61; i