funguje
This commit is contained in:
parent
73a040fa6b
commit
3db3c1b900
BIN
du4/program
BIN
du4/program
Binary file not shown.
124
du4/program.c
124
du4/program.c
@ -5,12 +5,14 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
int i,j;
|
int main(){
|
||||||
|
|
||||||
|
int i,j;
|
||||||
double number1, number2, summary,msum;
|
double number1, number2, summary,msum;
|
||||||
char operand, equ;
|
char operand, equ;
|
||||||
float rsum=0;
|
float rsum=0;
|
||||||
/* char input[1000];
|
/* char input[1000];
|
||||||
char num_str[30] = {0};
|
char num_str[30] = {0};
|
||||||
float numbers[3];
|
float numbers[3];
|
||||||
fgets(input, 999, stdin);
|
fgets(input, 999, stdin);
|
||||||
@ -37,7 +39,7 @@ int main() {
|
|||||||
*/
|
*/
|
||||||
char* input = calloc(1000, 1);
|
char* input = calloc(1000, 1);
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
input = fgets(input, 1000, stdin);
|
input = fgets(input, 1000, stdin);
|
||||||
if (input == NULL) break;
|
if (input == NULL) break;
|
||||||
|
|
||||||
@ -45,9 +47,9 @@ int main() {
|
|||||||
if (input[0] == '\n' || input[0] == EOF || strlen(input) <= 0)
|
if (input[0] == '\n' || input[0] == EOF || strlen(input) <= 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
float values[3] = {0};
|
float values[3] = {0};
|
||||||
char operation = 0;
|
char operation = 0;
|
||||||
|
|
||||||
int k = 0;
|
int k = 0;
|
||||||
int num = strlen(input);
|
int num = strlen(input);
|
||||||
for (int i = 0; i < num; i++) {
|
for (int i = 0; i < num; i++) {
|
||||||
@ -58,7 +60,7 @@ int main() {
|
|||||||
if (isalpha(input[i]))
|
if (isalpha(input[i]))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
if (i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || (input[i] == '-' && isdigit(input[i + 1])))) {
|
if (i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || (input[i] == '-' && isdigit(input[i + 1])))) {
|
||||||
char temp[100] = {0};
|
char temp[100] = {0};
|
||||||
for (int j = 0; i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || input[i] == '-'); j++) {
|
for (int j = 0; i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || input[i] == '-'); j++) {
|
||||||
@ -73,54 +75,26 @@ int main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (k != 3) {
|
if (k != 3) {
|
||||||
printf("CHYBA\n");
|
printf("CHYBA\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (operation == 0 && values[1] < 0) {
|
if (operation == 0 && values[1] < 0) {
|
||||||
operation = '-';
|
operation = '-';
|
||||||
values[1] = abs(values[1]);
|
values[1] = abs(values[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
float result = 0;
|
float result = 0;
|
||||||
|
|
||||||
switch (operation) {
|
|
||||||
case '+': {
|
|
||||||
result = values[0] + values[1];
|
////////////////////////////////////////////////
|
||||||
break;
|
|
||||||
}
|
if((operand == '/') && (number2 == 0)){
|
||||||
case '-': {
|
|
||||||
result = values[0] - values[1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case '/': {
|
|
||||||
result = values[0] / values[1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case '*': {
|
|
||||||
result = values[0] * values[1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
printf("CHYBA\n");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
char result_string[50];
|
|
||||||
sprintf(result_string, "%.2f", result);
|
|
||||||
result = atof(result_string);
|
|
||||||
|
|
||||||
if (result == values[2])
|
|
||||||
printf("OK\n");
|
|
||||||
else
|
|
||||||
printf("ZLE\n");
|
|
||||||
}
|
|
||||||
if((operand == '/') && (number2 == 0)){
|
|
||||||
printf("Nulou sa nedá deli<6C>");
|
printf("Nulou sa nedá deli<6C>");
|
||||||
}
|
}
|
||||||
if(operand !='+' && operand !='-' && operand !='*' && operand !='/'){
|
if(operand !='+' && operand !='-' && operand !='*' && operand !='/'){
|
||||||
@ -128,22 +102,35 @@ int main() {
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
//msum=values[2];
|
msum=values[2];
|
||||||
if(operand=='+'){
|
if(operation=='+'){
|
||||||
// rsum=values[0]+values[1];
|
rsum=values[0]+values[1];
|
||||||
char rmsum[50];
|
char rmsum[50];
|
||||||
sprintf(rmsum, "%.2f", msum);
|
sprintf(rmsum, "%.2f", msum);
|
||||||
msum = atof(rmsum);
|
msum = atof(rmsum);
|
||||||
if(msum==rsum){
|
if(msum==rsum){
|
||||||
//printf("OK\n");
|
printf("OK\n");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
//printf("ZLE\n");
|
printf("ZLE\n");
|
||||||
}
|
}
|
||||||
//printf("%lf\n",rsum);
|
printf("%lf\n",rsum);
|
||||||
}
|
}
|
||||||
else if(operand=='-'){
|
else if(operation=='-'){
|
||||||
// rsum=values[0]-values[1];
|
rsum=values[0]-values[1];
|
||||||
|
char rmsum[50];
|
||||||
|
sprintf(rmsum, "%.2f", msum);
|
||||||
|
msum = atof(rmsum);
|
||||||
|
if(msum==rsum){
|
||||||
|
printf("OK\n");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
printf("ZLE\n");
|
||||||
|
}
|
||||||
|
printf("%lf\n",rsum);
|
||||||
|
}
|
||||||
|
else if(operation=='*'){
|
||||||
|
rsum=values[0]*values[1];
|
||||||
char rmsum[50];
|
char rmsum[50];
|
||||||
sprintf(rmsum, "%.2f", msum);
|
sprintf(rmsum, "%.2f", msum);
|
||||||
msum = atof(rmsum);
|
msum = atof(rmsum);
|
||||||
@ -151,37 +138,22 @@ int main() {
|
|||||||
//printf("OK\n");
|
//printf("OK\n");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
//printf("ZLE\n");
|
printf("ZLE\n");
|
||||||
}
|
}
|
||||||
//printf("%lf\n",rsum);
|
printf("%lf\n",rsum);
|
||||||
}
|
}
|
||||||
else if(operand=='*'){
|
else if(operation=='/'){
|
||||||
// rsum=values[0]*values[1];
|
rsum=values[0]/values[1];
|
||||||
char rmsum[50];
|
char rmsum[50];
|
||||||
sprintf(rmsum, "%.2f", msum);
|
sprintf(rmsum, "%.2f", msum);
|
||||||
msum = atof(rmsum);
|
msum = atof(rmsum);
|
||||||
if(msum==rsum){
|
if(msum==rsum){
|
||||||
//printf("OK\n");
|
printf("OK\n");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
//printf("ZLE\n");
|
printf("ZLE\n");
|
||||||
}
|
}
|
||||||
//printf("%lf\n",rsum);
|
printf("%lf\n",rsum);
|
||||||
}
|
}
|
||||||
else if(operand=='/'){
|
|
||||||
// rsum=values[0]/values[1];
|
|
||||||
char rmsum[50];
|
|
||||||
sprintf(rmsum, "%.2f", msum);
|
|
||||||
msum = atof(rmsum);
|
|
||||||
if(msum==rsum){
|
|
||||||
//printf("OK\n");
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
//printf("ZLE\n");
|
|
||||||
}
|
|
||||||
//printf("%lf\n",rsum);
|
|
||||||
}
|
}
|
||||||
free(input);
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user