LÜTFEN YARDIM NEREDE HATA YAPIYORUM=(

onurator
15-06-2009, 19:21   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
5 mesaj
Kayıt Tarihi:Kayıt: Haz 2009

arkadaşlar giriş seviyesinde bir kullanıcıyım.. sınavda da çıkacak olan bir ödev sorusuna 2 gündür çok fazla kafa yordum.. baya bir aşama kaydettim ancak tam puan alabilmem için birkaç sorunu daha halletmem gerek.. bu noktada yardımınıza ihtiyacım var..

ödev sorusu = bir dosyaya alt alta 4 öğrencinin adını ve soyadını yazın.. dosyayı program açsın öğrencilerin karşılarına rand () fonksiyonu ile notlarını atasın ..ekranda öğrencileri ve notları göstersin.. 60 ve üzeri alanları gecenler dosyasına altında alanları kalanlar dosyasına kaydetsin..

hazırladığım yanıt şu:
[code]

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


int main()
{
    FILE *f,*h,*g;
    char k[4],ad[3][15],soyad[3][15];
    int i;
   
    for (i=0;i<4;i++)
      k=rand()%100;
   
    if((f=fopen("o.txt","r+"))== NULL){
    printf("dosya acilamiyor\n");
    getch();
    exit(0);
}
fseek(f,0,0);
for (i=0;i<4;i++)
{ fscanf(f,"%s %s",ad,soyad);
  fprintf(f,"%d", k);
  fprintf(stdout,"%s %s %d\n",ad, soyad, k);
}
fclose(f);

if((h=fopen("kalanlar.txt","w"))== NULL){
    printf("dosya acilamiyor\n");
    getch();
    exit(0);
}
if((g=fopen("gecenler.txt","w"))== NULL){
    printf("dosya acilamiyor\n");
    getch();
    exit(0);
}

for(i=0;i<4;i++)
  if (k>=60)
  {fprintf(g,"%s %s\n", ad,soyad);}
  
  else
  {fprintf(h,"%s %s\n", ad,soyad);}


   getch();
}

[/code]

bu kodlarla istenilen olayı kısmen yerine getirebiliyorum.problemlerim şunlar=

1.rand() ile atadığım kodlar o.text isimli öğrencilerin bulunduğu dosyaya yazdırılmıyor. oysa ben bu iş için fprintf(f,"%d", k); komutunu atamıştım..

2.ekrana yazılan isimlerden ilk isim tamamen doğru diğerleri ise baş harfleri eksik yazılıyor dosyaya da isimler bu şekilde yazırılıyor.. bazen isimler yanlış dosyaya yazılıyor

kısacası birşeyler yaptım ama bu problemler bana kafayı yedirtti yardımcı olursanız çok sevinirm...

onurator
15-06-2009, 20:28   |  #2  
OP Taze Üye
Teşekkür Sayısı: 0
5 mesaj
Kayıt Tarihi:Kayıt: Haz 2009

ilk boyutu 4 öğrenci için ikinci boyutu fonksiyonlarda kullandığım dosyadan taranılan karakter dizisi için kullanmıştım sanırım gereksiz..

onurator
15-06-2009, 21:57   |  #3  
OP Taze Üye
Teşekkür Sayısı: 0
5 mesaj
Kayıt Tarihi:Kayıt: Haz 2009

ilginiz için teşekkürler .. evet notepad ile hazırladım..

ali can
mehmet isik
.
.
.

şeklinde dört isim yazdım

dikkatimi çeken başka birşey rand() un sürekli aynı değerleri ataması.. ve kişileri yanlış dosyalara gruplaması=S


onurator
15-06-2009, 22:09   |  #4  
OP Taze Üye
Teşekkür Sayısı: 0
5 mesaj
Kayıt Tarihi:Kayıt: Haz 2009

teşekkürler dediğiniz gbi yaptım ama malesef yine kişileri yanlış dosyalara yazıyor ve 0.txt in içine atanan notları yazdırmıyor=(

onurator
16-06-2009, 01:36   |  #5  
OP Taze Üye
Teşekkür Sayısı: 0
5 mesaj
Kayıt Tarihi:Kayıt: Haz 2009

peki çooook teşekkür ederim yardımınız için :)