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

question-closed C++ pętla for zakończa program

Object Storage Arubacloud
+1 głos
218 wizyt
pytanie zadane 2 marca 2019 w C i C++ przez Kaktus_2225 Użytkownik (630 p.)
zamknięte 3 marca 2019 przez Kaktus_2225

Robię prostą aplikacje konsolową ale pętla for zakończa program i kolejne skrypty nie są wykonywane i nie wiem co mam zrobić

   for (int i=1; i<=liczba; ++i){
           system( "cls" );
            cout << "podaj nick gracza " << i << ":" << endl;
            cin >> nick[i];}

 

komentarz zamknięcia: Problem został rozwiązany
komentarz 2 marca 2019 przez niezalogowany
Wstaw więcej kodu i dokładny opis co się dzieje. Co to nick? Jaki ma rozmiar? W jaki sposób kończy się działanie programu?
komentarz 2 marca 2019 przez Kaktus_2225 Użytkownik (630 p.)
przeniesione 2 marca 2019 przez Arkadiusz Waluk
#include <iostream>
#include <windows.h>
#include <time.h>

using namespace std;

int main ()
{
            int liczba = 1, team, pro, i = 1;
        string tak;


        cout << "Podaj liczbe graczy:" << endl;
        cin >> liczba;
        system( "cls" );
        cout << "Podaj ilosc timow:" << endl;
        cin >> team;
        system( "cls" );
        cout << "Zapisano "<< liczba << " graczy i "<< team << " druzyny" <<endl;
        pro=liczba/team;
        cout << "Bdzie w kazdym timie bedzie po: " << pro << " osob" << endl;
        Sleep(3000);




    string nick[liczba];

void wpis();
{
   for (int i=1; i<=liczba; ++i){
           system( "cls" );
            cout << "podaj nick gracza " << i << ":" << endl;
            cin >> nick[i];}
}
           /* while(i == liczba)
            {
            system( "cls" );
            cout << "podaj nick gracza " << i << ":" << endl;
            cin >> nick[i];
            i = i+1;
            }*/
        system( "cls" );
        cout << "Zapisani gracze:" <<endl;
       for (int a=1; a<=liczba; ++a)
        {
            cout << a << ". " << nick[a] << endl;
        }
    cout << "Rozpoczac losowanie? [T/N]" << endl;
    cin >> tak;
    system( "cls" );

    if (tak == "T")
    {}
 else
    {
        system( "cls" );
        cout << "Ok, anulowanie losowania";
    }

}

Tu daje cały program

komentarz 2 marca 2019 przez Hiskiel Pasjonat (22,830 p.)
To Ci się kompilować nie powinno. Prześlij se te zmienne w jakiejś strukturze lub osobno do tej funkcji.

 

//EDIT

To zagnieżdżona funkcja, która nie jest wywoływana.
komentarz 2 marca 2019 przez Hiskiel Pasjonat (22,830 p.)
I BŁAGAM zmień timow na teamow.

3 odpowiedzi

+2 głosów
odpowiedź 2 marca 2019 przez niezalogowany
wybrane 2 marca 2019 przez Kaktus_2225
 
Najlepsza

Wychodzisz poza zakres tablicy. Trochę poprawiony kod:

#include <ctime> // zamiast time.h
#include <iostream>
#include <string> // brakujący nagłówek
#include <windows.h>

using namespace std;

