Kezdőoldal » Közoktatás, tanfolyamok » Nyelvtanulás » C nyelvben a valós változókat...

C nyelvben a valós változókat hogyan tudom átadni címszerinti paraméterként? Úgy vettem észre, hogyami az egészeket működik(*,&), az a lebegőpontosnál nem. Még elég kezdő vagyok, légyszii segítesek:))

Figyelt kérdés

2021. okt. 8. 21:42
1 2
 1/17 A kérdező kommentje:
* hogy, ami az egészeknél működik
2021. okt. 8. 21:50
 2/17 Pelenkásfiú ***** válasza:

Nem kéne, hogy különbség legyen.

Mutatsz kódrészletet?

2021. okt. 8. 22:14
Hasznos számodra ez a válasz?
 3/17 A kérdező kommentje:

#include <stdio.h>

#include <stdlib.h>


void beolvasas (long double *a, long double *b, long double *c)

{

printf("a= ");

scanf("%f", a);

printf("b= ");

scanf("%f", b);

printf("c= ");

scanf("%f",c);

}


void megoldas (long double a, long double b, long double c)

{

long double p=0;

long double delta=0;

if (a!=0)

{

} delta= b*b - 4*a*c; printf( "%f", delta);

if (delta>0)

{

printf("Megoldasok: ");

p=sqrt(delta);

printf( "%f", (-b+ p)/ 2*a, ", ");

printf("%f", (-b- p)/ 2*a);

}

else {..}


int main()

{

long double a, b, c;

beolvasas(&a, &b, &c);

megoldas(a, b, c);


return 0;

}

Egy másodfokú egyenlet megoldásait tárgyalja a program. Elvégzi a beolvasást és minden, de nullákat ír ki megoldásnak.

2021. okt. 9. 08:18
 4/17 Pelenkásfiú ***** válasza:

Nem tudom, milyen compilert használsz, de nekem jónéhány dolgot át kellett írnom, hogy egyáltalán lefusson:


- long double format string: %Lf

- Az egyik printf-nek harmadik paraméterként átadsz egy vesszőt. Azt tedd az első paraméterbe. Az nem változó.

- Kapcsos zárójeleket is nézd át!

- if (a != 0) - Ennek direkt nincs semmi a blokkjában?


Miután lefutott, beírtam 3 random számot és ezt kaptam:

a= 2.5

b= 2.2

c= 4.4

-39.160000

2021. okt. 9. 08:33
Hasznos számodra ez a válasz?
 5/17 Pelenkásfiú ***** válasza:

a= 1

b= 5

c= 2

17.000000Megoldasok: -0.438447, -4.561553

2021. okt. 9. 08:36
Hasznos számodra ez a válasz?
 6/17 A kérdező kommentje:

#include <stdio.h>

#include <stdlib.h>


void beolvasas (long double *a, long double *b, long double *c)

{

printf("a= ");

scanf("%Lf", a);

printf("b= ");

scanf("%Lf", b);

printf("c= ");

scanf("%Lf",c);

}


void megoldas (long double a, long double b, long double c)

{

long double p=0;

long double delta=0;

if (a!=0)

{

delta= b*b - 4*a*c;

if (delta>0)

{

printf("Megoldasok: ");

p=sqrt(delta);

printf( "%Lf", ((-1)*b+ p)/ 2*a);

printf("%Lf", ((-1)*b- p)/ 2*a);

}

else

{

if (delta=0)

{

printf("Egy megoldas van: ");

printf("%Lf", p/2*a);

}

else

{

delta= delta* (-1);

printf("Megoldasok: ");

printf( "%Lf", ((-1)*b+ p)/ 2*a); printf("i, ");

printf("%Lf", ((-1)*b- p)/ 2*a); printf("i, ");

}

}

}

else

{

if (b!=0)

{

printf("Megoldas: ");

printf("%Lf", (-1)*c/b);

}

else

{

printf("Nincs megoldas");

}

}

}

int main()

{

long double a, b, c;

beolvasas(&a, &b, &c);

megoldas(a, b, c);


return 0;

}

Átjavítottam, viszont nekem így sem működik. GCC compilert használok

2021. okt. 9. 12:01
 7/17 Pelenkásfiú ***** válasza:

De miért nem nézed meg a hibaüzenetet?

Írja, hogy az sqrt() ismeretlen.


Megoldás:

#include <math.h>


Vagy neked lefut enélkül is és más hiba van?

2021. okt. 9. 12:11
Hasznos számodra ez a válasz?
 8/17 A kérdező kommentje:
Nekem lefut anélkül is. Nem ír ki hibaüzenetet és megjegyzést sem, egyszerűen bármilyen értéket olvasok be, nullát ad megoldásnak.
2021. okt. 9. 12:15
 9/17 Pelenkásfiú ***** válasza:

Nem tudom, mi lehet még.. nálam jó.

Kezdj el debugolni. Írasd ki a változókat a kód különböző pontjain!

2021. okt. 9. 12:31
Hasznos számodra ez a válasz?
 10/17 Pelenkásfiú ***** válasza:

Egyébként legközelebb ne a nyelvtanulásba tedd fel a kérdést, mert az az idegennyelvekről szól!

Van Számítástechnika -> Programozás, ott több választ kapsz.

2021. okt. 9. 16:19
Hasznos számodra ez a válasz?
1 2

További kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!