1- son satırda
printf("%d",D[i]);
şeklinde yazmışsın ama for döngüsünde artık "i" değil k değeri kullanılıyor.
_________________________________________________
2- comment'leri buraya kopyalarken yazdığını düşünüyorum, ama yine de söyleyeyim,
/* bu şekilde */
veya
// bu şekilde
comment yazmalısın.
_________________________________________________
3- c++ demişsin ama printf filan kullandığına göre sanırım c olarak derliyorsun kodu,
c'de for loop içerisinde initialize işlemi yapamıyorsun.
yani,
for(int i = 0; i < 26; i++) // sadece c++ için çalışır
int i;
for(i = 0; i < 26; i++) // hem c++ hem de c için çalışır
_________________________________________________
4- bir de iç içe for döngüsündeki ikinci for döngüsünde yani alfabeyi iterate ettiğin bölümde şu şekilde yazmışsın,
for(int j=0;i<c;j++)
dikkat edersen döngü içerisinde j kullanıyorsun ama kontol için i < c demişsin. o yüzden tüm alfabeyi döndürmek yerine sadece girdiğin kelimenin uzunluğu kadar çalışır. bir de üstüne yukarıdaki for döngüsü için de i kullanıldığında iyice garip bir durum ortaya çıkar. doğrusu şöyle olacak,
for(int j=0;j<c;j++)
_________________________________________________
5- son olarak hata değil ama kodun daha hızlı çalışması için bir öneri.
eğer harf alfabede bulunduysa artık kalan diğer harfleri de taramana gerek yok, o yüzden "break" komutuyla for döngüsünü o anda sonlandırabilirsin.
yani şöyle,
for(i=0;i<c;i++) {
for(j=0;j<26;j++) {
if(kelime[i]==alfabe[j]) {
D[i]=j;
break;
}
}
}
_________________________________________________
düzenlenmiş, çalışan koda da buradan bakabilirsin.
dl.dropbox.com