This commit is contained in:
Andrii Hermaniuk 2022-03-31 13:13:17 +02:00
parent 56dd2d27d1
commit e4a148863c
5 changed files with 111 additions and 69 deletions

View File

@ -21,27 +21,22 @@ int main(){
break; break;
} }
} }
Dnes_Datum[id]='\0'; Dnes_Datum[id+1]='\0';
char *start=Dnes_Datum, *end=NULL; char *start=Dnes_Datum, *end=NULL;
time_t t=time(NULL); time_t t=time(NULL);
for(int i=0;i<strlen(Dnes_Datum);i++){
if((Dnes_Datum[i]>='0'&&Dnes_Datum[i]<='9')||Dnes_Datum[i]==' '||Dnes_Datum[i]=='\n');
else {
printf("Neplatny datum.\n");
while(Dnes_Datum[i]!='\n'){
i++;
}
i++;
counter--;
start+=i;
}
}
for(int idx=0;idx<counter;idx++){ for(int idx=0;idx<counter;idx++){
int d1,d2,d3;
int res=sscanf(start,"%d %d %d",&d1,&d2,&d3);
if(res==0){
printf("Neplatny datum.\n\n");
while((*start)!='\n')start++;
start++;
continue;
}
struct tm *D_D; struct tm *D_D;
struct tm *NW_D; struct tm *NW_D;
@ -65,4 +60,3 @@ int main(){
} }

View File

@ -7,15 +7,13 @@
while(1){ while(1){
Sym=getchar(); Sym=getchar();
if(Sym=='\n'){ if(Sym=='\n'){
counter++; counter++; // пыдраховуэ рядки коли знаходить ентер
} }
if(Sym==EOF){ if(Sym==EOF){
//counter++;
break; break;
} }
else if(Sym<='Z'&&Sym>='A')Sym +=32; else if(Sym<='Z'&&Sym>='A')Sym +=32;
else if(Sym<='z'&&Sym>='a')Sym-=32; else if(Sym<='z'&&Sym>='a')Sym-=32;
//counter++;
OutSym=Sym; OutSym=Sym;
putchar(OutSym); putchar(OutSym);
} }

View File

@ -5,14 +5,14 @@
int main(){ int main(){
int value = 0; int value = 0; // це скыльки випила одна людина
int count = 0; int count = 0; // скыльки людий приймало участь
int pole[VELKOST_POLA]; int pole[VELKOST_POLA];
memset(pole,0,VELKOST_POLA*(sizeof(int))); memset(pole,0,VELKOST_POLA*(sizeof(int))); // вын даэ 3 парам. адрес куда . знак чим ми заповняэмо. розмыр поля в байтах.
int max_hodnota=0; int max_hodnota=0;
int idx=0; int idx=0; // номер учасника
while (1){ while (1){
int r=scanf("%d",&value); int r=scanf("%d",&value);
if(r!=1 || idx==VELKOST_POLA || value < 0){ if(r!=1 || idx==VELKOST_POLA || value < 0){
@ -20,7 +20,7 @@ int main(){
} }
pole[idx]=value; pole[idx]=value;
if (pole[idx] > max_hodnota){ if (pole[idx] > max_hodnota){
max_hodnota = pole[idx]; max_hodnota = pole[idx]; // Найбыльше число (Рекорд)
} }
idx++; idx++;
count++; count++;

View File

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

View File

@ -1,50 +1,101 @@
#include<math.h>
#include<stdio.h> #include<stdio.h>
#include<string.h> #include<string.h>
#include<time.h>
#include<stdlib.h> #include<stdlib.h>
int main(){ int main(){
char Dnes_Datum[30]; int ch=getchar();
int ch=getchar(),counter=0; char priklad[300];
for(int idx=0;ch!=EOF;idx++){ int count=0;
if(ch=='.'){
ch=' '; for(int idx=0;1;idx++){
} priklad[idx]=ch;
Dnes_Datum[idx]=ch;
if(ch=='\n'){ if(ch=='\n'){
counter++; count++;
} }
ch=getchar(); ch=getchar();
if(Dnes_Datum[idx]=='\n'&&ch=='\n'){ if((priklad[idx]=='\n'&&ch=='\n')||ch==EOF){ // якщо вын знаходить 2 ентера або ЕОФ то воно закынчуэ считуват з рядка
break; break;
} }
} }
char *start=Dnes_Datum, *end=NULL; char *start=priklad, *end=NULL;
time_t t=time(NULL);
for(int idx=0;idx<counter;idx++){ for(int c=0;c<count;c++){
struct tm *D_D; int skip=0,z=0;
struct tm *NW_D;
D_D = localtime(&t); for(int idx=0;start[idx]!='\n';idx++){
D_D->tm_mday=strtol(start,&end,10); if(start[idx]=='+'||start[idx]=='-'||start[idx]=='*'||start[idx]=='/'){
start=end; z=1;
D_D->tm_mon=strtol(start,&end,10)-1; }
start=end; if((start[idx]<'0'||start[idx]>'9')&&start[idx]!=' '&&start[idx]!='='&&start[idx]!='+'&&start[idx]!='-'&&start[idx]!='*'&&start[idx]!='/'&&start[idx]!='.'){
D_D->tm_year=strtol(start,&end,10)-1900; skip=1;
start=end+1; printf("CHYBA\n");
time_t nex_week=mktime(D_D)+604800; while((*start)!='\n')start++; //це все перевыряэ на дыйснысть того що я ввыв
start++;
NW_D=localtime(&nex_week); break;
}
printf("%d.%d.%d\n\n",NW_D->tm_mday, NW_D->tm_mon+1,NW_D->tm_year+1900);
} }
return EXIT_SUCCESS;
if(skip==1){
continue;
}
if(z==0){
while((*start)!='\n')start++;
start++;
printf("CHYBA\n");
continue;
}
float num1=strtof(start,&end);
if(end==start){
printf("KONIEC\n");
}
while((*start)!='+'&&(*start)!='-'&&(*start)!='/'&&(*start)!='*'){
start++;
}
char znak=(*start); //операцыю яку ми проводимо чи це мынус чи це плюс ы тд
start++;
float num2=strtof(start,&end);
start=end;
while(((*start)<'0'||(*start)>'9')&&(*start)!='-'){
start++;
}
float vysledok2=strtof(start,&end);
start=end;
start++;
//printf("%f\n",vysledok2);
float vysledok=0;
/*if(num2==0&&znak=='/'){
printf("CHYBA\n");
}*/
if(znak=='-'){
vysledok=num1-num2;
}
else if(znak=='+'){
vysledok=num1+num2;
}
else if(znak=='*'){
vysledok=num1*num2;
}
else if(znak=='/'){
vysledok=num1/num2;
}
vysledok=(round(vysledok*100))/100;//заукруглюэ
if (vysledok2-vysledok < 0.001 && vysledok2-vysledok > -0.001){ //
printf("OK\n");
}
else{
printf("ZLE\n");
}
}
// printf("%.3f\n", vysledok);
return EXIT_SUCCESS;
} }