Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Programowanie C++

03.09.2016 12:47
AvengerXXX
1
AvengerXXX
112
Senator
Image

Programowanie C++

Witam,

wiem, że nie jest to forum programistyczne ale może znajdzie się ktoś, kto pomoże mi w dość (pewnie dla niego) prostym problemie :) Otóż chciałbym, żeby zamiast ostatniego przecinka po każdym "ifie" było przejście do kolejnej linii. Ma to wyglądać tak:
1, 2
4, 5
7, 8

U mnie natomiast jest to ciąg liczb.

Z góry dzięki za odpowiedź!

Av.

03.09.2016 12:52
2
odpowiedz
zanonimizowany1080091
33
Legend

Dodaj "endl" po funkcji "cout".

Ma to wyglądać tak: cout<<a<<", " << endl;

post wyedytowany przez zanonimizowany1080091 2016-09-03 12:53:34
03.09.2016 12:53
AvengerXXX
3
odpowiedz
AvengerXXX
112
Senator

Próbowałem ale wtedy wszystkie liczby są w kolumnie, a nie co dwie :)

03.09.2016 12:58
wysiak
4
odpowiedz
wysiak
95
tafata tofka

Dodaj przed linia "a++;"
if (a=3 || a = 6)

cout<<endl;

spoiler start

C++ od kilkunastu lat nie ruszalem, sorry jesli zla skladnia.

spoiler stop

03.09.2016 13:05
AvengerXXX
5
odpowiedz
AvengerXXX
112
Senator

Działa tylko znowu na końcu są przecinki :)

03.09.2016 13:08
wysiak
6
odpowiedz
wysiak
95
tafata tofka

Oczywiscie, ze sa, przeciez zawsze drukujesz liczbe razem z przecinkiem. Wywal ten przecinek stamtad, i dodaj else z cout<<", "; do tego ifa, ktorego wyzej napisalem.

03.09.2016 13:16
AvengerXXX
7
odpowiedz
AvengerXXX
112
Senator

Niestety, dalej są przecinki na końcach.

03.09.2016 13:44
8
odpowiedz
Likfidator
120
Senator

http://cpp.sh/2bk7r

Masz działający program. A jakby link nie działał:

int main()
‹;
bool przecinek = true;
for(int a=1;a<9;a++)‹;
if(a%3==0)‹;
cout<<endl;
›; else ‹;
cout<<a;
if(przecinek) ‹;
cout<<",";
›;
przecinek = !przecinek;
›;
›;
›;

Program działa tak:
1. Pętla for iteruje zmienną a od 1 do 8. Nie ma sensu używać do/while, skoro zwykły for wystarczy. Tym bardziej, że while ma trudniejszy warunek stopu i ogólna zasada jest taka, że jeśli nie ma korzyści wydajności czy sensu, to się tego nie stosuje.
2. Zauważamy, że wypisujemy liczby w parach z pominięciem co trzeciej. Innymi słowy zamiast pisać co trzecią (podzielną przez 3) liczbę wstawiamy znak przejścia do nowej linii. Warunek if(a%3==0 ) znaczy tyle, że jeśli a jest podzielne przez 3 to...

3. Jeśli a nie jest podzielne przez 3 (else) to wypisz liczbę.
4. Co z przecinkiem? Wystarczy zauważyć, że jest wypisywany co drugą liczbę. Czyli najprostszą metodą jest użycie zmiennej BOOL, którą zmienia się na wartość przeciwną w każdej iteracji.

Na koniec zauważyłem, że mój program wypisuje liczby w formacie 1,2 zamiast 1, 2 czyli bez spacji, ale wystarczy dodać jeden znak w kodzie, żeby to poprawić:)

post wyedytowany przez Likfidator 2016-09-03 13:45:47
03.09.2016 22:56
AvengerXXX
9
odpowiedz
AvengerXXX
112
Senator

Właśnie sęk w tym, że pętla musi być while. Takie są wytyczne :)

04.09.2016 01:46
David Shepard
10
odpowiedz
David Shepard
81
Metal
Image

Pewnie rozwiązałeś, już dobrą podpowiedź dostałeś od wysiaka, ale jeśli nie to masz (nie komplikowałemniepotrzebnie bo widzę że dopiero zaczynasz):

post wyedytowany przez David Shepard 2016-09-04 01:52:20
Forum: Programowanie C++