Praca programu od nowa

0

wiem, że z=pewnie coś banalnego, lecz mam wielkie braki w programowaniu z c. mam program, który liczy pierwiastki trójmianu i po policzeniu chcę żeby pytał czy ma liczyć pierwiastki nastepnej funkcji, lecz nie wiem jak to napisać. domyślam się, że trzeba użyć pętli etc.

0

Potwierdzam, trzeba użyć pętli. Najwygodniej while lub do..while.

0

własnie nie wiem zbytnio jak to zapisać, tzn warunki kiedy ma liczyć dalej a kiedy skończyć pracę programu. dobrze będzie zapisać to na końcu? po policzeniu pierwiastków równania?

1
#include <iostream>
#include <string>
using namespace std;
#define HUH 0
int main(){
PROGRAMMING_BY_THE_HARD_WAY:
	string choice;
	/* your program */
	cin >> choice;
	if((choice == "surprise")? !HUH : HUH){
		cout << "Surprise, mothafucka." << endl;
		goto PROGRAMMING_BY_THE_HARD_WAY;
	}
}

http://ideone.com/3JNUTB

0

coś mi nie chce szaleć ta pętla, błędy w kompilowaniu. mój program bez tej pętli działa dobrze, jego kod bez tej ostatniej pętli :

#include <stdio.h>
#include <math.h>

int main()
{


   double a,b,c;
   double delta,x1,x2;
   printf("Podaj a  \n");
   scanf("%lf",&a);
if(a==0)
{
printf(" Wspolczynnik a nie moze byc 0 \n");
}
           else {
           printf("Podaj b\n");
           scanf("%lf",&b);
           printf("Podaj c\n");
           scanf("%lf",&c);
           
           delta=((b*b)-(4.0*a*c));
           if(delta>0)
                            {
                            x1=(-b+sqrt(delta))/(2.0*a);
                            x2=(-b-sqrt(delta))/(2.0*a);
                            printf("x1=%lf, x2=%lf", x1, x2);
                            printf("  \n");
                            }
                            
    else if(delta==0){
    x1=(-b/(2.0*a));
    printf("x1=%lf", x1);
    }
                              else if(delta<0)
                              printf("Rownanie nie ma pierwiastkow \n");
                              }


printf("Czy chcesz policzyc pierwiastki kolejnego trojmianu? \n");



return 0;
}
0

Pokaż jak dodałeś pętlę.

0

Radzę zapoznać się z pojęciem formatowania kodu.
Bez tego poprawne dodanie do kodu pętli, warunku lub czegokolwiek innego zawsze będzie graniczyć z cudem.

0

daj caly program w petle do ... while (//sprawdzenie czy zmienna w ktorej zapisywany jest przycisk == temu znakowi ktory wybrales jako zakonczenie programu)

0

Próbowałem czegoś takiego, niestety dalej błąd bo po prostu po policzeniu pierwiastków się wyłącza.

#include <stdio.h>
#include <math.h>
int main()
{
printf("Program liczy pierwiastki funkcji kwadratowej \n");
int a,x;
do
{

   double a,b,c;
   double delta,x1,x2;
   printf("Podaj a  \n");
   scanf("%lf",&a);
if(a==0)
{
printf(" Wspolczynnik a nie moze byc 0 \n");
}
           else {
           printf("Podaj b\n");
           scanf("%lf",&b);
           printf("Podaj c\n");
           scanf("%lf",&c);
           
           delta=((b*b)-(4.0*a*c));
           if(delta>0)
                            {
                            x1=(-b+sqrt(delta))/(2.0*a);
                            x2=(-b-sqrt(delta))/(2.0*a);
                            printf("x1=%lf, x2=%lf", x1, x2);
                            printf("  \n");
                            }
                            
    else if(delta==0){
    x1=(-b/(2.0*a));
    printf("x1=%lf", x1);
    }
                              else if(delta<0)
                              printf("Rownanie nie ma pierwiastkow \n");
                              }
printf("Jesli chcesz zakonczyc prace programu jako wspolczynnik a wpisz 'x'  \n");
}
while(a=x);



return 0;
} 
0

Do porównywania używamy operatora ==. Po drugie tworzysz dwie zmienne o tej samej nazwie (niechcąco), a jeśli chcesz sprawdzić czy użytkownik podał 'x' to użyj typu char. Może coś w ten deseń:

#include <stdio.h>
#include <math.h>
int main()
{
    printf("Program liczy pierwiastki funkcji kwadratowej \n");
    char answer;
    do
    {
        double a,b,c,delta,x1,x2;
        printf("Podaj a\n"); scanf("%lf",&a);
        
        if (a==0)
            printf("Wspolczynnik a nie moze byc 0 \n");
        else
        {
            printf("Podaj b\n"); scanf("%lf",&b);
            printf("Podaj c\n"); scanf("%lf",&c);

            delta=((b*b)-(4.0*a*c));
            if (delta>0)
            {
                x1=(-b+sqrt(delta))/(2.0*a);
                x2=(-b-sqrt(delta))/(2.0*a);
                printf("x1=%f, x2=%f\n", x1, x2);
            }
            else if (delta==0)
            {
                x1=(-b/(2.0*a));
                printf("x1=%f\n", x1);
            }
            else 
                printf("Rownanie nie ma pierwiastkow \n");
        }
        printf("Podaj \'x\' jesli program ma sie zakonczyc: "); getchar();
        scanf("%c", &answer);
    }while (answer != 'x');
    return 0;
}
 

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