57 lines
1.6 KiB
C
57 lines
1.6 KiB
C
#include<stdio.h>
|
||
#include<stdlib.h>
|
||
#include<string.h>
|
||
#include<math.h>
|
||
#define SIZE 120
|
||
int main(){
|
||
char pol[SIZE];
|
||
memset(pol,'\0',SIZE*sizeof(char));//заповняэ масив ПОЛ знаком \0
|
||
int ch=0;
|
||
|
||
for(int idx=0;1;idx++ ){
|
||
ch=getchar();
|
||
if(ch==EOF||ch==' ')break;
|
||
pol[idx]=ch;
|
||
} //записуэ з клавыатури в ПОЛ
|
||
for(int i=0, p=0;i<strlen(pol);i++){//перевыряэ на нормальний ввыд
|
||
if(pol[i]=='\n')p++;
|
||
else if((pol[i]<='9'&&pol[i]>='0')||(pol[i]=='.')||(pol[i]==EOF)||(pol[i]==' '));
|
||
else if(p==0){
|
||
printf("Nepodarilo sa nacitat zaklad x\n");//виводить помилку якщо в нас немаэ першого числа
|
||
return 0;
|
||
}
|
||
else {
|
||
printf("Nepodarilo sa nacitat polynom na %d mieste.\n", p);//виводить якщо знайде символ який не э цифрою ы не э особливим знаком
|
||
return 0;
|
||
}
|
||
}
|
||
|
||
int koef=-1;
|
||
for(int i=0;i<strlen(pol);i++){
|
||
if(pol[i]=='\n')continue; //вираховуэ елементи полыному
|
||
else for(int i2=0;pol[i]!='\n';i++,i2++);
|
||
koef++;
|
||
}
|
||
|
||
long double x=0;
|
||
char *end = NULL;
|
||
char *start = pol;
|
||
x=strtof(start,&end);
|
||
//шукаэ Х
|
||
start=end;
|
||
|
||
long double num=0;
|
||
for(int i=0;i<koef;i++){
|
||
long double p=1, n=0;
|
||
n=strtof(start,&end);
|
||
start=end;
|
||
|
||
p=pow(x,(koef-i)-1);
|
||
|
||
num+=p*n;
|
||
} //Вираховуэ всьо
|
||
num=round(num*100)/100;
|
||
printf("Vysledok je: %.2Lf\n", num);
|
||
return EXIT_SUCCESS;
|
||
}
|