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

endl, którego nie ma

Ostatnio zmodyfikowano 2017-10-22 18:27
Autor Wiadomość
Corvette653
Temat założony przez niniejszego użytkownika
endl, którego nie ma
» 2017-10-22 17:54:27
mimo poprawności kodu ( przynajmniej według mnie ) wyjście programu jest złe oto cały kod i początek wyjścia programu:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
            for( int d = 1; d < 243; d++ )
            {
                        if( d < 81 )
                        {
                                    cout << 1;
                            }
                        if( d > 81 && d <= 162 )
                        {
                                    cout << 2;
                            }
                        if( d > 162 )
                        {
                                    cout << 3;
                            }
         
         
                        if( d <= 27 || d > 81 && d <= 108 || d > 162 && d <= 189 )
                        {
                                    cout << 1;
                            }
                        if( d > 27 && d <= 54 || d > 108 && d <= 135 || d > 189 && d <= 216 )
                        {
                                    cout << 2;
                            }
                        if( d > 54 && d <= 81 || d > 135 && d <= 162 || d > 216 )
                        {
                                    cout << 3;
                            }
         
         
                        if( d <= 9 || d > 27 && d <= 36 || d > 54 && d <= 63 || d > 81 && d <= 90 || d > 108 && d <= 117 || d > 135 && d <= 144 || d > 162 && d <= 171 || d > 189 && d <= 198 || d > 216 && d <= 225 )
                        {
                                    cout << 1;
                            }
                        if( d > 9 && d <= 18 || d > 36 && d <= 45 || d > 63 && d <= 72 || d > 90 && d <= 99 || d > 117 && d <= 126 || d > 144 && d <= 153 || d > 171 && d <= 180 || d > 198 && d <= 207 || d > 225 && d <= 234 )
                        {
                                    cout << 2;
                            }
                        if( d > 18 && d <= 27 || d > 45 && d <= 54 || d > 72 && d <= 81 || d > 99 && d <= 108 || d > 126 && d <= 135 || d > 153 && d <= 162 || d > 180 && d <= 189 || d > 207 && d <= 216 || d > 234 )
                        {
                                    cout << 3;
                            }
         
         
                        if( d % 9 == 1 || d % 9 == 2 || d % 9 == 3 )
                        {
                                    cout << 1;
                            }
                        if( d % 9 == 4 || d % 9 == 5 || d % 9 == 6 )
                        {
                                    cout << 2;
                            }
                        if( d % 9 == 7 || d % 9 == 8 || d % 9 == 0 )
                        {
                                    cout << 3;
                            }
         
         
                        if( d % 3 == 1 )
                        {
                                    cout << 1 << endl;
                            }
                        if( d % 3 == 2 )
                        {
                                    cout << endl << 2 << endl;
                            }
                        if( d % 3 == 0 )
                        {
                                    cout << 3 << endl;
                            }
                }
            return 0;
}
Oto program natomiast tutaj początek jego wyjścia:
11313
11321
1132
2
11323
11331
1133
2
11333
12111
1211
2...
 
wyjście !!!miało!!! wyglądać tak:
11111
11112
11113
11121
11122
11123
11131
11132
11133
11211
...
 
Pytanie jest oczywiste :
dlaczego program jest "zły"
widać tutaj dwa błędy:
1. jak pewnie zauważyliście program zaczyna się od 11313 zamiast od 11111

2. Co 3 liczbę pisze się enter którego w kodzie nie ma ( chyba )
P-165969
pekfos
» 2017-10-22 18:15:49
wyjście !!!miało!!! wyglądać tak:
11111
11112
11113
11121
11122
11123
11131
11132
11133
11211
To wygląda jak kolejne liczby w systemie trójkowym, na 5 cyfrach powiększonych o 1. Rozwiąż problem od tej strony, zamiast pisać tak tragiczny kod, jak twój.

C/C++
cout << endl << 2 << endl;
Skoro masz wypisywać po 5 cyfr, czemu w kodzie masz wypisywanie dwójki w osobnej linii..?
P-165970
latajacaryba
» 2017-10-22 18:17:23
Ciężko trochę analizować ten kod, ale na pierwszy rzut oka w zaznaczonej linii masz chyba jakiś nadprogramowy endl
C/C++
if( d % 3 == 1 )
{
    cout << 1 << endl;
}
if( d % 3 == 2 )
{
    cout << endl << 2 << endl; //2 endl tu
}
if( d % 3 == 0 )
{
    cout << 3 << endl;

Edit: był szybszy :D
P-165971
Corvette653
Temat założony przez niniejszego użytkownika
aha...
» 2017-10-22 18:21:42
i znalazł się ten endl...
P-165972
mateczek
» 2017-10-22 18:27:48
C/C++
#include<iostream>
#include<string>
using namespace std;
string intToString( int liczba ) {
    string wynik;
    const int baza = 3; //system prawie trójkowy
    for( int i = 0; i < 5; i++ ) {
        wynik.insert( wynik.begin(), liczba % baza + '1' );
        liczba = liczba / baza;
    }
    return wynik;
}

int main()
{
    for( int i = 0; i < 100; i++ ) {
        cout << intToString( i ) << endl;
    }
    return 0;
}
P-165973
« 1 »
  Strona 1 z 1