20
Kas'10

C Palindrom Kelime (C Programlama Dili)

Merhaba,
Palindrom kelime normal ve tersten yazımı aynı olan kelimedir.Aşağıdaki örnekte pointer’ların da yardımıyla bir diziye atadığımız kelimenin palindrom olup olmadığını bulacağız.

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

main(){

   int i,adet;
   char *p;
   char A[10],B[10];

   p=A;

   printf("Kac harf gireceksiniz? (max 10 harf): ");

   scanf("%d",&adet);
   //p dizinin ilk adresinde, sırayla adreslere harfleri yaz.
   for(i=0;i<adet;i++){
      printf("\n %d. harf : ",i+1);
      scanf("%s",p);
      p++;
   }
   //en son harften sonra da adres ötelendi.
   //bir adres geri gelmek gerekiyor.
   p--;
   //kontrol etmek için harfleri sondan basa B'ye kaydet.
   printf("\n");

   for(i=0;i<adet;i++){
      B[i]=*p;
      printf("%c",A[i]);
      p--;
   }
   //iki dizi birbiri ile aynımı?
   for(i=0;i<adet;i++){
      if(A[i]!=B[i]){
         printf("\n\nPalindrom degildir.");
         goto end;
      }
   }
   printf("\n\nBu bir palindromdur!");

   end:

getch();
}

İlk önce char tipinde dizilerimizi ve diziye işaret edecek olan pointerimizi tanımladık.B dizisi girilen harfleri tersten kaydetmek ve daha sonra A dizisi ile kontrol etmek için tanımlandı.

 

Birinci for döngüsünün içinde pointer adresini öteleyerek kullanıcıdan harf aldırdık.

 

İkinci for ‘da ise pointer zaten son harfin adresindeydi ve onu geri öteleyerek içindeki veriyi B dizisine sıra ile kaydettik.

 

A dizisinde kullanıcıdan aldığımız sırayla harfler dururken B dizisinde ters yazılmış şekilde kayıtlı.

 

Son for döngüsünde de A ve B ‘nin ilk elemanından başlayarak birbirlerini tutup tutmadığını kontrol ettik.Tek bir harf bile tutmadığında program, palindrom değildir yazıp sona gidiyor.Bütün harfler tutarsa for döngüsünden çıkıyor ve sıradaki satırda printf ile belirttiğimiz gibi palindromdur yazıp program sonlanıyor.

 

Son olarak, 40. satır bizim girdiğimiz harfleri ekrana yazıyor.Sadece daha anlaşılır bir sonuç için.O satırı kaldırsak da program doğru çalışır.

 

İyi çalışmalar.

  • http://fevziylmaz.blogspot.com Fevzi

    Eline sağlık Turgay kardeşim işimi gördü baya:)

Yeni makaleleri E-Mail ile takip edin!