Initialization#
This commit is contained in:
		
							parent
							
								
									a7e68d397f
								
							
						
					
					
						commit
						272be6c4b2
					
				
							
								
								
									
										93
									
								
								a1/program.c
									
									
									
									
									
								
							
							
						
						
									
										93
									
								
								a1/program.c
									
									
									
									
									
								
							@ -8,55 +8,62 @@ int main() {
 | 
			
		||||
    double num1, num2, result, expected_result;
 | 
			
		||||
    char op;
 | 
			
		||||
 | 
			
		||||
    // Read the input line
 | 
			
		||||
    fgets(line, sizeof(line), stdin);
 | 
			
		||||
 | 
			
		||||
    // Remove any spaces between symbols
 | 
			
		||||
    for (int i = 0; line[i] != '\0'; i++) {
 | 
			
		||||
        if (isspace(line[i])) {
 | 
			
		||||
            for (int j = i; line[j] != '\0'; j++) {
 | 
			
		||||
                line[j] = line[j + 1];
 | 
			
		||||
            }
 | 
			
		||||
            i--; // Move back one step to recheck the current character
 | 
			
		||||
    while (fgets(line, sizeof(line), stdin) != NULL) {
 | 
			
		||||
        if (line[0] == '\n') {
 | 
			
		||||
            // Stop when the user enters a blank line
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Parse the line
 | 
			
		||||
    sscanf(line, "%lf%c%lf=%lf", &num1, &op, &num2, &expected_result);
 | 
			
		||||
        num1 = num2 = result = 0;
 | 
			
		||||
        op = '\0';
 | 
			
		||||
 | 
			
		||||
    // Check if the input is valid
 | 
			
		||||
    if (op != '+' && op != '-' && op != '*' && op != '/') {
 | 
			
		||||
        printf("CHYBA\n");
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
        // Remove any spaces between symbols
 | 
			
		||||
        for (int i = 0; line[i] != '\0'; i++) {
 | 
			
		||||
            if (isspace(line[i])) {
 | 
			
		||||
                for (int j = i; line[j] != '\0'; j++) {
 | 
			
		||||
                    line[j] = line[j + 1];
 | 
			
		||||
                }
 | 
			
		||||
                i--; // Move back one step to recheck the current character
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    // Check for division by zero
 | 
			
		||||
    if (op == '/' && num2 == 0) {
 | 
			
		||||
        printf("ZLE\n");
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
        // Parse the line
 | 
			
		||||
        sscanf(line, "%lf%c%lf=%lf", &num1, &op, &num2, &expected_result);
 | 
			
		||||
 | 
			
		||||
    // Perform the calculation
 | 
			
		||||
    switch (op) {
 | 
			
		||||
        case '+':
 | 
			
		||||
            result = num1 + num2;
 | 
			
		||||
            break;
 | 
			
		||||
        case '-':
 | 
			
		||||
            result = num1 - num2;
 | 
			
		||||
            break;
 | 
			
		||||
        case '*':
 | 
			
		||||
            result = num1 * num2;
 | 
			
		||||
            break;
 | 
			
		||||
        case '/':
 | 
			
		||||
            result = num1 / num2;
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
        // Check if the input is valid
 | 
			
		||||
        if (op != '+' && op != '-' && op != '*' && op != '/') {
 | 
			
		||||
            printf("CHYBA\n");
 | 
			
		||||
            continue;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    // Check if the result is correct
 | 
			
		||||
    if (result == expected_result) {
 | 
			
		||||
        printf("OK\n");
 | 
			
		||||
    } else {
 | 
			
		||||
        printf("ZLE\n");
 | 
			
		||||
        // Check for division by zero
 | 
			
		||||
        if (op == '/' && num2 == 0) {
 | 
			
		||||
            printf("ZLE\n");
 | 
			
		||||
            continue;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Perform the calculation
 | 
			
		||||
        switch (op) {
 | 
			
		||||
            case '+':
 | 
			
		||||
                result = num1 + num2;
 | 
			
		||||
                break;
 | 
			
		||||
            case '-':
 | 
			
		||||
                result = num1 - num2;
 | 
			
		||||
                break;
 | 
			
		||||
            case '*':
 | 
			
		||||
                result = num1 * num2;
 | 
			
		||||
                break;
 | 
			
		||||
            case '/':
 | 
			
		||||
                result = num1 / num2;
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Check if the result is correct
 | 
			
		||||
        if (result == expected_result) {
 | 
			
		||||
            printf("OK\n");
 | 
			
		||||
        } else {
 | 
			
		||||
            printf("ZLE\n");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user