[Çözüldü] C'de İsimden Kare Yapmak?

Başlatan amon-ra, 15 Eylül 2011 - 20:17:33

« önceki - sonraki »

0 Üyeler ve 4 Ziyaretçi konuyu incelemekte.

amon-ra

Bir isim girdiğimizde bize o isimden 4  tane yazıp bunları kare şeklinde ekrana getirecek bir programı nasıl yazabiliriz?

Örneğin
barış yazdığımızda çıktının şu şekilde olması lazım
 
            şbarış
            ı     b
            r     a
            a     r
            b     ı
             şırabş

sem

Aslında algoritmayı şekilde vermişsiniz.

Aldığınız ismi bir kere ters çevirin. Gerisi zaten şeklebakınca algoritmaçıkıyor. Önemli olan iki diziyi elde elde edip, dikey olanları yazarken hangi indisin karşıısna hangisinin geleceğiniz yazmak...

Bu doğrultuda başlayın, yapamadığınız durumlarda müdahale edilir yine =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

egcodes

Böyle yapılabilir tam olarak niçin kullanacaksınız  meraktan soruyorum :)



#include <stdio.h>
#include <string.h>

void print_kare(char *name);

int main(void) {

    char name[20];
    int len;

    printf("Isım girin: ");
    scanf("%s", name);

    print_kare(name);

    return 0;
}

void print_kare(char *name)
{
    int len, i, space;

    len = strlen(name) - 1;

    printf("%c", name[len]);
    puts(name);

    for (i = 0; i < len; i++) {
        space = strlen(name);
        printf("%c", name[len - i - 1]);
        while (space--)
            printf(" ");
        printf("%c", name[i]);
        printf("\n");
    }

    printf(" %c", name[len]);
    for (i = 0; i < len; i++)
        printf("%c", name[len - i - 1]);
    printf("%c", name[len]);
}

1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

amon-ra

Alıntı yapılan: sem0900 - 15 Eylül 2011 - 21:19:42
Aslında algoritmayı şekilde vermişsiniz.

Aldığınız ismi bir kere ters çevirin. Gerisi zaten şeklebakınca algoritmaçıkıyor. Önemli olan iki diziyi elde elde edip, dikey olanları yazarken hangi indisin karşıısna hangisinin geleceğiniz yazmak...

Bu doğrultuda başlayın, yapamadığınız durumlarda müdahale edilir yine =)

Müdahale edilse hiç fena olmaz aslında :) dizileri ters çevirebiliyorum ama dikey yazdıramıyorum.

sem

for(i=X, j = Y; bittiğinde bırak; ++i, ++j)
printf(stdout, "%c            %c\n", ters_isim_dizim[lentg - i], isim_dizim[j]);

tarzında derken... Bir bakayım dedim bir daha ama... OO egcodes yazmış göndermiş bile ben şunu yazana kadar =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

amon-ra

Alıntı yapılan: egcodes - 15 Eylül 2011 - 21:27:59
Böyle yapılabilir tam olarak niçin kullanacaksınız  meraktan soruyorum :)



#include <stdio.h>
#include <string.h>

void print_kare(char *name);

int main(void) {

    char name[20];
    int len;

    printf("Isım girin: ");
    scanf("%s", name);

    print_kare(name);

    return 0;
}

void print_kare(char *name)
{
    int len, i, space;

    len = strlen(name) - 1;

    printf("%c", name[len]);
    puts(name);

    for (i = 0; i < len; i++) {
        space = strlen(name);
        printf("%c", name[len - i - 1]);
        while (space--)
            printf(" ");
        printf("%c", name[i]);
        printf("\n");
    }

    printf(" %c", name[len]);
    for (i = 0; i < len; i++)
        printf("%c", name[len - i - 1]);
    printf("%c", name[len]);
}



Özel bir amacı yok  staj defterime ekleyeceğim de :)
Teşekkürler bu arada

sem

Başlık ile ilgili sorun çözülmüş gibi sanki?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

amon-ra

Alıntı yapılan: sem0900 - 02 Ekim 2011 - 21:33:07
Başlık ile ilgili sorun çözülmüş gibi sanki?

Evet sorun çözülmüştür.