• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pętla w c++ nieskończona

Object Storage Arubacloud
0 głosów
2,062 wizyt
pytanie zadane 12 października 2019 w C i C++ przez Niepokonana7999 Bywalec (2,270 p.)

Witam

Dlaczego ta pętla jest nieskończona?

#include <iostream>

using namespace std;
int a,i,j=0;
int main()
{
    cout << "podaj liczbe a" << endl;
    cin>>a;
    for(i=0;i<=a;)
    {i++;
        if(i%13==0)
        {
            continue;
        }
while(i<=a)
        {cout<<"*"<<endl;
    }}
    return 0;
}

 

komentarz 12 października 2019 przez tkz Nałogowiec (42,000 p.)
#include <iostream>
#include <string>
 
int main() {
    int number;
 
    std::cin >> number;
    for(auto i = 0; i < number; ++i) {
        std::cout << std::string(i + 1, '*') << '\n';
    }
}

 

2 odpowiedzi

+1 głos
odpowiedź 12 października 2019 przez Kajoh Nowicjusz (210 p.)
Dałeś pętlę while - będzie się ona wykonywać dopóki i jest mniejsze lub równe a. W pętli nie zmieniasz wartości i czyli przy pierwszym obiegu cały czas i ma wartość 1 - stąd pętla nieskończona. Zmień while na else (co 13 linijka będzie wtedy bez gwiazdki).
komentarz 12 października 2019 przez Niepokonana7999 Bywalec (2,270 p.)
Ja chcę żeby każda linijka miała tyle gwiazdek, jaki jest numer linijki, ale mi nie wychodzi. :(
komentarz 12 października 2019 przez Kajoh Nowicjusz (210 p.)

#include <iostream>
 
using namespace std;

int main()
{
	int a,i,j=0;
    cout << "podaj liczbe a" << endl;
    cin>>a;
    for(i=1;i<=a;i++)
    {
        if(i%13==0)
        {
        	
            continue;
        }
	else
	{
		for(int x = 0; x < i; x++)
       {
       		cout<<"*";
	   }
	   
	   cout<<endl;
	}
       
    }
    return 0;
}

To może coś takiego? Wtedy każda linijka (oprócz co 13) ma tyle gwiazdek ile numer linijki (licząc od 1).

Jeśli nie zależy ci na tej co 13 linijce wyrzuć z kodu powyżej if  oraz else.

komentarz 12 października 2019 przez Niepokonana7999 Bywalec (2,270 p.)
ok, już zgadłam, działa.
0 głosów
odpowiedź 12 października 2019 przez Niepokonana7999 Bywalec (2,270 p.)
#include <iostream>

using namespace std;
int a,i,j;
int main()
{
    cout << "podaj liczbe a" << endl;
    cin>>a;
    for(i=1;i<=a;i++)
    {
        if(i%13==0)
        {
            continue;
        }
for (j=1;j<i;j++)
{
    cout<<"*";
}cout<<endl;}
    return 0;
}

Jak mam tak to działa z continue

komentarz 13 października 2019 przez j23 Mędrzec (194,920 p.)

Dlaczego a, i i j są globalne?

komentarz 13 października 2019 przez Niepokonana7999 Bywalec (2,270 p.)
a dlaczego nie
1
komentarz 13 października 2019 przez j23 Mędrzec (194,920 p.)

Dlatego, że tworzenie ponad miarę zmiennych globalnych jest złym stylem zmniejszającym czytelność kodu.

Nie lepiej tak:

int main()
{
    int a;

    cout << "podaj liczbe a" << endl;
    cin >> a;

    for (int i = 1; i <= a; i++) {
        if (i % 13 == 0) continue;
        for (int j = 1; j < i; j++) cout << '*';
        cout << '\n';
    }

    return 0;
}

?

Podobne pytania

0 głosów
2 odpowiedzi 330 wizyt
0 głosów
2 odpowiedzi 514 wizyt
pytanie zadane 14 maja 2020 w C i C++ przez InvictusFNC Nowicjusz (130 p.)
0 głosów
2 odpowiedzi 513 wizyt
pytanie zadane 15 grudnia 2015 w C i C++ przez Sebastian R Obywatel (1,110 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...