Informatică, întrebare adresată de anndrero, 9 ani în urmă

Buna seara! Am rezolvat pb 132 in felul urmator, dar nu inteleg unde e greseala, caci iau 0 puncte pe ea.

#include <iostream>#include <cmath>#include <fstream>using namespace std;
int main(){    int n,i,v[21],x;    ifstream f("elempp.in");    ofstream g("elempp.out");    f>>n;    for (i=0;i<n;i++)        f>>v[i];    for (i=0;i<n;i++){        x=v[i];        while (x>=100)            x=x/10;        if (sqrt(x)*sqrt(x)==x)            g<<v[i]<<" ";    }    f.close();    g.close();    return 0;}

Anexe:

Răspunsuri la întrebare

Răspuns de bobolino2
1
Dupa while trebuie pusa acolada

anndrero: Nu face nicio diferenta - tot 0 puncte :(. Din corpul structurii while nu face parte decat o operatie, x=x/10, deci nu vad acolada necesara.
bobolino2: Dupa ce stiu eu trebuie pus intre-e acolade pentru ca e o strictura repetitiva,faci aia atata timp cat se respecta ce e in while
bobolino2: Chiar si o operatie
bobolino2: Ni trebuie pusa acolada inainte de while
bobolino2: Structura e while(....){operatie/i}
anndrero: OK. Multumesc frumos! Dar chiar si cu acolada, tot nu e valida rezolvarea. De ce?
bobolino2: S-ar putea sa fie din cauza ca dupa f>>v[i] mai ai un for
bobolino2: Identic cu cel de sus
bobolino2: Si nu-i vad rostul acolo
Alte întrebări interesante