bu sorunun cevabını arıyorum yardımcı olurmusunuz.ekledıklerınız arasında var gozukuyor. Bir odada bulunan kişi sayısına göre, odadaki herhangi iki kişinin doğum günlerinin aynı olma ihtimali aşağıdaki gibi hesaplanır: N = odadaki kişi sayısı olmak üzere Olasılık =1-(365/366)*(364/366)*(363/366)*.....*(366-N+1)/366 Klavyeden girilen kişi sayısına göre olasılığı hesaplayıp ekrana yazdıran bir C programı geliştiriniz |
10-15 sene daha beklerseniz belki koyar. O zaman bir daha sorun. |
siz cevaplarmısınız o zaman . |
Sağlamasını yapmadım ama doğru sonuçtur umarım. 99 dan fazla kişi varsa olasılık 1 oluyordu o yüzden eğer sayi 99 dan büyükse hiç hesaplamadan cevabı yazıyor.
|
Arkadaşlar bahsedilen kısım yukarıda var. Konu bütünlüğünün bozulmaması açısından ilk yazılan 5-6 mesajı düzeltme amaçlı olarak kendime ayırmıştım. Yeteri kadar ilgi olmadığını görünce bu kısımda paylaşım yapmayı bırakmıştım. Ama yavaş yavaş hareketlendirebiliriz isterseniz. |
program için çok tesekür ederim . eğer 99 dan büyük girerse kullanıcı bunun için düşündüğünüz baska bir algoritma yapısı war mı? |
Klavyeden sıfır (0) girilene kadar okunan her sayısının tersini ekrana yazan bir C programı geliştiriniz. NOT: Girilen sayıların basamak sayıları farklı olabilir! İç-içe döngü kullanmak zorunludur! Örnek Çıktı: Bir sayı giriniz (Çıkmak için 0 giriniz): 172 Sayının tersi = 271 Bir sayı giriniz (Çıkmak için 0 giriniz): 6721 Sayının tersi = 1276 Bir sayı giriniz (Çıkmak için 0 giriniz): -83 Sayının tersi = -38 Bir sayı giriniz (Çıkmak için 0 giriniz): 0 Program sonlandı! bu program hakkında da bana yardım edebilir misiniz ? |
hocam yavas yavas hareketlendirebiliriz demissiniz yardımcı olursanız sevinirim .. |
|
hocam siz bunu sanırım c++ ile yazmıssınız ben çok fazla bilmiyorum daha c diline yeni basladım .bu programı c dili ile yazmam mümkün mü .orada bazı terimlerin c dilindeki karsılıklarına baktım çalıştırmayı denedim ama olmuyo .bu konuda bana bir yol gösterebilir misiniz ? |
cout << "Lutfen bir sayi giriniz: "; cin >> sayi yerine print("Lütfen bir sayi giriniz"); scanf("%d", &sayi); yeterli olur tabi baş tarafa include <stdio.h> vb. eklemen gerekiyor. birde sonda return EXIT_SUCCESS; bunun yerine return 0; yazman gerekiyor. EXIT_SUCCESS c de yoktu herhalde. çoktandır c/c++ da kod yazmıyorum. biraz unutmuşum. |
tesekür ederim dediğiniz gibi yazdım program çalışıyor ama sayıların tersini vermiyor tekrar kullanıcıdan sayı istiyor.. genede ilginizden dolayı tekrar tesekür ederim .. |
alttaki cout kısmını da printf ile yazdırman gerekiyor belki onu düzeltmemişsindir yani cout << "Sayının tersi: " << sayininTersi << endl; yerine printf("Sayinin tersi: %d", sayininTersi); şeklinde yazdırman gerekiyor. sorularda C kullanacaksan en azından printf ve scanf fonksiyonlarının kullanımını öğrenmen gerekiyor. C++ da %d, %f gibi kullanımlar gerekmediğinden daha kolay olur diye kullandım. |
#include <stdio.h> int main( ) { int sayi; while (1) { printf( "Lutfen bir sayi giriniz:"); scanf("%d",&sayi); if (sayi == 0) break; int sayininTersi = 0; while (sayi != 0) { if (sayininTersi != 0) sayininTersi *= 10; sayininTersi += sayi % 10; sayi /= 10; } if (sayi < 0) sayininTersi *= -1; printf( "Sayının tersi: ",sayininTersi); } system("PAUSE"); return 0; } bu şekilde yazdım programda sorun yok çalışıyor ama tersini vermiyor .sürekli kullanıcıdan sayi istiyor . |
printf( "Sayının tersi: %d \n", sayininTersi); printf de %d kısmını unutmuşsun birde \n koyduğun zaman bir alt satıra geçirir. program çıktısını daha rahat okuyabilirsin |
oleyyy çalıstıı ![]() |
Bu sayının tersini yazma mantığı nasıl oluyor. ?Pythonda yapmayı deniyecem . |
örneğin elimide 123 sayısı var bu sayının 10 göre modunu alırsan 3 ü elde edersin. sonrasında bu sayıyı 10'a bölersen elinde 12 sayısı kalır. aynı şekilde bununda 10' a göre modunu alırsan 2 yi elde edersin ve sonrada aynı şekilde 1 i elde edersin. sırası ile elinde 3 2 ve 1 numaraları var. sayının tersi ilk başta 0 olmalı her ekleyeceğn numara sayının değerini hem kendi değeri kadar arttırır sonrasında da 10 katına çıkarır. (bu arada if (sayininTersi != 0) kısmı fazla olmuş gibi görünüyor yazdığım kodda :)) ) sayinin tersi:0 3 elde edildi 0*10 = 0, 0+3=3 sayinin tersi:3 2 elde edildi 3*10 = 30, 30+2=32 sayinin tersi: 32 1 elde edildi 32*10=320, 320+1=321 sayini tersi: 321 |
Hocam oldukça amatörüm ![]() if (sayi == 0) break; int sayininTersi = 0; while (sayi != 0) { if (sayininTersi != 0) sayininTersi *= 10; sayininTersi += sayi % 10; sayi /= 10; } if (sayi < 0) sayininTersi *= -1; Kodların yanına # ile açıklama yaparsanız sevinirim. |
Bu mesaja 2 cevap geldi. Cevapları Gizle