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