C ile rastgele sayı yazdırma

KOrsanBoY

Kilopat
Katılım
1 Mayıs 2017
Mesajlar
20
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar alttaki kodda rastgele sayılar yazdırması gereken yeri seçince sadece 1 değeri yazıyor. Nasıl rastgele sayı yazdırabiliriz?

C:
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int randomArrayGenerator (int length);


int main(){

  setlocale(LC_ALL, "Turkish");


char choice;
int length;

    printf("Lütfen dizinin uzunluğunu giriniz: \n");
        scanf("%d",&length);

int array[length]={0};

    printf("Diziyi kendiniz tanımlamak istiyorsanız 'm' Rastgele oluşturulmasını istiyorsanız 'r' giriniz : \n");
        scanf(" %c",&choice);



if(choice == 'm' || choice == 'M'){

        for(int i=0;i<length;i++){

            printf("%d -- ",i+1);
                scanf("%d",&array[I]);
        }

}else if(choice == 'r' ||choice == 'R'){

for(int x=0;x<length;x++){

array[x]=randomArrayGenerator(array[x]);

}

}

printf("--------------------------------------------------\n");

    printf("Diziyi tersten yazdırmak için 'T' normal yazdırmak için 'N' giriniz : \n");
        scanf(" %c",&choice);

if(choice == 't' ||  choice == 'T'){

        for(int j = length-1;j>=0;j--){

            printf("%d -- %d \n",j,array[j]);

        }

}else if(choice == 'n' || choice == 'N'){

        for(int k=0;k<length;k++){

            printf("%d -- %d \n",k+1,array[k]);

        }

}

    return 0;
}

int randomArrayGenerator(int length){

    srand(time(NULL));
int array[length];

    for(int a=0;a<length;a++){

        array[a] = rand() % 100+1;

    }
        return array[length];
}[/I]
 
Son düzenleyen: Moderatör:
scanf("%d",&length);
int array[length]={0};

Bu şekilde dizinin boyutunu tanımlayamazsın, bu gcc extension'udur C dilinde bu tarz bir kullanım yok. Ya dynamic memory allocation ile dizinin boyutunu belirlersin ya da manuel olarak int array[512] yazarsın.
 

Technopat Haberler

Geri
Yukarı