yiğinlar hatayi nasil düzeltebiliriz

Bu başlık kilitlidir. Yeni mesajlar gönderilemez veya mevcut mesajlar düzenlenemez.
cetiner
03-01-2006, 03:17   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Oca 2006

yiğinlar ile klavyeden girilen bir stringi naisl tersten yazdirabiliriz çok uğraştim olmuyor bir tane örnek vereyim:
#define yiginuzunluk 21
struct yigin{
int ust;
char deger[yiginuzunluk];
};
char x;
void main(){
struct yigin s;
char str[20],krk;
struct yigin gir(),cik(),yiginolustur();
int i;
s=yiginolustur(s);
printf("\n 20 karakter uzunlugundaki diziyi giriniz");
gets(str);
printf("girilen dizi:");
puts(str);
while(str!='\0'){
krk=str;
s=gir(s,krk);
++i;
}
printf("\n girilen dizisi tersi:");
while(s.ust>0){
s=cik(s);
printf("%c",x);
}}
struct yigin gir(struct yigin yig,int y){
if(dolu(yig)==1){
printf("\n %s","yigin dolu");
exit(1);
}
yig.ust=yig.ust+1;
yig.deger[yig.ust]=y;
return yig;
}
int dolu(struct yign yig){
if(yig.ust==yiginuzunluk-1){
return 1;
else return 0;}
struct yigin cik(struct yigin yig){
if(bos(yig)==1){
printf("%s","yigin bos");
exit(1);
}
x=yig.deger[yig.ust];
yig.ust=yig.ust-1;
return yig;
}
int bos(struct yign yig){
if(yig.ust==0)
return 1;
else return 0;
}//*acele cevap bekliyorum iligli arkadaşlara duyrulur*//

cakmakhu
05-01-2006, 22:27   |  #2  
Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Oca 2006

Koçum programda bir sürü hata var.C yi iyi bilmeden veri yapılarını öğrenemezsin.

1.En başa #include <stdio.h> ve #include <stdlib.h> kodlarını yerleştir.
2.yiginolustur() fonksiyonun yok.Onu oluşturman lazım.
3.Main fonksiyondaki şu kısmı  sil "struct yigin gir(),cik(),yiginolustur();".Bunun yerine Main fonksiyonun altında yer alan fonksiyonları yukarı yerleştir.Derleyici kodları yukarıdan aşağıya doğru okur Eğer bir A fonksiyonunu başka bir B fonksiyonundada kullanmışsan A nın B den önce derleyici tarafından okunması lazım.yani A nın B den önce yazılması lazım.
4.gir, cık, dolu, bos, ve yiginolustur fonksiyonlarının alacağı parametler ve geri döndüreceği parametreler arasındaki uygunluğa dikkat et.Senin dizin char tipinden veri taşıyacak, sen gir() fonksiyonuna int yolluyorsun olmaz öyle.Dikkat  et.

Sen bunları bir yap gerisine bakarız.Eğer odev falansa soyle çalışan kodu yollayayım.Ama öğrensen iyi olur.