Poprawność kodu.

0

Witam i pytam co jest nie tak w tym rozwiązaniu zadania?

Program ma sprawdzać ile jest liczb których suma cyfr jest większa od 20 oraz zawierają w liczbie jedności lub dziesiątek lub setek cyfrę 3.

{
                    int[] Setki = null; 
                    int[] Dziesiatki = null; 
                    int[] Jednosci = null;
                    int wynik = 0;
                    Setki = new int[10];  
                    Dziesiatki = new int[10]; 
                    Jednosci = new int[10];

                    for (int x = 1; x <= 9; x++)
                    {
                        Setki[x] = x;        
                    }

                    for (int a = 0; a <= 9; a++)    
                    {          
                        Dziesiatki[a] = a;     
                        Jednosci[a] = a;
                    }


                    for (int a = 1; a <= 9; a++)      
                    {
                        for (int b = 0; b <= 9; b++) 
                        {
                            for (int c = 0; c <= 9; c++) 
                            {
                                if ((( (Setki[a] + Dziesiatki[b] + Jednosci[c]) > 20 )) && ((Setki[a] == 3) || (Dziesiatki[b] == 3) || (Jednosci[c] == 3)))
                                {
                                    wynik++;     
                                    Console.WriteLine(wynik + " Liczba spełniająca warunki zadania: " + Setki[a].ToString() + Dziesiatki[b].ToString() + Jednosci[c].ToString());
                            }
                        }
                    }


                    Console.WriteLine("");
                    Console.WriteLine("Liczb których suma cyfr jest większa od 20 oraz zawierają w liczbie jedności lub dziesiątek lub setek cyfrę 3 jest: " + wynik);
                    
                    
                }
0

Wykładowca uznał że to jest przekombinowane i kolega dostał 0 pkt, bo on sobie to inaczej wyobrażał.

1

Po kiego ci te tablice?

                    int wynik=0;
                    for(int a=1;a<10;++a)      
                    {
                        for (int b=0;b<10;++b) 
                        {
                            for (int c=0;c<10;++c) 
                            {
                                if (((a+b+c)>20)&&((a==3)||(b==3)||(c== 3)))
                                {
                                    Console.WriteLine("" + (++wynik) + " Liczba spełniająca warunki zadania: "+a+b+c);
                                }
                            }
                        }
                    }
0

Faktycznie nie pomyślałem xD . Dzięki i do zamknięcia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1