C# hatası

ı love you

Hectopat
Katılım
27 Haziran 2020
Mesajlar
1.242
Çözümler
4
Yıldız koyduğum yerlerdeki hatayı nasıl çözerim?


C#:
int toplam, puan, dogruCevapSayisi, yanlısCevapSayisi = 0;

char devamMi;

do

{

Random random = new Random();

int sayi1 = random.Next(1, 101);

int sayi2 = random.Next(1, 101);

toplam = sayi1 + sayi2;

Console.WriteLine("Tutulan sayı 1:" + sayi1 + "\nTutulan sayı 2:" + sayi2);

Console.WriteLine("Sayıların Toplamı Kaçtır?");

int kullaniciToplam = Convert.ToInt32(Console.ReadLine());





if (kullaniciToplam == toplam)

{

*dogruCevapSayisi++;

*puan += 5;

Console.WriteLine("Cevap Doğru Tebrikler!");



}

else

{

yanlısCevapSayisi--;

puan -= 2;

Console.WriteLine("Üzgünüm Cevap Yanlış:(");

}

Console.WriteLine("Devam Etmek İster Misiniz 'e/E ?");

devamMi = char.Parse(Console.ReadLine());



} while (devamMi == 'e' || devamMi == 'E');



Console.WriteLine("Doğru Cevap Sayısı : {0}",dogruCevapSayisi);

Console.WriteLine("Yanlış Cevap Sayısı : {0}",yanlısCevapSayisi);

Console.WriteLine("Toplam Puan : {0}",puan);
 
Son düzenleme:
C# bilmiyorum ama karışık bir şey değil. Yapabilirim muhtemelen. Ama ortada elle tutulur bir şey olsa yapabilirdim, genel Syntax birçok dil ile aynı. Paylaştığın kodu, kod olarak göremiyorum. Öyle paylaşsan bile eksik.
Ne bu? main fonksiyonu mu? Başka bir şey mi? Daha o bile belli değil.

Aşağıdaki konuyu okuyup kodunuzun tamamını o şekilde paylaşın lütfen.

 
yanlısCevapSayisi = 0;
Burada Türkçe karakter kullanmışsınız. Hata 1.

Değişkenleri ilklendirmek iyi alışkanlıktır diye söylerim hep. Başta yapmamışsınız. Bu yüzden o "yıldızlı" olan değişkenleri artırmaya çalıştığınızda değerini vermediğiniz bir şeyi artırmaya çalıştığınız için derleyiciye göre hata veriyor. Bu 2.

Bu şekilde hatasız çalışıyor sanırım. Dediğim gibi C#'a hakim değilim.
E/e yerine sormaktansa girdiyi alıp küçük halini if ile kıyaslamanız daha kolay olur. İnsanlara hayır deme şansı da tanıyın.
Girdi alırken alt satıra geçmeyin. Hoş durmuyor.
SayilarD1n Toplami kactir? 96
şeklinde oluyor. Onun yerine; Sayilarin Toplami kactir?: 96 şekli daha uygun.
Tutulan sayıları yazdırırken de iki noktayı son ifadeye birleşik yazmak iyidir ama sonrasında boşluk bırakmak gerekir. Ve siz sonuna sayı koydugunuz için pek hoş durmuyor. Tutulan sayi 2:90 yerine 2. Tutulan sayi: 90 daha iyi.

C#'ın Türkçe karakter destekleyip desteklemediğini bilmiyorum ama kullanmamanız daha iyi. Kullanıyorsanız da onun kütüphanesi, bir ayarı vardır. Buraya yapıştırdığınızı kopyalayınca oldu o anlamsız şeyler.

Kod:
using System;
class HelloWorld
{
  static void Main ()
  {


    int toplam = 0;
    int puan = 0;
    int dogruCevapSayisi = 0;
    int yanlisCevapSayisi = 0;
    char devamMi;
 
    do
      {
    Random random = new Random ();
    int sayi1 = random.Next (1, 101);
    int sayi2 = random.Next (1, 101);
      toplam = sayi1 + sayi2;
      Console.WriteLine ("Tutulan sayi 1:" + sayi1 +
                 "\nTutulan sayi 2:" + sayi2);
      Console.WriteLine ("SayilarD1n Toplami kactir?");
    int kullaniciToplam = Convert.ToInt32(Console.ReadLine());

    if (kullaniciToplam == toplam){

        dogruCevapSayisi++;
        puan += 5;

        Console.WriteLine ("Cevap Dogru Tebrikler!");
    }
    else{
        yanlisCevapSayisi--;

        puan -= 2;

        Console.WriteLine (" Cevap :(");

      }

    Console.WriteLine ("Devam Etmek D0ster Misiniz 'e/E ?");

    devamMi = char.Parse(Console.ReadLine ());



      }
    while (devamMi == 'e' || devamMi == 'E');



    Console.WriteLine ("D Cevap sayisi : {0}", dogruCevapSayisi);

    Console.WriteLine ("Y Cevap sayisi : {0}", yanlisCevapSayisi);

    Console.WriteLine ("Toplam Puan : {0}", puan);

  }
}
 
Son düzenleme:
Son düzenleme:

Geri
Yukarı