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...