zadanie ze starej symfonii c++ standard prosba o ocene poprawnosci rozwiazania

0

Napisz program, w którym będzie funkcja void f();
Funkcja main ma wywoływać tę funkcję 100 razy. Funkcja f ma wiedzieć ile razy została już wywołana
i przy co dwunastym wywołaniu- wypisywać na ekranie stosowny tekst(np. „nowy tuzin”)


#include <iostream>

using namespace std;
void f();
int main()
{

    f();

 return 0;
}

void f()

{
  for(int i=1;i<=100;i++)
  {
        if(i%12==0)
        cout<<"nowy tuzin"<<"\n";
else
cout<<i<<"wywolanie funkcji"<<"\n";
  }

}

i drugie zadanie znalezione w sieci:
Napisz program pobierający od użytkownika dwie liczby i drukujący na ekranie
obie liczby w porządku rosnącym.


#include <iostream>
using namespace std;

main()
 {
    int a;
    int b;
    cin>>a>>b;

if(a<b)
        cout<<a<<b;

 else

        cout<<b<<a;
return 0;
}

dzięki za wszelką pomoc.

1

Drugie:

main() {

:O? Co się podziało z int przed main?

Pierwsze? W jaki sposób to może być w ogóle poprawne? Funkcja main wywołuję funkcję f tylko raz, a nie 100 razy. Zawartość maina to powinno być

int main() {
    for (int i = 1; i <= 100; ++i) {
        f();
    }
}

Teraz musisz się tylko zastanowić, jak napisać funkcję f...

0

@enedil: dzięki za pomoc, ale wstyd
wymyśliłem coś takiego

teraz kod działa tylko że stworzyłem zmienna globalna i, a to nie jest chyba dobra praktyka. doczytam jeszcze o funkcjach i pomyślę jak to napisać lepiej i poprawnie


#include <iostream>

using namespace std;
void f();
int i;
int main()
{

for( i=1;i<=100;i++)
    f();

    return 0;
}

void f()

{
        if(i%12==0)
        cout<<"nowy tuzin"<<"\n";
else
cout<<i<<"iteracja petli"<<"\n";

}
1

to nie było czasem ćwiczenie na zmienną statyczną?

0

@Miang: dzięki za podpowiedź


#include <iostream>

using namespace std;
void f();

int main()
{
int i;

for( i=1;i<=100;i++)
    f();

    return 0;
}

void f()

{ static int j;
      j++;

    if(j%12==0)
        cout<<"nowy tuzin"<<"\n";
else
cout<<j<<"wywolanie funkcji"<<"\n";

}
0
#include <iostream>

int Funkcja(){
    static int ilerazy {0};
    return ilerazy++;
};

int main() {
    for (int i=0; i<100; i++){
        int a = Funkcja();
        if (a % 12 ==0) std::cout << "Jestem Funkcja wywolana " << i << " razy" << '\n';
    }
    return 0;
}
1
#include <iostream>

void Funkcja(){
    static int ilerazy_jestem_wywolana = 0;
    if (ilerazy_jestem_wywolana % 12 ==0) std::cout << "Nowy tuzin, czyli jestem wywolana" << ilerazy_jestem_wywolana  << " razy" << '\n';
    ilerazy_jestem_wywolana++;
    };

int main() {
    for (int i=0; i<100; i++){
        Funkcja();
    }
    return 0;
}
0
#include <iostream>

using namespace std;

void f();

int main()
{
    int i{0};
    while(1){f();++i;if(i==100)return 0;}
    return 0;
}

void f()
{
    static int n{1};
    cout<<"call "<<n<<"\n";if(n%12==0)cout<<"\tnew dozen"<<"\n";++n;
}
0

Mniej kodu szybciej się czyta

#include <iostream>
using namespace std;

void f()
{
    static size_t call_count=0;
    //cout<<(call_count%12?"":"nowy tuzin, ")<<"liczba wywolan: "<<(++call_count)<<endl;
    if((++call_count)%12==0) cout<<"nowy tuzin"<<endl;
}

int main()
{
    for(int i=0;i<100;++i) f();
    return 0;
}

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