C# örneklerimize diziler konusundaki uygulamalar ile devem ediyoruz yapacağımız dizi örneğinde kullanıcının girmiş olduğu dizi elemanlarından hangisinin kaç defa tekrar edildiğini bulan programı yapıyoruz kod aralarında açıklamalar mevcut.
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int n,sayac=0,i,j,k,l; Console.WriteLine("Dizinin Eleman Sayısını Girin"); n=Int16.Parse(Console.ReadLine()); int[] dizi=new int[n]; Console.WriteLine("Dizinin Elemanlarını Sırayla Girin"); for (i=0;i<n;i++) { dizi[i] = Int16.Parse(Console.ReadLine()); //diziye değerleri aldık www.bilisimogretmeni.com } //ilk iki for dizideki elemanların eşit olup olmadığını öğrenmek için dönüyor, mesela dizi[3]=1 ve dizi[7]=1 for( j=0;j<n;j++) { for( k=0;k<n;k++) { //eğer tekrar eden değer bulunursa if'in içindeki kod çalışıyor www.bilisimogretmeni.com if(dizi[j]==dizi[k]) { //bu for da, dizinin bütün değerleri için ekranda yazdırmanın önüne geçmek için. //örneğin 2 üç kez tekrar ediyor olabilir ama ekranda sadece bir tane 2nin üç kez girildiğini görmemiz lazım aksi takdirde ekranda kaç kez girildiyse o kadar yazdırıyor. www.bilisimogretmeni.com for( l=0;l<j;l++) { //eğer değerin kaç kez girildiğini önceden yazdırmışsam bunu tekrar yazdırmama gerek yok if(dizi[l]==dizi[j]) //sayacı -1'e eşitliyorum çünkü sonrasında 1 artıracak 0 olacak ve en son ekrana yazdırırken sayaç 0 değilse yazdıracak www.bilisimogretmeni.com sayac=-1; } sayac++; } } if (sayac != 0) Console.WriteLine(dizi[j] + " sayısı " + sayac + " kez tekrar edildi"); sayac=0; } Console.ReadKey(); } } }
Dizide 3 tane yada daha fazla tekrar eden olduğunda yanlış sonuçlar çıkıyor.
https://dotnetfiddle.net/EAb3dc bir problem yok gibi şimdi denedim