Prosba o sprawdzenie 2 programow

0

#include <iostream>
#include <cmath>
using namespace std;
//blad cos z tablica ;(
main() {
int a, b, c=2, n, g=0, d ;
cout<<"podaj ilosc liczb w ciagu";
cin>>n;
int ciag[n];
//tablica
for (int i=0;i<n;i++){
cout<<endl<<"podaj kolejna liczbe-";
cin>>ciag[i];
}
//komorka od ktorej ma zaczac odliczanie czylli ==1
for (a=0;a<n;a++) {
if (ciag [a]==1) {ciag[d]=ciag[a];
break;}
}
for (b=0;b<n-d;b++&&d++){
if(ciag[d]==c){c++;}
else g++;

}

cout<<"ilosc liczb do wyciecia"<<g-1;
return 0;}

i drugi>>>

#include <iostream>
#include <cmath>
using namespace std;
main() {
int a, b, c,z, x, w;
cout<<"ilosc zestawow danych=";
cin>>z;
cout<<endl;
//tablice
int balkon[z];
int wysokosc[z];
for (a=0;a<z;a++){
cout<<endl<<"wysokosc z jakiej zrzucam=";
cin>>balkon[a];
cout<<endl<<"wysokosc na ktora ma poleciec=";
cin>>wysokosc[a];
}
//ilosc obic
w=wysokosc[a];
for(c=0;c<w;c++){
for (;;) {
if (balkon[c]>=wysokosc[a]) { cout<<endl<<b;
return 0;}
else x=balkon[c];
x=x*2;
b++;
}
}
}

W pierwszym wyskakuje blad windows.
w drugim zacina sie po wpisaniu danych i nie wchodzi tak jakby w petle i sie nie zmyka ;(

0

wrzuć kod w znaczniki

0
 #include <iostream>
#include <cmath>
using namespace std;
main() {
int a, b, c,z, x, w;
cout<<"ilosc zestawow danych=";
cin>>z;
cout<<endl;
//tablice
int balkon[z];
int wysokosc[z];
for (a=0;a<z;a++){
  cout<<endl<<"wysokosc z jakiej zrzucam=";
  cin>>balkon[a];
  cout<<endl<<"wysokosc na ktora ma poleciec=";
  cin>>wysokosc[a];
}
//ilosc obic
w=wysokosc[a];
for(c=0;c<w;c++){
    for (;;) {
    if (balkon[c]>=wysokosc[a]) { cout<<endl<<b;
        return 0;}
   else x=balkon[c];
    x=x*2;
    b++;
}
}
}
 
 
#include <iostream>
#include <cmath>
using namespace std;
//blad cos z tablica ;(
main() {
int a, b, c=2, n, g=0, d ;
cout<<"podaj ilosc liczb w ciagu";
cin>>n;
int ciag[n];
//tablica
for (int i=0;i<n;i++){
   cout<<endl<<"podaj kolejna liczbe-";
    cin>>ciag[i];
}
//komorka od ktorej ma zaczac odliczanie czylli ==1
for (a=0;a<n;a++) {
    if (ciag [a]==1) {ciag[d]=ciag[a];
    break;}
}
    for (b=0;b<n-d;b++&&d++){
    if(ciag[d]==c){c++;}
    else g++;

    }
cout<<"ilosc liczb do wyciecia"<<g-1;
return 0;}
3

A spróbuj sformatować ten kod nie dopuszczając Twojego kota do klawiatury.

0

Program nr 1:

Wskazówka ogólna: w C++ zmienne do iterowania po elementach tablicy możesz tworzyć, i dobrze by było, w pętli for, zresztą zmienną i tak stworzyłeś, a więc mógłbyś też zmienne c oraz a. Dla czytelności i zmniejszenia możliwości popełnienia błędu.

Problemy:
Przepraszam, na razie nie będę wnikać w logikę działania tego programu.

  1. Problem jest najpierw tu: w=wysokosc[a];
    Czemu tu jest a? Ile wynosi w tym miejscu wartość tej zmiennej?

  2. Następnie tu: for(;;)
    Czemu tworzysz tę pętlę nieskończoną? Co ma ona spowodować w programie? W jakim momencie program przerywa tę pętlę?

Program nr 2:

Sprawdziłem na http://ideone.com/, program uruchamia się. Ale to, że się uruchamia, to może nie znaczyć nic.

Problemy:
(Nie wnikam na razie w logikę, jak wyżej.)

  1. Nie inicjalizujesz zmiennej d. To, że jednak jest jakoś inicjalizowana (poczytaj o tym tu: http://stackoverflow.com/questions/3553559/how-are-local-and-global-variables-initialized-by-default), to w sumie dobrze, ale powinieneś ją zainicjalizować samemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1