Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zadanie - problem z zapisaniem warunku

Ostatnio zmodyfikowano 2013-11-01 22:38
Autor Wiadomość
janiu
Temat założony przez niniejszego użytkownika
Zadanie - problem z zapisaniem warunku
» 2013-11-01 21:30:26
Witam !
Dostałem zadanie w którym muszę wpisać do tablicy typu int 10 losowych liczb z zakresu 10-90 oraz wyświetlić na ekranie liczb parzystych, nieparzystych i nieparzystych ale podzielnych przez 3.

Wykonałem prawie całe zadanie:
C/C++
#include<iostream>
#include<time.h>
using namespace std;

void WyswitlanieParzystych( int tablica[], int i )
{
    if( tablica[ i ] % 2 );
   
    else
         cout << "Liczby parzyste" << tablica[ i ] << endl;
   
};

void WyswietlanieNieparzystych( int tablica[], int i )
{
    if( tablica[ i ] % 2 )
         cout << "Liczby nieparzyste" << tablica[ i ] << endl;
   
};
int main()
{
    srand( time( 0 ) );
   
    int tab[ 10 ];
    cout << "Wszytskie liczby tablicy" << endl;
    for( int i = 0; i < 10; i++ )
    {
       
        tab[ i ] = rand() % 81 + 10;
        cout << tab[ i ] << endl;
       
    }
   
    cout << "Liczby nieparzyste" << endl;
    for( int j = 0; j < 10; j++ )
    {
        if( tab[ j ] % 2 )
             cout << tab[ j ] << endl;
       
    }
   
    cout << "Liczby parzyste" << endl;
    for( int k = 0; k < 10; k++ )
    {
        if( tab[ k ] % 2 );
       
        else
             cout << tab[ k ] << endl;
       
    }
   
    cout << "Liczby nieparzyste ale podzielne przez 3" << endl;
    for( int l = 0; l < 10; l++ )
    {
       
       
        system( "pause" );
    }
ale nie wiem jak zrobić ostatni podpunkt z wyświetleniem liczb nieparzystych ale podzielnych przez 3.
Mógłby mi ktoś pomóc?
P-95051
pekfos
» 2013-11-01 21:32:27
P-95052
janiu
Temat założony przez niniejszego użytkownika
» 2013-11-01 21:37:05
wiem że musze użyć "&&" ale jak wpisze tablica%2&& tablica%3 to nie zadziała tak jak powinno
P-95053
akwes
» 2013-11-01 21:45:45
tablica%2 zwraca wartości 0,1
tablica%3 zwraca wartości 0,1,2

A Tobie chodzi o stwierdzenie czy reszta jest równa zero, tak :)?
P-95054
Buby
» 2013-11-01 22:09:03
Przypomnij sobie lekcję matmy z 4 klasy podstawówki,
jeśli suma cyfr liczby dzieli się przez 3, to liczba jest podzielna przez 3 ;)

Wiem, że mnie zganią za danie gotowca, ale pewnie zrozumiesz, czytając komentarze.


KOD:
C/C++
#include <iostream>

int main()
{
    int liczba; // Deklaracja zmiennej - liczba do sprawdzenia.
    int jednaCyfra; // Wartosc pojedynczej cyfry, ktora zaraz wyliczymy.
    int sumaCyfr = 0; // Suma cyfr.
   
    std::cin >> liczba; // Wprowadz liczbe.
   
    while( liczba != 0 ) // Petla, ktora sie konycz, gdy liczba wyniesie 0.
    {
        jednaCyfra = liczba % 10; // Dzielimy modulo przez 10 - otrzymana reszta to jedna cyfra.
        sumaCyfr += jednaCyfra; // Sumujemy.
        liczba /= 10; // Dzielimy, aby skrocic liczbe, przed nastepnym dzieleniem.
        // Po skroceniu, nie bedziemy mieli przecinka, bo int to typ calkowity.
        // Wiec petla, po liczbie dzielen rownej liczbie cyfr zakonczy sie.
    }
   
    if( !( sumaCyfr % 3 ) ) // Jesli z sumy liczb nie ma reszty dzielac przez 3 - [znak "!" to negacja]
    {
        std::cout << "Liczba podzielna przez 3" << std::endl; // Wypisanie wyniku.
    }
    else // Jesli nie to:
    {
        std::cout << "Liczba nie podzielna przez 3" << std::endl; // Wypisanie wyniku.
    }
    return 0;
}



Kod musisz przerobic, aby odpowiadal twojemu programowi :)
Pozdrawiam.


@Edit:
Po co, tworzysz funkcje, których nie używasz w bloku głównym programu? :)

I wskazówka:
w pętli "for" nie musisz za każdym razem nadawać zmiennej nowej nazwy - u Ciebie "i","j","l".
Ta zmienna jest utworzona wewnątrz pętli i nie jest widoczna poza nią.
P-95055
den93
» 2013-11-01 22:37:26
if( l % 2 && !( l % 3 ) )...;
lub
if( l & 1 && !( l % 3 ) )...;
P-95056
janiu
Temat założony przez niniejszego użytkownika
» 2013-11-01 22:38:11
Dzieki wielkie
W sumie z twojego programu użyłem tylko jednej linijki:
if( !( sumaCyfr % 3 ) )
i zapisałem ten warunek jako
if(tab[l]%2 && !(tab[l]%3) )

Tych funkcji po prostu zapomniałem skasować a z tymi zmiennymi że są tworzone tylko w pętli to nie pamiętałem więc dzięki za rade.
P-95057
« 1 »
  Strona 1 z 1