Я написал следующий код (это caclulator, который получает 1 из 3 операторов (+/-/$) и 2 натуральных числа (a, b) и calcultes (a op b) (в размере $ б определяется как а + (а + 1) + ... + (б-1) + б для < = Ь и а> Ь оно не определено):Программа печатается поздно (c)
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Please choose an operation (+/-/$): ");
char op;
scanf("%c", &op);
while (op != '+' && op != '-' && op != '$') {
printf("\nInvalid operation. Please choose again: ");
scanf("%c", &op);
}
int a;
int b;
char term;
printf("\nPlease enter the first operand: ");
int scanCheck = scanf("%d%c", &a, &term);
while (scanCheck != 2 || term != '\n' || a < 0) {
printf("\nInvalid number\n. Please enter the first operand: ");
scanCheck = scanf("%d%c", &a, &term);
}
printf("\nPlease enter the second operand: ");
scanCheck = scanf("%d%c", &b, &term);
while (scanCheck != 2 || term != '\n' || b < 0) {
printf("\nInvalid number\n. Please enter the first operand: ");
scanCheck = scanf("%d%c", &b, &term);
}
if (op == '$' && a > b)
printf("\nThe result is: Not Valid");
int result;
switch (op) {
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '$':
result = 0;
while (a <= b) {
result += a;
a++;
}
break;
}
printf("\nThe result is: %d", result);
return 0;
}
Моя проблема заключается в том, что при запуске программы он ничего не печатает, но после ввода программы (например, +, 3, 4) она печатает строки, которые она должна была напечатать ранее (с правильным результатом). Почему это происходит? Я исправлю это? FYI Я использую eclipse Juno с компилятором minGW.
Вопрос: Вы уверены, что хотите '' $ '', а не' '&''? –
@Sourav, основанный на том, что он сказал, что мне кажется, что это не так, и здесь (+/-/&), который должен быть (+/-/$) –
@terencehill правильный, он должен быть $, конечно. .. будет отредактирован сразу – noamgot