【发布时间】:2017-11-16 19:19:43
【问题描述】:
我不知道我的代码出了什么问题,它又重复了一次。
do {
scanf("%c", &operacao);
//Tratamento de erro (Validando a informacão vinda do usuário
if ((operacao != '*') && (operacao != '+') && (operacao != '-')) {
printf("---------------------------------------\n");
printf("***** MENSAGEM DE ERRO *****\n");
printf("---------------------------------------\n");
printf("Você digitou um valor inválido!\n");
printf("Por favor, digite + para soma, - para subtração * para multiplicar ou / para dividir!\n");
}
} while ((operacao != '*') && (operacao != '+') && (operacao != '-'));
【问题讨论】:
-
听起来您可能需要学习如何使用调试器来单步调试您的代码。使用好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏差在哪里。如果您要进行任何编程,这是必不可少的工具。延伸阅读:How to debug small programs
-
1.阅读后打印operacao。 2. 歌剧是什么类型的?打印该值将帮助您理解 while 循环。
-
既然你标记为 C++,你应该考虑
cin >> c而不是scanf。 -
需要查看
scanf的返回值。scanf返回参数的数量satisfied 或 -1 如果有错误。不要相信用户输入正确的数据。