Witam serdecznie,
napisałem program w języku C który pobiera zmienne jako argumenty wywołania programu. Argumenty te konwertują się na typ double. Chciałbym aby program kończył działanie w przypadku nieprawidłowej konwersji jeśli wpiszę mu np jakieś litery. Jak to zrobić?
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if(argc != 4)
{
printf("Za mało lub za dużo argumentów.\nProszę podać 3 argumenty.\n\n");
return 1;
}
printf("Ilosc argumentów programu = %d\n", argc);
double a,b,c;
a=atof(argv[1]);
b=atof(argv[2]);
c=atof(argv[3]);
printf("a=%lf b=%lf c=%lf \n",a,b,c);
if(a==0)
{
printf("To nie jest funkcja kwadratowa.\n");
return 0;
}
double delta=b*b-4*a*c;
printf("delta=%lf\n",delta);
if(delta<0.0)
{
printf("Brak rozwiazania.\n");
return 0;
}
else if(delta==0.0)
{
printf("Jedno rozwiazanie: %lf\n", -b/(2*a));
return 0;
}
else
{
printf("Dwa rozwiazania: %lf oraz %lf\n", (((-b)-sqrt(delta))/(2*a)), (((-b)+sqrt(delta))/(2*a)));
}
return 0;
}
Proszę o pomoc.