c - 如何建立一个符号,一个字符作为循环的条件



我正在尝试在我的代码(一个简单的计算器(上放置一个循环,如果您尝试将某个数字除以 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 在任何其他情况下为 '/' 时才执行。

最新更新