Treść:Npiasz program, który wypisze na ekranie liczby.
32,16,8,4,2
#include<iostream>
using namespace std;
int main()
{
for(int i=32;i>=2;i--)
{
i=i++;
cout<<i<<endl;
i = i/2;
}
return 0;
}
Pytanie czemu mi wyświetla 32,15,6,2 ??
Treść:Npiasz program, który wypisze na ekranie liczby.
32,16,8,4,2
#include<iostream>
using namespace std;
int main()
{
for(int i=32;i>=2;i--)
{
i=i++;
cout<<i<<endl;
i = i/2;
}
return 0;
}
Pytanie czemu mi wyświetla 32,15,6,2 ??
for(int i=32;i>=2;)
{
cout<<i<<endl;
i = i/2;
}
W odpowedzi na twoje pytanie
for(int i=32;i>=2;i--) // po kazdym wykonaniu petli zmienna "i" bedzie pomniejszana o 1
{
// zanim zaczna wykonywac sie te wszystkie magiczne sztuczki to i = 32
i=i++; // na dzien dobry benc zachodza dziwne czary w styl
// int tmp = i;
// i++;
// i = tmp;
// wiec i pozostaje bez zmian = 32
cout<<i<<endl; // wyswietlasz sobie to 32 na ekran
i = i/2; // i = 32/2;
// w koncu po przebytych meczarniach i = 16
// wracasz na gore jednak ja napisze nizej zeby nie mieszac komentarzy
//---------------- druga iteracja --------------
// i pomniejsza o 1 wiec i = 15
// i=i++; udaje ze cos robi
// wyswietlasz 15
// i = 15/2;
// i = 7;
//---------------- trzecia iteracja --------------
//itd...
}
Ja zrobilbym to tak :)
cout<<"32,16,8,4,2";
Raloseq napisał(a):
Treść:Npiasz program, który wypisze na ekranie liczby.
32,16,8,4,2#include<iostream>
using namespace std;
int main()
{
for(int i=32;i>=2;i--)
{
i=i++;
cout<<i<<endl;
i = i/2;}
return 0;
}
Pytanie czemu mi wyświetla 32,15,6,2 ??
i=i++;
to jest Undefined behavior i prawdopodobnie znosi się z i--
.
Nie rozumiem twego zdziwienia to zamieszanie z i=i++;
i i--
powinno wzbudzić twoje podejrzenia.