TheAny
Megapat
- Katılım
- 18 Aralık 2018
- Mesajlar
- 7.677
- Makaleler
- 13
- Çözümler
- 103
Ödev için program geliştiriyorum.
[CODE lang="c" title="C"]int sum_1d_array(int *sum, int array[]){
int temp = 0, i;
printf("Function started. \n");
for(i = 0; array != '\0'; i++) {
printf("%d | %d \n", array, temp);
temp = array + temp;
}
printf("Function ended. \n");
*sum = temp;
}[/CODE]
Fonksiyon bu. Bu fonksiyona girilen dizinin içerisindeki elementleri toplaması ve iletmesi gerekiyor. Fakat iletimi pointer kısmına girilmiş değişkene iletmesi gerekiyor. Yani
Bu fonksiyon *sum = temp; kısmına kadar düzgün çalışıyor. Aradaki yazdırma komutlarını da o yüzden verdim. Fakat ne zaman *sum = temp kısmına gelse, program end verip kapanıyor.
Ne yapabilirim?
[CODE lang="c" title="C"]void input_1d_array(int *array, int size){
int i;
for(i = 0; i < size; i++){
printf("Please enter value %d: ", i + 1);
scanf("%d", &array);
}
*array;
}[/CODE]
Yukarıdaki kod mesela istediğim şekilde çalışıyor. Ana fonksiyonun içine
[CODE lang="c" title="C"]input_1d_array(array, size);[/CODE] eklediğim zaman, dizinin içerisine belirlediğim miktarda (size) element ekliyor.
[CODE lang="c" title="C"]int sum_1d_array(int *sum, int array[]){
int temp = 0, i;
printf("Function started. \n");
for(i = 0; array != '\0'; i++) {
printf("%d | %d \n", array, temp);
temp = array + temp;
}
printf("Function ended. \n");
*sum = temp;
}[/CODE]
Fonksiyon bu. Bu fonksiyona girilen dizinin içerisindeki elementleri toplaması ve iletmesi gerekiyor. Fakat iletimi pointer kısmına girilmiş değişkene iletmesi gerekiyor. Yani
return sum;
ile printf("Sum is: %d \n", sum_1d_array(sum, array));
ile çıktı almaktansa printf("Sum is: %d \n", sum);
ile çıktı almak istiyorum. Bu yüzden return kullanmak işe yaramaz.Bu fonksiyon *sum = temp; kısmına kadar düzgün çalışıyor. Aradaki yazdırma komutlarını da o yüzden verdim. Fakat ne zaman *sum = temp kısmına gelse, program end verip kapanıyor.
Ne yapabilirim?
[CODE lang="c" title="C"]void input_1d_array(int *array, int size){
int i;
for(i = 0; i < size; i++){
printf("Please enter value %d: ", i + 1);
scanf("%d", &array);
}
*array;
}[/CODE]
Yukarıdaki kod mesela istediğim şekilde çalışıyor. Ana fonksiyonun içine
[CODE lang="c" title="C"]input_1d_array(array, size);[/CODE] eklediğim zaman, dizinin içerisine belirlediğim miktarda (size) element ekliyor.
Son düzenleme: