c#da iç içe for da mantık hatası

mhmtknk
29-07-2015, 08:18   |  #1  
mhmtknk avatarı
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Tem 2015

Merhaba arkadaşlar c# da yeni sayılırım ve ufak programcıklar yazmaya çalışıyorum. yazmaya çalıştıgım kodlarda şimdilik kullanıcıdan ders sayısını alıp bu sayı kadar ders adı ve not soruyor ve ekrana basıyor. bunda sıkıntı yok taki sınav sayısınıda döngüye dahil edinciye kadar kod hata vermiyor ama çalışmıyorda.

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

namespace not
{
    class not
    {
        static void Main(string[] args)
        {
            /*int[] notlar = new int[3];
            for (int i = 0; i < 3; i++)
            {
                Console.Write((i + 1) + " . sınav notunu gir : ");
                notlar = Convert.ToInt16(Console.ReadLine());
            }*/
            Console.WriteLine("Ders Sayısını gir:");
            int a = Convert.ToInt32(Console.ReadLine());
            int b = 0;
            int[] notlar = new int;
            string[] dersler = new string;
            

            for (int i = 0; i < a; i++)
            {
                Console.WriteLine((i + 1) + ". Dersin adı:");
                dersler = Console.ReadLine();
                Console.Write("Sınav Sayısı:");
                b = Convert.ToInt32(Console.ReadLine());
                for (int j = 0; j < b; j++)
                {
                    
                    Console.WriteLine((j+1)+" Notlar:");
                    notlar[j] = Convert.ToInt32(Console.ReadLine());
                }


            }
            Console.WriteLine("Dersler:\tNotlar:");
            for (int i = 0; i < dersler.Length; i++)
            {
                Console.WriteLine("{0}\t\t:{1}", dersler, notlar);
                for (int j = 0; j < notlar.Length; j++)
                {
                    Console.WriteLine("{0}\t\t:{1}", dersler, notlar[j]);
                }

            }


            Console.ReadKey();


        }
    }
}

Yazilim_Uzmani
26-08-2015, 00:30   |  #2  
Taze Üye
Teşekkür Sayısı: 1
8 mesaj
Kayıt Tarihi:Kayıt: Ağu 2015

Bu kadar for döngüsünü iç içe kullanacağına foreach döngüsü ile rahatlıkla yapabilirdin..

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

namespace ConsoleApplication49
{
    class Program
    {
      
        static void Main(string[] args)
        {
             int girilen_ders_sayisi = 0;
             ArrayList Ders_Adi = new ArrayList();
             ArrayList Ders_Notu = new ArrayList();

            Console.WriteLine("Ders sayısını girin : ");
            girilen_ders_sayisi = int.Parse(Console.ReadLine());

            for (int i = 1; i <= girilen_ders_sayisi; i++)
            {
                Console.WriteLine(i.ToString() + ". Ders Adını Girin : ");
                Ders_Adi.Add(Console.ReadLine());
               
            }
            for (int a = 1; a <= girilen_ders_sayisi; a++)
            {
                Console.WriteLine(a.ToString() + ".Ders Notunu Girin : ");
                Ders_Notu.Add(int.Parse(Console.ReadLine()));
            }
                foreach (string ders_adlari in Ders_Adi)
                {
                    Console.WriteLine("Girdiğiniz Ders Adları : " + ders_adlari);
                }

                foreach (int ders_notları in Ders_Notu)
                {

                    Console.WriteLine("Girdiğiniz Ders Notları : " + ders_notları.ToString());
                  
                }
                Console.ReadKey();
               
        }
    }
}