pvjc22/du3/program.c

57 lines
1.6 KiB
C
Raw Permalink Normal View History

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