Çözüldü 1-1000 Arasında 10 Tane Rastgele Değerden En küçük Olanı Programa Yazdıran Kod

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Fıraan

Hectopat
Katılım
14 Eylül 2018
Mesajlar
155
Çözümler
1
Yer
Ankara/Mamak
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Merhaba vermiş olduğum kod 1-1000 arasında rastgele bir değer vermekte. Bunu 10 tane rastgele değer verecek şekilde ve 10 tane değerden en küçük olanı da ekrana yazdıracak şekilde nasıl yapabilirim?

[CODE title="C Dili"]#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

int main()
{

int rastgele;
srand(time(NULL));
rastgele=1+rand()%1000;

printf("%d",rastgele);
return 0;
getch();

}
[/CODE]
 
Son düzenleyen: Moderatör:
Çözüm
Kod:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define N 1000
#define M 10

int main() {
    srand(time(NULL));
    
    int arr[M] = { 0 };
    int min = N;
        
    for (int i = 0; i < M; ++i) {
        arr[i] = rand() % N + 1;
        
        if (arr[i] < min) {
            min = arr[i];
        }
        
        printf("%d. value: %d\n", i + 1, arr[i]);
    }
    
    printf("min value: %d\n", min);

    return 0;
}
rastgeleyi dizi yapabilirsiniz. şöyle
Kod:
int rastgeleDizi[10];
int enKucuk=9999;
for(int i = 0;i<10;i++)
{
    srand(time(NULL));
    rastgeleDizi[i] = 1+rand()+1000
    if(rastgeleDizi[i] < enKucuk)
    {
        enKucuk=rastgeleDizi[i];
    }
}
 
rastgeleyi dizi yapabilirsiniz. şöyle
Kod:
int rastgeleDizi[10];
int enKucuk=9999;
for(int i = 0;i<10;i++)
{
    srand(time(NULL));
    rastgeleDizi[i] = 1+rand()+1000
    if(rastgeleDizi[i] < enKucuk)
    {
        enKucuk=rastgeleDizi[i];
    }
}
Hocam saygılarımı sunarım. Kod için teşekkürler fakat bu diziler konusunu daha tam öğrenemedim. Kodu girdiğim vakit burada bir hata alıyorum if(rastgeleDizi < enKucuk).
 
C:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

int main()
{

int rastgele, temp = 1000;
srand(time(NULL));
    for(int i = 0; i < 10; i++)
    {
        rastgele=1+rand()%1000;
        if(rastgele < temp)
        {
            temp = rastgele;
        }
    }


printf("%d",temp);
return 0;
getch();

}
Dizileri öğrenmediğiniz için bu yöntem yardımcı olacaktır. Temp adında bir geçici değişken tanımladım ve bunu oluşabilecek en yüksek değer olan 1000´e eşitledim ki 10 veya 100 gibi değerler yaparsak "500,501,502,503,504,505,506,507,508,509" diye sayılar çıkarsa en küçük değer 100 veya 10 olarak gözükmesin.
 
Dizilere çalışmalısınız. Anlamadığınız yerleri sorabilirsiniz.

Kod:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define N 1000
#define M 10

int main() {
    srand(time(NULL));
    
    int arr[M] = { 0 };
    int min = N;
        
    for (int i = 0; i < M; ++i) {
        arr[i] = rand() % N + 1;
        
        if (arr[i] < min) {
            min = arr[i];
        }
    }
    
    printf("min value: %d\n", min);

    return 0;
}
 
C:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

int main()
{

int rastgele, temp = 1000;
srand(time(NULL));
    for(int i = 0; i < 10; i++)
    {
        rastgele=1+rand()%1000;
        if(rastgele < temp)
        {
            temp = rastgele;
        }
    }


printf("%d",temp);
return 0;
getch();

}
Dizileri öğrenmediğiniz için bu yöntem yardımcı olacaktır. Temp adında bir geçici değişken tanımladım ve bunu oluşabilecek en yüksek değer olan 1000´e eşitledim ki 10 veya 100 gibi değerler yaparsak "500,501,502,503,504,505,506,507,508,509" diye sayılar çıkarsa en küçük değer 100 veya 10 olarak gözükmesin.
Cevap için teşekkür ederim. 10 adet değeri de ekrana yazdırmam gerekiyor. Kendi kodumda da becerememiştim.
 
