
Ktoś podpowie jak wykonać poprawnie ten wzór w języku C?

Ktoś podpowie jak wykonać poprawnie ten wzór w języku C?
A co już masz napisane?
Ktoś podpowie jak wykonać poprawnie ten wzór w języku C?
można podzielić to na trzy podproblemy:
wczytanie liczny z klawiatury
policzenie wartości
wypisanie rezultatu obliczeń
Umiesz zrobić którykolwiek punkt?
KamilAdam napisał(a):
A co już masz napisane?
int main()
{
int C;
printf("Wprowadz wartosc liczby C\n");
scanf("%d",&C);
printf("Wynik wynosi: %d",C*2-C+5/(1/pow(C,2)));
return 0;
}
Tak to wygląda jednak chyba jest coś nie tak w obliczeniach
Tak, masz żle nawiasy. Twój zapis C*2 - C + 5/(1/pow(C,2)) to odpowiednik , a dzielić przez
chcesz całe wyrażenie, zatem chcesz mieć
(C*2 - C + 5)/(1/(C*C)).
Używasz typu int, więc te dzielenia też będą int, czyli dość prawdopodobne, że dla 1/C^2 dostaniesz 0 dość szybko i dzielenie 5/0.
Możliwe, że powinieneś użyć 1.0/C^2, tak by wymusić konwersję do float i w printf użyć odpowiedniego formatowania dla zmiennoprzecinkowych.
Należy zwrócić uwagę na to, że można używać tylko typu całkowitego, i wydaje mi się, że pośredni typ zmiennoprzecinkowy w wyrażeniu też się liczy. Sens zadania jest chyba taki, żeby zamienić dzielenie przez odwrotność na mnożenie, czyli (C + 5) * C * C, i wtedy wszystkie obliczenia są całkowitoliczbowe. Ważna umiejętność jak nie masz do dyspozycji FPU (np. na embedded).