C programlamada "makes pointer from integer without a cast" hatası

KOUsoftware

Hectopat
Katılım
1 Nisan 2020
Mesajlar
157
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
En son ekrana yazdırmıyor. Sıralamadan önce de denedim yine yazdırmıyor, sorun nedir nedir acaba?
 

Dosya Ekleri

  • 1.png
    1.png
    33,2 KB · Görüntüleme: 23
  • 2.png
    2.png
    75,1 KB · Görüntüleme: 22
  • 3.png
    3.png
    49,4 KB · Görüntüleme: 17
Son düzenleyen: Moderatör:
C:
#include <stdio.h>
#include <stdlib.h>

void duzenle(int a, int b,int d1[a], int d2[b], int d3[a+b]){   

    int i,j,temp;
    
    for(i=0;i<a;i++){
        d3[i]=d1[i];
    }
    for(i=0;i<b;i++){
        d3[a+i]=d2[i];
    }
    for(i=1;i<a+b;i++){
        for(j=0;j<a+b-1;j++){
            if(d3[j]>d3[j+1])
            {temp=d3[j];
            d3[j]=d3[j+1];
            d3[j+1]=temp;
            }
        }
    }
    for(i=0;i<a+b;i++){
        if(d3[i]!=d3[i+1])
        printf("%d ",d3[i]);
        
    }
}
int main() {
    
    int i,a,b,dizi1[a],dizi2[b],dizi3[a+b];
    
    printf("Ilk dizinin boyutunu giriniz ");
    scanf("%d",&a);
    if(a>3 && a<16) {
        
        for(i=0;i<a;i++){
            printf("%d. elemani giriniz ",i+1);   
            scanf("%d",&dizi1[i]);
          if(dizi1[i]<0 || dizi1[i]>100)
              printf("maks. 100 giriniz\n");
        
    }
    }
    else printf("4-15 araliginda bir sayi giriniz");
        
    if(a>3 && a<16){
        
    printf("Ikinci dizinin boyutunu giriniz ");
    scanf("%d",&b);
    
     if(b>3 && b<16 ){
    
        for(i=0;i<b;i++){
            printf("%d. elemani giriniz ",i+1);   
            scanf("%d",&dizi2[i]);
            if(dizi2[i]<0 || dizi2[i]>100)
                printf("maks. 100 giriniz\n");
      }
     }
    }
    duzenle(a,b,dizi1[a],dizi2[b],dizi3[a+b]);
    return 0;
}
 
Kod baştan hatalı.
C:
    int i,a,b,dizi1[a],dizi2[b],dizi3[a+b];
Burada scanf("%d",&dizi1[i]); programı nasıl çökertmedi ona şaşırıyorum. Çünkü dizi1, dizi2 ve dizi3 tanımsız değişken olan a ve b'nin sayısını almış.
 
Kod baştan hatalı.
C:
    int i,a,b,dizi1[a],dizi2[b],dizi3[a+b];
Burada scanf("%d",&dizi1[i]); programı nasıl çökertmedi ona şaşırıyorum. Çünkü dizi1, dizi2 ve dizi3 tanımsız değişken olan a ve b'nin sayısını almış.
C:
#include <stdio.h>
#include <stdlib.h>

void duzenle(int a, int b,int d1[], int d2[], int d3[]){

    int i,j,temp;
    d1[a];  d2[b]; d3[a+b];
    for(i=0;i<a;i++){
        d3[i]=d1[i];
    }
    for(i=0;i<b;i++){
        d3[a+i]=d2[i];
    }
    for(i=1;i<a+b;i++){
        for(j=0;j<a+b-1;j++){
            if(d3[j]>d3[j+1])
            {temp=d3[j];
            d3[j]=d3[j+1];
            d3[j+1]=temp;
            }
        }
    }
    for(i=0;i<a+b;i++){
        if(d3[i]!=d3[i+1])
        printf("%d ",d3[i]);
      
    }
}
int main() {
 
    int i,a,b, dizi1[a],dizi2[b],dizi3[a+b];
 
    printf("Ilk dizinin boyutunu giriniz ");
    scanf("%d",&a);
    if(a>3 && a<16) {
      
        for(i=0;i<a;i++){
            printf("%d. elemani giriniz ",i+1);
            scanf("%d",&dizi1[i]);
          if(dizi1[i]<0 || dizi1[i]>100)
              printf("maks. 100 giriniz\n");
    }
    }
    else printf("4-15 araliginda bir sayi giriniz");
          
    printf("Ikinci dizinin boyutunu giriniz ");
    scanf("%d",&b);
    
     if(b>3 && b<16 ){
 
        for(i=0;i<b;i++){
            printf("%d. elemani giriniz ",i+1);
            scanf("%d",&dizi2[i]);
            if(dizi2[i]<0 || dizi2[i]>100)
                printf("maks. 100 giriniz\n");
      }
    }
    duzenle(a,b,dizi1,dizi2,dizi3);
    
    return 0;
}
Bu haliyle uyarı vermeden çalışıyor. Fonksiyonu çağırırken [] kullanmamam gerekiyormuş.
 

Geri
Yukarı