błąd w kodzie jezyk c

błąd w kodzie jezyk c
DO
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
0

miałam do napisania program, który liczy pole pod wykresem wielomianu trzeciego stopnia, przybliżenie do prostokątów, niby wszystko jest okej, ale nie wiem czemu pokazuje mi jakiś błąd, zamiast wyliczać pole, mógłby mi ktoś pomóc?
EDIT: wyskakuje mi 1.#INF00

Kopiuj
 

#include<stdio.h>

int main()
{
double a, b, c, d;
printf("\nPodaj wartosc wspolczynnika a: ");
scanf("%f", &a);
printf("Podaj wartosc wspolczynnika b: ");
scanf("%f", &b);
printf("Podaj wartosc wspolczynnika c: ");
scanf("%f", &c);
printf("Podaj wartosc wspolczynnika d: ");
scanf("%f", &d);

double poczatek, koniec;
printf("\nPodaj poczatek przedzialu: ");
scanf("%f", &poczatek);
printf("Podaj koniec przedzialu: ");
scanf("%f", &koniec);

int n;
printf("\nNa ile czesci chcesz podzielic przedzial?: ");
scanf("%i", &n);
double dx = (koniec - poczatek)/n;
double x = poczatek;
double wartosc;
double suma = 0;
int i;
for(i=0; i<n; i++)
{
	wartosc = a*x*x*x+b*x*x+c*x+d;
	suma = suma + wartosc*dx;
	x = x + dx;
}
printf("\nPole pod wykresem podanej funkcji w podanym przedziale wynosi: %f\n", suma);
return 0;

}

Kopiuj
edytowany 1x, ostatnio: domidomka
twonek
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:2500
1

Nie potrzebujemy pliku cpp w załączniku, tylko informacji co to za błąd. Jakiś błąd jest bardzo słabą informacją, a niewielu się chce odpalić Twój program, żeby zobaczyć co mu wyskoczy. W dodatku błąd może być zależny od danych wejściowych.

DO
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
0

już dodałam, może ktoś zauważył coś w składni? no nie wiem

twonek
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:2500
1

Wygląda jakby wartość była zbyt duża, żeby mogła zostać przechowywana w double albo gdzieś masz dzielenie przez 0. Próbuj dla innych danych wejściowych, które dają mniejszy wynik.

edytowany 1x, ostatnio: twonek
Craith
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 4 lata
  • Postów:146
0

1.#INF00 pojawia sie przez dzielenie przez 0

DO
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
0

próbowałam i znów to samo, tylko z minusem

kaczus
  • Rejestracja:około 10 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Łódź
  • Postów:1402
0
  1. użyj
Kopiuj
scanf("%lf", &zmiennna);

dla typu double
2) do obliczania x użyj wzoru x = poczatek + (i + 1)*dx;
http://kaczus.ppa.pl/art/liczbyzmiennoprzecinkowe,19.html


Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie
CS
Jak wklepałem to w Visual Studio to nadal mam błędy pomimo Twoich sposobów.
kaczus
debuger w dłoń zatem, nie przyglądałem się całości, ale nie powinno być więcej błędów - dokładniej na czym polega kolejny bład, przy jakich danych wejściowych?
CS
Ważność Kod Opis Projekt Plik Wiersz Błąd C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 4programmers c:\users\hubert\documents\visual studio 2015\projects\4programmers\4programmers\main.cpp 7
kaczus
to widzimisie microsoftu. po prostu użyj tej opcji kompilacji
CS
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:52
0

Użyj scanf_s zamiast scan i oczywiście zastosuj się do rady kaczus.

edytowany 2x, ostatnio: CSharp
twonek
Mam mieszane odczucia co do visualowych rozszerzeń. Może i coś oferują, ale IMO początkujący powinni się trzymać standardowych funkcji.
CS
Ja w sumie też niby początkujący ale z jakimś doświadczeniem więc mogę sobie pozwolić na nieco więcej w programowaniu i te błędy mi nie są straszne a i tak zerkam na StackOverflow jak długo trwa rozwiązywanie problemu.
twonek
Mówię bardziej w kontekście porady, której udzielasz początkującej osobie. Ona może nie używać Visuala i nagle dostaje błąd kompilacji, bo nie istnieje taka funkcja.
Xupicor
K.3.5.3.4 The scanf_s function - prosto z n1570. Annex K jest co prawda opcjonalny, ale scanf_s jako taka jest w zasadzie opcjonalnie implementowaną, ale standardową funkcją. ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.