Update cv3/program.c
This commit is contained in:
		
							parent
							
								
									64bce2c153
								
							
						
					
					
						commit
						34832dacde
					
				| @ -44,8 +44,9 @@ void print_stack(struct stack *s) { | ||||
| int read(struct stack *s) { | ||||
|     char temp[100]; | ||||
| 
 | ||||
|     // Читаємо рядок з вводу
 | ||||
|     if (fgets(temp, sizeof(temp), stdin) == NULL) { | ||||
|         return 0; | ||||
|         return 0; // Помилка при читанні
 | ||||
|     } | ||||
| 
 | ||||
|     // Перевірка на пустий рядок
 | ||||
| @ -54,27 +55,32 @@ int read(struct stack *s) { | ||||
|         return 1; // Повертаємо 1, щоб продовжити цикл
 | ||||
|     } | ||||
| 
 | ||||
|     // Завершення програми
 | ||||
|     if (strcmp(temp, "end\n") == 0) { | ||||
|         return 0; | ||||
|         return 0;  | ||||
|     } | ||||
| 
 | ||||
|     float value; | ||||
|     int scan = sscanf(temp, "%f", &value); | ||||
| 
 | ||||
|     // Якщо це число
 | ||||
|     if (scan == 1) { | ||||
|         push_stack(s, value); | ||||
|         print_stack(s); // Виводимо стек після додавання
 | ||||
|     } else { | ||||
|         // Якщо це оператор
 | ||||
|         switch (temp[0]) { | ||||
|             case '+': | ||||
|             case '-': | ||||
|             case '*': | ||||
|             case '/': { | ||||
|                 // Перевірка на недостатню кількість значень у стеку
 | ||||
|                 if (s->size < 2) { | ||||
|                     printf("Not enough values in the stack for operation! Exiting program.\n"); | ||||
|                     printf("no input\n"); | ||||
|                     exit(1); // Вихід з програми при недостатніх значеннях
 | ||||
|                 } | ||||
|                 float b = pop_stack(s); // Спочатку витягуємо значення
 | ||||
| 
 | ||||
|                 float b = pop_stack(s); // Витягуємо значення
 | ||||
|                 float a = pop_stack(s); | ||||
| 
 | ||||
|                 float result; | ||||
| @ -97,11 +103,10 @@ int read(struct stack *s) { | ||||
|             default: | ||||
|                 printf("Invalid input. Please enter a number or an operator. Exiting program.\n"); | ||||
|                 exit(1); // Вихід з програми при невірному введенні
 | ||||
|                 break; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return 1; | ||||
|     return 1; // Продовжуємо цикл
 | ||||
| } | ||||
| 
 | ||||
| int main() { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user