Aha, taky dobré vědět nevím, kde může být daná chyba, mám pocit ze je možná i někde problém ve switchi,protože jestli se mi to nezdá, tak ten program vynechává některou z case.
Příspěvky odeslané z IP adresy 91.187.35.–
float a, b, c, x1, x2, d, i, r, n;
další chyba má tam být double a ne float :)
Dobrý den,mohli by jste mi prosím poradit kde je chyba v níže uvedeném kódu? Pracuje správně,ale výpočet je nesprávný děkuji.
#include <stdio.h>
#include <MATH.H>
#include <conio.h>
int main(void)
{
float a, b, c, x1, x2, d, i, r, n;
printf("Zadej 3 cleny kvadraticke rovnice a,b,c\n");
while(scanf("%lf %lf %lf",&a, &b, &c)==0)
{
printf("Toto neni cislo...");
fflush(stdin);
}
d=(b*b-(4*a*c));
int A = (1*(d>0)) + (2*(d==0)) + (3*(d<0));
switch(A)
{
case 1 :
x1=(-b+sqrt(d))/2*a;
x2=(-b-sqrt(d))/2*a;
printf("Koren x1 je: %f. Koren x2 je: %f",x1,x2);
break;
case 2 :
x1=(-b)/(2*a);
x2=x1;
printf("Koren x1 je: %f. Koren x2 je: %f",x1,x2);
break;
case 3 :
d=fabs (d);
x1=(-b+sqrt(d))/2*a;
x2=(-b-sqrt(d))/2*a;
r=sqrt(d);
n=-(sqrt(d));
printf("Koren x1 je: %lf+%lf*i. Koren x2 je: %lf+%lf*i",x1,x2,r,n);
break;
}
return(0);
}
Děkuji mockrát za pomoc :)
Sem tady nový omlouvam se.
#include <stdio.h>
#define CISLO 5
#define MIN 0
#define MAX 10
int main(void)
{
int x = -1;
int navrat;
printf("Na jake cislo myslim? Hadej mezi %2i a %2i: ", MIN, MAX);
navrat = scanf("%i", &x);
if (navrat == EOF) {
printf("\ascanf nemuze cist. Je uzavren standardni vstup stdin\n");
return 1;
} else if (navrat != 1) {
printf("\aNezadal jsi cislo!\n");
return 1;
}
if(x<MIN)
printf("Tak to bylo trochu malo kamarade!\n");
else if(x>MAX)
printf("Tak to bylo trochu moc!\n");
else if(x==CISLO)
printf("Uhadnul si, dobra prace \n");
else
printf("Smula. Zkus to znovu.\n");
return 0;
}
#include <stdio.h>
#define CISLO 5
#define MIN 0
#define MAX 10
int main(void)
{
int x = -1;
int navrat;
printf("Na jake cislo myslim? Hadej mezi %2i a %2i: ", MIN, MAX);
navrat = scanf("%i", &x);
if (navrat == EOF) {
printf("\ascanf nemuze cist. Je uzavren standardni vstup stdin\n");
return 1;
} else if (navrat != 1) {
printf("\aNezadal jsi cislo!\n");
return 1;
}
if(x<MIN)
printf("Tak to bylo trochu malo kamarade!\n");
else if(x>MAX)
printf("Tak to bylo trochu moc!\n");
else if(x==CISLO)
printf("Uhadnul si, dobra prace \n");
else
printf("Smula. Zkus to znovu.\n");
return 0;
}
Zde je cely program ktery by měl fungovat,jenže když nenapisete spravne cislo,vypise jen smula a vypne se,myslim,ze by mel napovedet a pote vypsat smula a vratit vas k zadavani cisla.
Omlouvam se je to vytažené ze switche aby to fungovalo musi tam byt navic int main(void) a na konci jeste za returnem } ..má chyba omlouvam se
Dobrý den,
mám problém se zacyklením podmínky níže program,když se uživatel netrefí do správného čísla,tak počítač napíše jen smula zkus to znovu,ale pritom by se nemel jen vypnout a poradit nam. Děkuji za odpovědi
#include <stdio.h>
#define CISLO 5
#define MIN 0
#define MAX 10
{
int x = -1;
int navrat;
printf("Na jake cislo myslim? Hadej mezi %2i a %2i: ", MIN, MAX);
navrat = scanf("%i", &x);
if (navrat == EOF) {
printf("\ascanf nemuze cist. Je uzavren standardni vstup stdin\n");
return 1;
} else if (navrat != 1) {
printf("\aNezadal jsi cislo!\n");
return 1;
}
if(x<MIN)
printf("Tak to bylo trochu malo kamarade!\n");
else if(x>MAX)
printf("Tak to bylo trochu moc!\n");
else if(x==CISLO)
printf("Uhadnul si, dobra prace \n");
else
printf("Smula. Zkus to znovu.\n");
return 0;
}
break;
system("pause");
return 0;