[Çözüldü] Hata Nerede (C#)

Başlatan harunbas141, 04 Ekim 2016 - 23:06:05

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

harunbas141


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Odev1
{
    class Program
    {
        public static double ters_toplam(int m, int n);
        {
            int m, n,toplam,i;
            for(i=m; i<n; i++)
            {
                if(int==0) continue;
                toplam=toplam + (1/i);
            }
               
        }
        static void Main(string[] args)
        {
    int m, n;
    Console.WriteLine("Bir Değer Giriniz: ");
    m = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("Bir Değer Giriniz: ");
    n = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine(ters_toplam);
    Console.ReadLine();
        }
    }
}


hatalarımı anlayamadım. bilen arkadaşlar yardımcı olursa sevinirim.

ekremsenturk

Aldığın hata bildiriminide eklersen, belki bir fikir edinebiliriz.

Muhtemelenpublic static double ters_toplam(int m, int n);buradaki "int n" lerden birisini "int m" veya "int c" veya başka bir şey yaparsan, sorun giderilir.

barış

Alıntı yapılan: harunbas141Kod: [Seç]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Odev1
{
    class Program
    {
        public static double ters_toplam(int m, int n);
        {
            int m, n,toplam,i;
            for(i=m; i<n; i++)
            {
                if(int==0) continue;
                toplam=toplam + (1/i);
            }
               
        }
        static void Main(string[] args)
        {
    int m, n;
    Console.WriteLine("Bir Değer Giriniz: ");
    m = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("Bir Değer Giriniz: ");
    n = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine(ters_toplam);
    Console.ReadLine();
        }
    }
}

hatalarımı anlayamadım. bilen arkadaşlar yardımcı olursa sevinirim.
Aldığın hatayı da paylaşmalısın.
Ayrıca if(int==0) yazmışsın da, int bir tip. :)

harunbas141


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace uygulama
{   
        class Program
    {
        public static double TersToplam(int m, int n)
        {
            double i, tp = 0;
            for(i=m;i<=n;i++)
            {
                if (i == 0) continue;
                tp = tp + (1 / i);
            }
            return tp;
        }
static void Main(string[] args)
        {
            int m, n;
            Console.WriteLine("Bir değer giriniz: ");
            m = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Bir değer giriniz: ");
            n = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Ters Toplam: " + TersToplam(m, n));
            Console.ReadLine();
}
}
}





Kusura bakmayın. Hatalarımı çözdüm.

bugra9

#4
Eğer sorduğun soruyu silersen aynı duruma düşmüş başkaları faydalanamaz ki bu da forumun mantığına ters. Sorunu çözdüğünde yeni bir iletiyle çözümü yazarsan bilgi kalıcı olmuş olur.

Çözümüne bakınca i değerinin sadece tam sayı olabileceği görülüyor. i değişkenini double değil de int olarak tanımlarsan daha doğru olur. Tabi bunu yaparsan (1 / i) yazan yeri (1.0 / i) şeklinde değiştirmelisin çünkü C# iki tam sayı ile yapılan işlemin sonucunun her zaman tam sayı olacağını düşünüyor.

harunbas141

sorunun cevabını koydum zaten.

bugra9

Çok özür dilerim, konuları karıştırmışım. İlk iletindeki soruyu silip çözümü yazdın sandım, nasıl böyle bir kanıya vardım anlamış değilim.

Konu etiketlendiği için konuyu kilitleyelim.