c programlama dilinde dosya okuma işlemi hatası
10 elemanlı bir dizideki ilk i elemanın toplamı, dizinin i'den sonraki elemanlarının toplamına eşitse i sayısını yazdıran programı yazınız. Örnek: 3 5 2 4 1 2 5 3 1 2 3+5+2+4 = 1+2+5+3+1+2 Cevap: 4 (indis 3)
soru bu şekilde fakat input dosyasından okumaya çalıştığımda olmuyor her şeyi denedim yapay zeka ile halletmeye çalıştım olmadı .sorun 2.döngüyü ne zaman açsam sorun orada başlıyor inputtaki dizinin elemanlarını olduğundan farklı yansıtıyor örneğin -18002032
yaptığım kod şu şekilde :
#include<stdio.h>
int main()
{
FILE *oku, *yaz;
oku = fopen("input.txt","r");
yaz = fopen("output.txt","w");
int dizi[30], n = 30, sayac = 0, i,j,toplam1=0,toplam2=0;
while(sayac < 1000)
{
for(i = 0; i < n; i++)
{
fscanf(oku,"%d", &dizi[i]);
int k=dizi[i] ;
toplam1=toplam1+k ;
for(j=i+1 ; j<10 ; j++)
{
int m=dizi[j] ;
toplam2=toplam2+m ;
}
if(toplam1==toplam2)
{
printf("%d",i) ;
}
else
{
toplam2=0 ;
}
}
sayac++;
}
fclose(oku);
fclose(yaz);
return 0;
}
bu şekilde fakat dediğim gibi şöyle yapsam yani ikinci döngüden inputtaki dizinin elemanlarını kontrol etsem dediğim gibi saçma sapan sayılar çıkıyor . ikinci döngüyü açtığım zaman oluyor . teyit etmek amaçlı yapıyorum bunu da . tek döngüden teyit edince diiznin elemanlarını yansıtıyorum sorun olmuyor ama ...
#include<stdio.h>
int main()
{
FILE *oku, *yaz;
oku = fopen("input.txt","r");
yaz = fopen("output.txt","w");
int dizi[30], n = 30, sayac = 0, i,j;
while(sayac < 2)
{
for(i = 0; i < n; i++)
{
fscanf(oku,"%d", &dizi[i]);
for(j=i+1 ; j<n ; j++)
{
printf("%d ",dizi[j]) ;
}
printf("\n") ;
}
sayac++;
}
fclose(oku);
fclose(yaz);
return 0;
}
Lütfen yardım ediniz çözemiyorum...
c programlama dilinde dosya okuma işlemi hatası
soru şu : 10 elemanlı bir dizideki ilk i elemanın toplamı, dizinin i'den sonraki elemanlarının toplamına eşitse i sayısını yazdıran programı yazınız. Örnek: 3 5 2 4 1 2 5 3 1 2 3+5+2+4 = 1+2+5+3+1+2 Cevap: 4 (indis 3)
input output dosyaları her şey ayarlanık outputtaki cevapları sildim ve kendim doğru yapmış mıyım diye kontrol etmek istedim fakat terminalde boş ekran çıkıyor . yazdığım kodda nerede hata yapıyorum lütfen yardımcı olur musunuz :
#include<stdio.h>
int main()
{
FILE *oku, *yaz;
oku = fopen("input.txt","r");
yaz = fopen("output.txt","w");
int dizi[30], n = 30, sayac = 0, i,j,k,m,toplam1=0,toplam2=0;
while(sayac < 1000)
{
for(i = 0; i < n; i++)
{
fscanf(oku,"%d", &dizi[i]);
k=dizi[i] ;
toplam1=toplam1+k ;
for( j=i+1 ; j<n ; j++)
{
m=dizi[j] ;
toplam2=toplam2+m ;
}
if(toplam1==toplam2)
{
fprintf(yaz,"%d\n",i+1); break ;
}
else
{
toplam2=0 ;
}
}
sayac++;
}
fclose(oku);
fclose(yaz);
return 0;
}
Son Giriş: geçen yıl
Son Mesaj Zamanı: geçen yıl
Mesaj Sayısı: 3
Gerçek Toplam Mesaj Sayısı: 3
İkinci El Bölümü Mesajları: 0
Konularının görüntülenme sayısı: 233 (Bu ay: 13)
Toplam aldığı artı oy sayısı: 0 (Bu hafta: 0)
En çok mesaj yazdığı forum bölümü: Teknik Yardım