我正在尝试在我的代码(一个简单的计算器(上放置一个循环,如果您尝试将某个数字除以 0,它会重新启动。我在这里呆了几个小时,但无法看到问题。顺便说一下,我是初学者。
尝试使用do while,使用while和使用if,每次程序都简单地忽略我的条件。现在,即使没有满足我建立的条件,它每次都在循环。
如何建立"N2=0 并且操作为'/'"作为条件?
#include <stdio.h>
#include <stdlib.h>
int main() {
float N1, N2, resultado;
char operacao;
printf("Ola usuario! n");
printf("Para comecar, por favor digite o primeiro numero: ");
scanf_s("%f", &N1);
printf("Digite o segundo numero: ");
scanf_s("%f", &N2);
printf("n Qual operacao aritmetica deseja realizar hoje? n");
printf("Escolha um dos 4 simbolos'+,-,* ou /': ");
scanf_s(" %c", &operacao);
printf("n");
while ((N2 = 0) || (operacao == '/')); {
printf("Operacao nao suportada! n");
printf("Digite novamente o segundo numero: n");
scanf_s("%f", &N2);
printf("Escolha um dos 4 simbolos'+,-,* ou /': ");
scanf_s(" %c ", &operacao);
}
switch (operacao)
{
case '+':
resultado = N1 + N2;
break;
case '-':
resultado = N1 - N2;
break;
case '*':
resultado = N1 * N2;
break;
case '/':
resultado = N1 / N2;
break;
}
printf("n O resultado da operacao escolhida e: %.1f", resultado);
printf("nn");
system("pause");
return 0;
}
更改 while 循环,如下所示
while (N2 == 0 && operacao == '/') {
printf("Operacao nao suportada! n");
printf("Digite novamente o segundo numero: n");
scanf("%f", &N2);
printf("Escolha um dos 4 simbolos'+,-,* ou /': ");
scanf("%c", &operacao);
}
删除了流浪的 ; 在 而 (N2 == 0 && operacao == '/'(这导致了一个无限循环,阻止它进入我们想要执行的实际主体。更改了 while 循环条件,因为我们希望它仅在 N2 为零 'AND' operacao 在任何其他情况下为 '/' 时才执行。