Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem: Error name lookup of 'i' changed for ISO 'for' scoping [-fpermissive]

Ostatnio zmodyfikowano 2015-06-01 13:53
Autor Wiadomość
ktosktos
Temat założony przez niniejszego użytkownika
Problem: Error name lookup of 'i' changed for ISO 'for' scoping [-fpermissive]
» 2015-05-30 19:35:48
Witam,
mam następujący problem, kiedy próbuje stworzyć taki program ↓ to wyskakuje mi błąd:Error name lookup of 'i' changed for ISO 'for' scoping [-fpermissive]. Co mam zrobić? Z góry dziękuje ☺.
C/C++
#include <iostream>

using namespace std;

int main()
{ for( int i = 15; i >= 0; i - 1 );
   
    {
        cout << i << endl;
    }
    cout << "START";
    return 0;
P-132989
Gibas11
» 2015-05-30 19:50:52
Ale dużo błędów :O

1.) Wrzucaj cały kod, uciąłeś ostatni nawias.
2.) Wywal ';'  po "for( int i = 15; i >= 0; i - 1 )".
3.) Zamiast "endl" używaj '\n' (razem z apostrofami), kod będzie szybszy (niezauważalnie, ale zawsze coś).
4.) Zamiast "i - 1" wstaw "i -= 1" lub "i--", inaczej pętla będzie wykonywać się w nieskończoność.
5.) Nie używaj nawiasów klamrowych jeżeli w pętli for (albo if'ie itp.) masz tylko jedną instrukcję, kod będzie bardziej przejrzysty.

Tu masz poprawiony kod:

C/C++
#include <iostream>

using namespace std;

int main()
{
    for( int i = 15; i >= 0; i-- )
         cout << i << '\n';
   
    cout << "START";
    return 0;
}

Mam nadzieję, że pomogłem :)
P-132990
ktosktos
Temat założony przez niniejszego użytkownika
» 2015-05-30 20:36:06
Dziękuje za pomoc :) Jestem początkująca. Jeszcze. ;)
P-132995
michal11
» 2015-05-31 19:37:30
@Gibas11

Zamiast "endl" używaj '\n' (razem z apostrofami), kod będzie szybszy (niezauważalnie, ale zawsze coś).

Skąd takie dane ? Jeżeli niezauważalnie to po co to stosować ?

Nie używaj nawiasów klamrowych jeżeli w pętli for (albo if'ie itp.) masz tylko jedną instrukcję, kod będzie bardziej przejrzysty.

Z tym akurat się nie zgodzę, nie ma nic bardziej nieczytelnego jak brak nawiasów przy dużej ilości zagnieżdżonych instrukcji.
P-133027
pekfos
» 2015-05-31 20:13:56
Ale dużo błędów :O
[..]
Zamiast "endl" używaj '\n' (razem z apostrofami), kod będzie szybszy (niezauważalnie, ale zawsze coś).
Co za bzdura.. Chcesz oszczędzać na paru wywołaniach w obliczu gigantycznych opóźnień przy wysyłaniu danych na wyjście..? Wypisanie '\n' i endl to nie są nawet równoznaczne w działaniu zapisy. Kurs uczy endl nie bez powodu.
P-133028
C-Objective
» 2015-06-01 13:53:11
Hmm. A może i to prawda?
Endl - 3,6
\n - 2,2

Podałem średnią cykli procesora dla procka 2 GHZ :) Pomiary wykonane 5 razy.
P-133048
« 1 »
  Strona 1 z 1