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.
Dodaj "endl" po funkcji "cout".
Ma to wyglądać tak: cout<<a<<", " << endl;
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
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.
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ć:)
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):