int main()
{
	int liczba = 1, team, pro; // okropne nazwy - praktycznie nie wiadomo do czego zmienne będą używane
	string tak; 

	cout << "Podaj liczbe graczy:" << endl;
	cin >> liczba;
	system("cls");
	cout << "Podaj ilosc timow:" << endl;
	cin >> team;
	system("cls");
	cout << "Zapisano " << liczba << " graczy i " << team << " druzyny" << endl;
	pro = liczba / team;
	cout << "Bdzie w kazdym timie bedzie po: " << pro << " osob" << endl; // conajmniej!
	Sleep(3000);

	//string nick[liczba]; // VLA nie jest częścią standardu C++
	string* nick = new string[liczba];

	for (int i = 0; i < liczba; ++i) { // tablice o rozmiarze 'liczba' indeksujemy od 0 do liczba - 1, inaczej wychodzisz poza tablicę
		system("cls");
		cout << "podaj nick gracza " << i + 1 << ":" << endl; // i + 1
		cin >> nick[i];
	}
	
	system("cls");
	cout << "Zapisani gracze:" << endl;
	for (int a = 0; a < liczba; ++a) // to samo co wyżej
	{
		cout << a + 1 << ". " << nick[a] << endl;
	}
	cout << "Rozpoczac losowanie? [T/N]" << endl;
	cin >> tak;
	system("cls");

	if (tak == "T")
	{
	}
	else
	{
		system("cls");
		cout << "Ok, anulowanie losowania";
	}


	delete[] nick; 
}
komentarz 2 marca 2019 przez Kaktus_2225 Użytkownik (630 p.)
Dzięki!
0 głosów
odpowiedź 2 marca 2019 przez Teslum_369 Gaduła (4,190 p.)
Dałeś średnik przed '}', powinien być za klamrą.

Edit. przepraszam, jednak nie powinno tak być.
komentarz 2 marca 2019 przez Kaktus_2225 Użytkownik (630 p.)
nie, też nie działa
komentarz 2 marca 2019 przez Teslum_369 Gaduła (4,190 p.)
wstaw cały kod.
komentarz 2 marca 2019 przez Kaktus_2225 Użytkownik (630 p.)

@Karol_Tesla, już

 

0 głosów
odpowiedź 2 marca 2019 przez MsMaciek123 Pasjonat (24,760 p.)
#include <iostream>
#include <windows.h>
#include <time.h>
 
using namespace std;
 
int main ()
{
            int liczba = 1, team, pro, i = 1;
        string tak;
 
 
        cout << "Podaj liczbe graczy:" << endl;
        cin >> liczba;
        system( "cls" );
        cout << "Podaj ilosc timow:" << endl;
        cin >> team;
        system( "cls" );
        cout << "Zapisano "<< liczba << " graczy i "<< team << " druzyny" <<endl;
        pro=liczba/team;
        cout << "Bdzie w kazdym timie bedzie po: " << pro << " osob" << endl;
        Sleep(3000);
 
 
 
 
    string nick[liczba]; //a ta alokacja to co?
wpis() //może byś wywołał tą pętle?
//Komputer: nie ma nic dalej. Skończę program. Ale coś mi tutaj nie pasuje. Nie było rozkazu return

 
void wpis() //tutaj był nie potrzebny średnik
{
   for (int i=1; i<=liczba; ++i)
      {
           system( "cls" );
            cout << "podaj nick gracza " << i << ":" << endl;
            cin >> nick[i];
       }
//} // A to co?
           /* while(i == liczba)
            {
            system( "cls" );
            cout << "podaj nick gracza " << i << ":" << endl;
            cin >> nick[i];
            i = i+1;
            }*/
        system( "cls" );
        cout << "Zapisani gracze:" <<endl;
       for (int a=1; a<=liczba; ++a)
        {
            cout << a << ". " << nick[a] << endl;
        }
    cout << "Rozpoczac losowanie? [T/N]" << endl;
    cin >> tak;
    system( "cls" );
 
    if (tak == "T")
    {}
 else
    {
        system( "cls" );
        cout << "Ok, anulowanie losowania";
    }
 return 0; //polecam.
}//tutaj jakaś kropa była.

 

Podobne pytania

0 głosów
2 odpowiedzi 896 wizyt
pytanie zadane 18 maja 2021 w Python przez urbix01 Gaduła (3,290 p.)
0 głosów
1 odpowiedź 305 wizyt
pytanie zadane 21 stycznia 2021 w C i C++ przez amik.wafelek Nowicjusz (170 p.)
0 głosów
1 odpowiedź 192 wizyt
pytanie zadane 25 października 2020 w C i C++ przez JanegL Nowicjusz (120 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...