diff --git a/du3/program.c b/du3/program.c index 7f3a86b..83a0772 100644 --- a/du3/program.c +++ b/du3/program.c @@ -27,20 +27,16 @@ void push_stack(struct stack *s, float value) { void p_stack(struct stack *s) { for (int i = 0; i < s->size; i++) { - printf("%.2f", s->values[i]); + (fabsf(s->values[i] - (int)s->values[i]) < 1e-6) ? + printf("%d", (int)s->values[i]) : printf("%g", s->values[i]); if (i < s->size - 1) printf(" "); } printf("\n"); } -void p_number(float value) { - (fabsf(value - (int)value) < 1e-6) ? printf("%d", (int)value) : printf("%g", value); -} - - float remove_stack(struct stack *s) { if (s->size <= 0) { - printf("Chyba: prazdny zasobnik.\n"); + printf("Chyba: prázdny zásobník.\n"); exit(1); } return s->values[--s->size]; @@ -50,9 +46,18 @@ int main() { struct stack mystack = { .size = 0 }; char input[100]; - while (fgets(input, sizeof(input), stdin)) { - input[strcspn(input, "\n")] = 0; - if (!*input) continue; + while (1) { + printf("> "); + fflush(stdout); + + if (!fgets(input, sizeof(input), stdin)) break; + + input[strcspn(input, "\n")] = 0; + + if (!*input) { + printf("no input \n"); + break; + } char *endptr; float value = strtof(input, &endptr);