Powrót do początku

Witam piszę program i chciałbym aby po wykonaniu obliczeń program nie wyłączał się ale wrócił do początku. Jak mam to zrobić. Pod spodem załączam kod

#include

int main()

{

printf(“Jak chcesz wykonac program \n 1.for\n 2.while \n 3 do while”);

int ile;

scanf("%d", &ile);

printf(“Podaj x, xk oraz dx \n”);

int x, xk, dx;

scanf("%d", &x);

scanf("%d", &xk);

scanf("%d", &dx);

switch(ile)

{case 1:

for(x; x

{

int x1, x2;

x1=x*x;

x2=x*x*x;

printf("%d, %d, %d \n", x, x1, x2 );

return 0;

}

case 2:

while(x<=xk)

{

int x1, x2;

x1=x*x;

x2=x*x*x;

printf("%d, %d, %d \n", x, x1, x2 );

x=x+dx;

}

case 3:

do{

int x1, x2;

x1=x*x;

x2=x*x*x;

printf("%d, %d, %d \n", x, x1, x2 );

x=x+dx;

return 0;

}while(x

}

}

Wziąć to wszystko w pętle:

while(true)  {   ...  } [/code]

No i powywalać return 0; zamiast tego break; na końcu każdego case.

A czy przypadkiem użycie break na końcu każdego case nie spowoduje przerwania wykonywania dalszej części kodu po przetworzeniu danego case i zakończenia działania całego programu?

Na końcu dałem return main(); i podziałało. Jest jeszcze jakaś możliwość?

To co zrobiłeś jest bez sensu, rekurencyjnie wywołujesz main(), będzie działać kilka razy dopóki stos się nie przepełni.

Opisałem wyżej jedyną sensowną możliwość, jak nie pasują ci sensowne to kombinuj w kierunku bezsensownych, np goto

scripter1 , break w ramach case oznacza zakończenie działania tego case.

int main()

{

do{

        ... 

cout<<"Kontynuowac? [T/n] ";

}while(toupper(getch())!='N');

return0;

}

i w case zamiast return 0 powinno byc break…

Jak coś toupper jest w bibliotece ctype.h

No z while(true) działa poprawnie

A dlaczego goto bezsensu?

Dla tego że to samo można zrobić w sposób czytelny.