merhaba arkadaşlar
ben c++ öğrenmeye başladığımdan beri tutorialspoint learncpp gibi sitelere baktım ve sadece okumak istemedim biraz da soru çözerek alıştırma yapmak istemedim ama maalesef ilk soruyu çözemedim. yardım eder misiniz
daha yeni başladıysanız codewars ı tavsiye etmiyorum.Bilgileriniz algoritma kurmaya yetmeyebilir
Codewars gibi platformlar return edilen değere bakarak cevabın doğru olup olmadığına karar veriyorlar. Çünkü bazen bazı problemler birden fazla algoritma ile çözülebiliyor. Dolayısıyla her yazılan kodu okumak yerine(ki bu ne kadar doğru yapılabilir emin değilim), return edilen değere bakıyorlar. Yani a*b
ifadesini return edin.
haa tamam ama ne sonuç vermesi gerektiğini söylemiyor sadece hatayı düzelt diyor
tamam biraz daha gelişip sonra codewars oynarım. ama yinede cevabı merak ettim
Merhabalar,
Acemi iken şu kodu yazarak ilk bölümü geçmiştim :
int multiply(int a, int b)
{
a * b;
return a * b;
}
@ggns7’nin dediği ile benim yazdığım aynı şey.
Kolay gelsin.
Kodda hata yok. Sadece istenilen sonucu vermiyor, düzgün çalışmıyor. Test kısmında a
ve b
verilmiş ama çarpımları return edilmediği için kod ‘düzgün çalışmıyor’.
Hatadan kastınıza göre değişir. Koddaki fonksiyonun değer döndürmemesi Undefined Behavior’a sebep oluyor.
Kodun çalışmasını engelleyecek hatayı/ları kastediyordum.
Fonksiyondan dönen değer kullanılmıyorsa pek sorun olacağını sanmıyorum. Yine de bu senaryo dışında, büyük projelerde fonksiyondan döndürülen değerlere dikkat edilmesi gerektiğini düşünüyorum.
Referans öyle demiyor:
Flowing off the end of a value-returning function (except main) without a return statement is undefined behavior.
Edit: Evet, şimdi jetonum düştü
Siz undefined behavior’dan söz edince ben onun üzerinden ilerledim. Bu örnek için doğru, değer döndürülmemesi (undefined behavior) test case
’lerin (programın) çalışmasını engelliyor. Bu örnek dışında söylemek istediğim:
Ben de referansın böyle demediğini anlatmaya çalışıyorum. void
dönüş tipi olmayan bir fonksiyondan değer döndürmemek undefined behavior, dönüş değerinin kullanılıp kullanılmamasının önemi yok.
Nerde benim canım mainim , kankam using namespace ler, #include bro nerdesin ula yolunu gözlüyoruz yahu.
Kısaca meali:
Codewars dan pratik yapma, git https://www.hackerrank.com/ dan çalış. Öyle pratik sitesi mi olur?
Onların zaten yazıldığını varsayıyoruz.
tamam hackerranka bir bakarım