Jak skorzystać z wszystkich metod

0

Hej,
kolejne pytanie ode mnie.
Chciałbym aby mój program sprawdzał, czy podana liczba jest podzielna przez 7 i 3, lub czy jest podzielna przez 7 i niepodzielna przez 6 oraz
podzielna przez 7 lub przez 11.

Mój kod:

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

namespace CzyPodzielne
{
    class Program
    {
         static bool Sprawdz1(int a)
        {
            if ((a % 7 == 0) && (a % 3 == 0))
            {
                Console.WriteLine("Liczba jest podzielna przez 7 i 3");
                return true;
            }
            else
                return false;
         }
         static bool Sprawdz2(int a)
         {
             if ((a % 7 == 0) && (a % 6 != 0))
             {
                 Console.WriteLine("Liczba jest podzielna przez 7 i nie jest podzielna przez 6");
                 return true;
             }
             else
                 return false;
         }
        static bool Sprawdz3(int a)
        {
            if ((a % 7 == 0) || (a % 11 == 0))
            {
                Console.WriteLine("Liczba jest podzielna przez 7 lub przez 11");
                return true;
            }
            else
                return false;


        }

        static void Main(string[] args)
        {
            Console.WriteLine("Podaj liczbe ");
            try 
	{
        Sprawdz1(Convert.ToInt32(Console.ReadLine()));
        Sprawdz2(Convert.ToInt32(Console.ReadLine()));
        Sprawdz3(Convert.ToInt32(Console.ReadLine()));


	}
	catch (Exception)
	{

        Console.WriteLine("Wystąpił błąd");
	}
            Console.ReadLine();


        }
    }
}
 

Muszą to być 3 metody oddzielne ( nie wnikając w sens polecenia).
Chciałbym aby program działał następująco: wprowadzamy liczbę, np.21
i funkcja main wywołuje po kolei metode sprawdz1, sprawdz2, sprawdz3.
Jednak tak sie nie dzieje. Mam wrażenie, że wywołuje tylko metode sprawdz1 i tyle.
Ktoś coś? ;)

0

zamiast wczytania jednej liczby wczytujesz 3 liczby. Wczytaj liczbe i zapisz sobie ja do zmiennej
Nie sprawdzasz wyniku tej operacji bo zwracasz true/false ale nic z tym nie robisz, nigdzie tego nie zapisujesz nigdzie tego nie wyswietlasz

Wywolujesz te 3 rozne funkcje, ale co z tego skoro tak jak wspomnialem wczesniej nic z tym nie robisz

0

Prawie masz rację. Twój program wczytuje z klawiatury jedną liczbę, przekazuje ją do sprawdz1 i czeka na kolejną liczbę, którą przekazałby do sprawdz2. Aby temu zapobiec musisz pobrać liczbę z klawiatury, przypisać ją do zmiennej i dopiero tą zmienną przekazać do metod sprawdzX.

0

Rzeczywiście, program czekał aż podam następne liczby..tego się nie spodziewałem ;)
Zmieniłem jak radziliście

 static void Main(string[] args)
        {
            Console.WriteLine("Podaj liczbe ");
            try 
	{
        int b = Convert.ToInt32(Console.ReadLine());
        Sprawdz1(b);
        Sprawdz2(b);
        Sprawdz3(b);

Ale dalej coś tu nie działa poprawnie, jak wpiszę np. 100 to program po znaku nowej lini po prostu się zamyka.

0

uruchom przez ctrl + f5 albo napisz na koncu pliku

#if DEBUG
    Console.WriteLine("Press enter to close...");
    Console.ReadLine();
#endif
0

Nic się nie zmieniło ;)
Dobra, poczytam najpierw jeszcze trochę o bool i wrócę do tego tematu.
Dzięki !

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