Cevap için teşekkür ederim. 10 adet değeri de ekrana yazdırmam gerekiyor. Kendi kodumda da becerememiştim.
Dizileri kesin olarak kullanmayacaksanız şöyle yapacaksınız;

C:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

int main()
{

int rastgele, temp = 1000;
srand(time(NULL));
    for(int i = 0; i < 10; i++)
    {
        rastgele=1+rand()%1000;
        printf("%d ", rastgele)
        if(rastgele < temp)
        {
            temp = rastgele;
        }
    }


printf("En kucuk deger: %d",temp);
return 0;
getch();

}
Fakat bunu en verimli şekilde dizilerle yapabilirsiniz. Çünkü bu 10 değere toplu olarak tekrar erişme şansınız olmayacak. En küçük değere "temp" üzerinden ve son oluşturulan sayıya da "rastgele" üzerinden erişebilirsiniz fakat diğer 8 değer yazdırıldıktan sonra yok olacak.
 
Kod:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define N 1000
#define M 10

int main() {
    srand(time(NULL));
    
    int arr[M] = { 0 };
    int min = N;
        
    for (int i = 0; i < M; ++i) {
        arr[i] = rand() % N + 1;
        
        if (arr[i] < min) {
            min = arr[i];
        }
        
        printf("%d. value: %d\n", i + 1, arr[i]);
    }
    
    printf("min value: %d\n", min);

    return 0;
}
 
Çözüm
Kod:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define N 1000
#define M 10

int main() {
    srand(time(NULL));
   
    int arr[M] = { 0 };
    int min = N;
       
    for (int i = 0; i < M; ++i) {
        arr[i] = rand() % N + 1;
       
        if (arr[i] < min) {
            min = arr[i];
        }
       
        printf("%d. value: %d\n", i + 1, arr[i]);
    }
   
    printf("min value: %d\n", min);

    return 0;
}
Kapsamlı bir şekilde çalışacağım dizilere. Teşekkür ederim.
Dizileri kesin olarak kullanmayacaksanız şöyle yapacaksınız;

C:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

int main()
{

int rastgele, temp = 1000;
srand(time(NULL));
    for(int i = 0; i < 10; i++)
    {
        rastgele=1+rand()%1000;
        printf("%d ", rastgele)
        if(rastgele < temp)
        {
            temp = rastgele;
        }
    }


printf("En kucuk deger: %d",temp);
return 0;
getch();

}
Fakat bunu en verimli şekilde dizilerle yapabilirsiniz. Çünkü bu 10 değere tekrar erişme şansınız olmayacak. En küçük değere "temp" üzerinden ve son oluşturulan sayıya da "rastgele" üzerinden erişebilirsiniz fakat diğer 8 değer yazdırıldıktan sonra yok olacak.
Yardımlarınız için teşekkür ederim. Diziler konusunda başarılı olamazsam kullanacağım.
 
Cevap için teşekkür ederim. 10 adet değeri de ekrana yazdırmam gerekiyor. Kendi kodumda da becerememiştim.
For döngüsünün içinde dizilerin ninci elemanını her seferinde bastırarak bunu çözebilirsiniz.
Diziler aynı tip değişkenler topluluğudur. 0 dan başlarlar. Yani 10 elemanlı bir dizinin indisleri(elemanlara ulaşmak için kullandığımız elemanlar) 0,1,2,3,4,5,6,7,8,9 dur. Örneğin diziler[3] diziler 4. elemanı geri döndürür. Bu şekilde aynı tip değişkenler için tekrar tekrar değişken yaratmak yerine dizi kullanabiliriz. Kıyaslarken sıkıntı yaşıyor olmanızın sebebi siz bütün dizi ile bir sayıyı kıyaslamışsınız o dizide. rastgeleDizi < enKucuk yaparsanız yapabilirsiniz. Aksi taktirde dizinin adı adresini belli eder ( ramde tutulduğu yeri) bu kıyaslama da bir tam sayı ile kıyaslarken anlamsız olacağı için hata verir.
 

Yeni konular

Geri
Yukarı