Problemi soran kişi sondan 2. yerden başla dediği için o şekilde yaptım.

Visual Studio bu kodu çalıştırınca ne yapıyor biliyor musun? İlklendirmediğin değişkeni yazdırıyorsun diyor. Kaç kere dedim değişkenleri ilklendir diye. İlk değeri sıfır olmayan toplamı toplasan ne yazar? İlk değerlerini sıfır verip senin meşhur -48'ini silince düzgünce çalışıyor bence. C++ tavsiyeleri: = ile değişken tanımlama çünkü özellikle nesnelerde kopyalama yapıyor ve bunu çoğu zaman aslında istemiyorsun. Uniform initialization dediğimiz, " " ile atama bu yüzden geldi. Hem bir standart, hem de birçok karışıklığın önüne geçiyor. Döngü içinde değişken tanımlama çünkü döngüler scope'tur. Compiler muhtemelen onu her dönüşte silip tekrar oluşturmayacak kadar akıllıdır ama yazdığın kod öyle yapmasını söylüyor. . at kullanma diye demiştim. Bazı yerlerde sadece boşa endl kullanmışsın. Çıktıya bakınca onlarsız da gayet güzel bence. Bunlar benim tavsiyelerim. Uyup uymamak sana kalmış.

İlk 0 değerini verince düzeldi, tavsiyeleriniz için teşekkür ederim. Bu ilklendirmede dediğiniz aklıma gelse boşa zaman kaybetmezdim. Neyse, artık unutmam herhalde. Yine çok yardımcı oldunuz, teşekkürler.

Kodun tamamını at. car_number'ın ne olduğunu ben mi tahminedeceğim? Öncelikle o programı ben böyle yazardım. Duruma göre stringin tersini alman gerekebilir. Azaltmaktansa artırmayı tercih ederim. Sürprizbozan Kod:Panoya kopyala #include <iostream> #include <string> int main { std::string input ; auto result ; for (auto i ; i < input. size ; i += 2) result = 2; std::cout << "result: " << result << std::endl; return 0; } . at metodu okunurluğu zorlaştırıyor bence. Programında hata olmadığından emin isen kullanma. Index değerinden emin değilsen hata tespiti için kullanabilirsin. Tüm kodu görmeden bir şey diyemem. Ve bu kaçıncı söyleyişim. Kod paylaşırken yazım denetimi kullanma. Ya da kodu onu kullandıktan sonra ekle. Bir daha girintisi düzgün olmayan kod gördüğümde uğraşmayacağım. Bence bu kod çalışıyor. Sürprizbozan Kod:Panoya kopyala #include <iostream> #include <string> int main { std::string card_number ; int sum2 = 0; for (int j = card_number. size - 1; j >= 0; j -= 2) std::cout << std::endl; std::cout << "Sum2 = " << sum2 << std::endl; return 0; }

C++:Panoya kopyala for (int j = digits; j >= 0; j-=2) cout << endl; cout << "Sum2 = " << sum2 - 48 << endl; } Burada normalde - '0' olunca düzelmesini bekliyordum fakat - 48 yapmadan düzgün bir değer alamadım bunun sebebi nedir? @Vavien.