61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
#include <stdlib.h>
|
|
|
|
#define VELKOST_POLA 120
|
|
int main(){
|
|
char rip[VELKOST_POLA];
|
|
memset(rip, '\0', VELKOST_POLA*sizeof(char)); //vyplní pole rip znakom \0
|
|
int a = 0;
|
|
|
|
for(int b = 0; 1; b++){
|
|
a = getchar();
|
|
if(a == EOF || a == ' ')break;
|
|
rip[b] = a; //píše z klávesnice v RIP
|
|
}
|
|
for(int c = 0, d = 0; c < strlen(rip); c++){ //skontroluje normálny vstup
|
|
if(rip[c] == '\n'){
|
|
d++;
|
|
}
|
|
else if((rip[c]<='9'&&rip[c]>='0') || (rip[c]=='.') || (rip[c]==EOF) || (rip[c]==' '));
|
|
else if(d == 0){
|
|
printf("Nepodarilo sa nacitat zaklad x\n"); //vyhodí chybu, ak nemáme prvé číslo
|
|
return 0;
|
|
}
|
|
else {
|
|
printf("Nepodarilo sa nacitat polynom na %d mieste.\n", d); //zobrazí odpoveď, ak sa nájde znak, ktorý nie je číslicou a nie je špeciálnym znakom
|
|
return 0;
|
|
}
|
|
}
|
|
int kofi = -1;
|
|
for(int c = 0; c < strlen(rip); c++){
|
|
if(rip[c] == '\n')
|
|
continue; //počíta prvky polynómu
|
|
else for(int c2=0; rip[c]!='\n'; c++, c2++);
|
|
kofi++;
|
|
}
|
|
long double x = 0;
|
|
char *finish = NULL;
|
|
char *start = rip;
|
|
x = strtof(start, &finish); //hľadám x
|
|
|
|
start = finish;
|
|
|
|
int f = 0;
|
|
long double n = 0;
|
|
for(int c = 0; c < kofi; c++){
|
|
long double d = 1; f = 0;
|
|
f = strtof(start, &finish);
|
|
start = finish;
|
|
|
|
d=pow(x,(kofi-c)-1);
|
|
|
|
n+=d*f;
|
|
} //všetko vypočíta
|
|
n = round(n*100)/100;
|
|
printf("Vysledok je: %.2Lf\n", n);
|
|
return EXIT_SUCCESS;
|
|
|
|
}
|