#include <stdio.h>
#include <math.h>
#include <complex.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <conio.h>
int main()
{
int satir, sutun, x, y, rastgele;
srand(time(NULL));
for (satir = 1; satir <= 4; satir++)
{
rastgele = rand() % 16;
printf("\n%d ", rastgele);
for (sutun = 1; sutun < 4; sutun++)
printf("%d \t ", rastgele);
}
return 0;
}
Bunu nasıl yapabilirim peki? Kullanıcıdan 1-16 dahil aralığında değer istedim, fakat her bir satıra 4 tane 3 karakterlik yer kaplayan sayı nasıl koyabilirim?Tekrar yoksa sayılar rastgele değildir. Rastgele olan 16 sayının tamamı 0 olabilir. Çünkü ihtimal dahilindedir.
Madem sayılar tekrar etmeyecek, sayıların kendisini değil yerlerini rastgele olarak dağıtın.
Öncelikle teşekkürler fakat bir türlü başaramadım. Kafayı yemek üzereyim. Sorunun tamamı "Kullanıcıdan 1 den 16’ya kadar sayıları alıp bunları her satıra 4 sayı olmak üzere ve her sayı 3 karakterlik yer kaplayacak şekilde bastırınız. Sayılar karışık şekilde alınabilir." şeklinde fakat kullanıcıdan aldığımız değerleri nasıl tek tek sıralatacağım en ufak fikrim yok.3 karakter yer kaplaması için başına space koyacaksın. Sorgular ile 10'dan küçük mü, 100'den küçük mü diye kontrol ederek. Kullanıcı değer girdiğinde de 1 ile 16 arasında mı diye sorgu ile kontrol et.
Öncelikle teşekkürler fakat bir türlü başaramadım. Kafayı yemek üzereyim. Sorunun tamamı "Kullanıcıdan 1'den 16’ya kadar sayıları alıp bunları her satıra 4 sayı olmak üzere ve her sayı 3 karakterlik yer kaplayacak şekilde bastırınız. Sayılar karışık şekilde alınabilir." Şeklinde fakat kullanıcıdan aldığımız değerleri nasıl tek tek sıralatacağım en ufak fikrim yok.
Diziden kastınız "diziler" adlı konu başlığındaki gibi bir dizi mi? Çünkü öyleyse o konuya geçmediğimizden ötürü hoca muhtemelen kabul etmez. Gerçi anlatmadıkları şeyleri ödevde istiyorlar orası ayrı konu da...Bir dizide tutacaksın ve bu dizi iki eksenli olmalı. Döngü ile dizine yazdıracaksın. Yapamazsan söyle örnek kod atayım. Senin için başlangıç olsun.
Diziler kullanmadan yapmak mümkün ana mesajı şimdi okudum. Kullanıcıdan sayı almaktan bahsetmiyor orada rastgele üretmekten kastı da hocanın tam olarak yaptığın. Üç karakter olarak yazmak için bunu kullan yeterli bence.Diziden kastınız "diziler" adlı konu başlığındaki gibi bir dizi mi? Çünkü öyleyse o konuya geçmediğimizden ötürü hoca muhtemelen kabul etmez. Gerçi anlatmadıkları şeyleri ödevde istiyorlar orası ayrı konu da...
3 karakter yer kaplaması için başına space koyacaksın. Sorgular ile 10'dan küçük mü, 100'den küçük mü diye kontrol ederek.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand(time(NULL));
for (int row = 0; row < 4; row++){
for (int col = 0; col < 4; col++){
int random = rand() % 16;
if (random < 10){
printf(" %d", random);
} else if (random >= 10 && random <= 16){
printf(" %d", random);
}
}
printf("\n");
}
return 0;
}
Çok teşekkürler, bir şekilde farklı sayı yazdırmayı bulmamız gerekiyor. Hocaya mail attım geri dönüş bekliyorum, sizin dediklerinizi de "araştırmalarım" olarak bahsettim.Diziler kullanmadan yapmak mümkün ana mesajı şimdi okudum. Kullanıcıdan sayı almaktan bahsetmiyor orada rastgele üretmekten kastı da hocanın tam olarak yaptığın. Üç karakter olarak yazmak için bunu kullan yeterli bence.
Yazdığın kod doğru. Tekrarsız rastgele sayı oluşturmak için bu sayıları bir yerde tutup (diziler) orada var mı yok mu diye bakman lazım. O yüzden tekrarsız rastgele istenmez senden.
Biraz daha toparlarsak kodunu;
C:#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { srand(time(NULL)); for (int row = 0; row < 4; row++){ for (int col = 0; col < 4; col++){ int random = rand() % 16; if (random < 10){ printf(" %d", random); } else if (random >= 10 && random <= 16){ printf(" %d", random); } } printf("\n"); } return 0; }
Bu da örnek çıktı;
Eki Görüntüle 749289
Farklı sayıdan kastın program her çalıştığında farklı sonuç vermesi mi yoksa sonuçlar içinde aynı sayı olmaması mı?Çok teşekkürler, bir şekilde farklı sayı yazdırmayı bulmamız gerekiyor. Hocaya mail attım geri dönüş bekliyorum, sizin dediklerinizi de "araştırmalarım" olarak bahsettim.