folder Tahribat.com Forumları
linefolder Programlamaya Giriş
linefolder C De Arg Passing Hatası [Yardım]



C De Arg Passing Hatası [Yardım]

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Guteritter
    Guteritter's avatar
    Kayıt Tarihi: 15/Haziran/2006
    Erkek

    [[[Tek boyutlu bir A dizisinin elemanlari sirasiyla 10, 12, -9, -6, 7, -5, 9, -8, 16 olarak verilmektedir. Asagidaki islevleri yerine getirecek bir anafonksiyon ve ve fonksiyondan olusan bir C programi yaziniz.

    Ana fonksiyonda, A dizisi tanimlanacak, ve dizi kupkoktoplami hesapla isimli fonksiyona gonderilecektir.

    kupkoktoplamihesapla isimli fonksiyonda, dizinin pozitif elemanlarinin kupkoklerinin toplami hesaplanacaktir.

    Programı yazarken pointer kullanmanız gerekmektedir.]]]

    şeklinde bişey istedin ben şöyle bişey yazdım:

     

    #include<stdio.h>
    #include<math.h>
    float kupkoktoplamihesapla(int *A[],int *eleman);
    int main(){
        int A[9]={10,12,-9,-6,7,-5,9,-8,16},el;
        el=9;
        printf("Dizideki pozitif sayilarin kup koklerinin toplami %f dir.\n",kupkoktoplamihesapla(&A,&el));
        return 0;
    }
    float kupkoktoplamihesapla (int *A[], int *eleman){
        int i;
        float sonuc=0;
        for(i=0;i<*eleman;i++){
                         if(*A[i]>0){
                                    sonuc=sonuc+pow(*A[i],1/3);
                                    }
                        }
                        return sonuc;
    }

     

     

    ama

     

    7  [Warning] passing arg 1 of `kupkoktoplamihesapla' from incompatible pointer type

     

    şeklinde bir hata veriyor işin içinden çıkamadım :(

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    Guteritter bunu yazdı:
    -----------------------------

    [[[Tek boyutlu bir A dizisinin elemanlari sirasiyla 10, 12, -9, -6, 7, -5, 9, -8, 16 olarak verilmektedir. Asagidaki islevleri yerine getirecek bir anafonksiyon ve ve fonksiyondan olusan bir C programi yaziniz.

    Ana fonksiyonda, A dizisi tanimlanacak, ve dizi kupkoktoplami hesapla isimli fonksiyona gonderilecektir.

    kupkoktoplamihesapla isimli fonksiyonda, dizinin pozitif elemanlarinin kupkoklerinin toplami hesaplanacaktir.

    Programı yazarken pointer kullanmanız gerekmektedir.]]]

    şeklinde bişey istedin ben şöyle bişey yazdım:

     

    #include
    #include
    float kupkoktoplamihesapla(int *A[],int *eleman);
    int main(){
        int A[9]={10,12,-9,-6,7,-5,9,-8,16},el;
        el=9;
        printf("Dizideki pozitif sayilarin kup koklerinin toplami %f dir.\n",kupkoktoplamihesapla(&A,&el));
        return 0;
    }
    float kupkoktoplamihesapla (int *A[], int *eleman){
        int i;
        float sonuc=0;
        for(i=0;i<*eleman;i++){
                         if(*A[i]>0){
                                    sonuc=sonuc+pow(*A[i],1/3);
                                    }
                        }
                        return sonuc;
    }

     

     

    ama

     

    7  [Warning] passing arg 1 of `kupkoktoplamihesapla' from incompatible pointer type

     

    şeklinde bir hata veriyor işin içinden çıkamadım :(


    -----------------------------

     

    Simdi pointerlar ve arrayler konusunu tekrar ele alman gerekli. Bastan calismani tavsiye ederim. Cunku bir arrayin sadece ismi poniterdir. Yani bir pointer alan fonksiyona A  yi direk yollayabilirsin veyahut A ismi arrayde ilk elemana point eder yani A[0]'a ozaman da, &A[0] yapip yollarsin. int *A[]  boyle bir parametre 2 katmanli pointer yani,  int **a,   gibi birsey olmus, cift boyutlu arrayleri yollamakta filan kullanilir genelde. Senin yapman gereken 

    float kupkoktoplamihesapla(int *A,int *eleman);

      diye tanimlayip

     

    int SomeArray[5];

    int someEleman;

     

    kupKokToplamiHesapla(SomeArray, &someEleman):  olarak cagirmak.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Guteritter
    Guteritter's avatar
    Kayıt Tarihi: 15/Haziran/2006
    Erkek

    dediğini yaptım abicim:

    #include<stdio.h>
    #include<math.h>
    float kupkoktoplamihesapla(int *A,int *eleman);
    int main(){
        int A[9]={10,12,-9,-6,7,-5,9,-8,16},el;
        el=9;
        printf("Dizideki pozitif sayilarin kup koklerinin toplami %f dir.\n",kupkoktoplamihesapla(A,&el));
        return 0;
    }
    float kupkoktoplamihesapla (int *A, int *eleman){
        int i;
        float sonuc=0;
        for(i=0;i<*eleman;i++){
                         if(*A[i]>0){
                                    sonuc=sonuc+pow(*A[i],1/3);
                                    }
                        }
                        return sonuc;
    }

    Ama bu seferde kupkoktoplamihesapla daki "if"li kısımda hata veriyor

     

    15       invalid type argument of `unary *'

    diyor :(

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    bilmece
    bilmece's avatar
    Kayıt Tarihi: 29/Aralık/2009
    Erkek

    böyle dene

    #include<stdio.h>
    #include<math.h>
    float kupkoktoplamihesapla(int *A,int *eleman);
    int main(){
    int A[9]={10,12,-9,-6,7,-5,9,-8,16},el;
    el=9;
    printf("Dizideki pozitif sayilarin kup koklerinin toplami %f dir.\n",kupkoktoplamihesapla(A,&el));
    return 0;
    }
    float kupkoktoplamihesapla (int *A, int *eleman){
    int i;
    float sonuc=0;
    for(i=0;i<*eleman;i++){
    if(A[i]>0){
    sonuc=sonuc+pow(A[i],1/3);
    }
    }
    return sonuc;
    }

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Guteritter
    Guteritter's avatar
    Kayıt Tarihi: 15/Haziran/2006
    Erkek

    Evet şimdi oldu.

    Gerçekten arrays ve pointer kısmını bir daha tekrar etmem gerek

    Spark ve bilmece;

    Teşekkür ettim

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Guteritter
    Guteritter's avatar
    Kayıt Tarihi: 15/Haziran/2006
    Erkek

    Derleyiciden derleniyo ama çıktıda printf dekini yazdırmıyor...

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    seretide
    seretide's avatar
    Kayıt Tarihi: 14/Haziran/2010
    Erkek

    printf den sonra getchar(); ekle


    Saçma
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    seretide
    seretide's avatar
    Kayıt Tarihi: 14/Haziran/2010
    Erkek

    ve pow o şekilde kullanılmıyo galiba 2.parametre int olmak zorunda yani hepsinde sayının 0. kuvvetini buluyo


    Saçma
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Guteritter
    Guteritter's avatar
    Kayıt Tarihi: 15/Haziran/2006
    Erkek

    #include<conio.h>

    system("PAUSE");

    kullanıyordum getchar() yerine ama system("PAUSE") yi yanlış yere yazmışım benim hatam

    Thx to everyone;

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Guteritter
    Guteritter's avatar
    Kayıt Tarihi: 15/Haziran/2006
    Erkek

    nasıl küpkok alacaz?

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Guteritter
    Guteritter's avatar
    Kayıt Tarihi: 15/Haziran/2006
    Erkek

    pow(A[i],(float)1/3) şeklindeymiş :P

Toplam Hit: 1700 Toplam Mesaj: 11