Update 'du3/program.c'

This commit is contained in:
Anzhelika Nikolaieva 2023-03-20 19:23:38 +00:00
parent 1a026a0c0b
commit 3a5196efbc

View File

@ -6,39 +6,39 @@
#define VELKOST_POLA 120 #define VELKOST_POLA 120
int main(){ int main(){
char rip[VELKOST_POLA]; char rip[VELKOST_POLA];
memset(rip, '\0', VELKOST_POLA*sizeof(char)); memset(rip, '\0', VELKOST_POLA*sizeof(char)); //vyplní pole rip znakom \0
int a = 0; int a = 0;
for(int b = 0; 1; b++){ for(int b = 0; 1; b++){
a = getchar(); a = getchar();
if(a == EOF || a == ' ')break; if(a == EOF || a == ' ')break;
rip[b] = a; rip[b] = a; //píše z klávesnice v RIP
} }
for(int c = 0, d = 0; c < strlen(rip); c++){ for(int c = 0, d = 0; c < strlen(rip); c++){ //skontroluje normálny vstup
if(rip[c] == '\n'){ if(rip[c] == '\n'){
d++; d++;
} }
else if((rip[c]<='9'&&rip[c]>='0') || (rip[c]=='.') || (rip[c]==EOF) || (rip[c]==' ')); else if((rip[c]<='9'&&rip[c]>='0') || (rip[c]=='.') || (rip[c]==EOF) || (rip[c]==' '));
else if(d == 0){ else if(d == 0){
printf("Nepodarilo sa nacitat zaklad x\n"); printf("Nepodarilo sa nacitat zaklad x\n"); //vyhodí chybu, ak nemáme prvé číslo
return 0; return 0;
} }
else { else {
printf("Nepodarilo sa nacitat polynom na %d mieste.\n", d); 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; return 0;
} }
} }
int kofi = -1; int kofi = -1;
for(int c = 0; c < strlen(rip); c++){ for(int c = 0; c < strlen(rip); c++){
if(rip[c] == '\n') if(rip[c] == '\n')
continue; continue; //počíta prvky polynómu
else for(int c2=0; rip[c]!='\n'; c++, c2++); else for(int c2=0; rip[c]!='\n'; c++, c2++);
kofi++; kofi++;
} }
long double x = 0; long double x = 0;
char *finish = NULL; char *finish = NULL;
char *start = rip; char *start = rip;
x = strtof(start, &finish); x = strtof(start, &finish); //hľadám x
start = finish; start = finish;
@ -52,7 +52,7 @@ for(int c = 0; c < kofi; c++){
d=pow(x,(kofi-c)-1); d=pow(x,(kofi-c)-1);
n+=d*f; n+=d*f;
} } //všetko vypočíta
n = round(n*100)/100; n = round(n*100)/100;
printf("Vysledok je: %.2Lf\n", n); printf("Vysledok je: %.2Lf\n", n);
return EXIT_SUCCESS; return EXIT_SUCCESS;