• 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

VPS Starter Arubacloud
0 głosów
2,013 wizyt
pytanie zadane 12 października 2019 w C i C++ przez Niepokonana7999 Bywalec (2,250 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,250 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,250 p.)
ok, już zgadłam, działa.
0 głosów
odpowiedź 12 października 2019 przez Niepokonana7999 Bywalec (2,250 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,250 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 329 wizyt
0 głosów
2 odpowiedzi 499 wizyt
pytanie zadane 14 maja 2020 w C i C++ przez InvictusFNC Nowicjusz (130 p.)
0 głosów
2 odpowiedzi 471 wizyt
pytanie zadane 15 grudnia 2015 w C i C++ przez Sebastian R Obywatel (1,110 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...