c - 虽然声明不起作用 C

标签 c while-loop do-while

我正在学习 C,我正在尝试制作一个基本的计算器,但在使用 while 语句时遇到了一些问题。我尝试过多种方式,但它从不重复,只是完成脚本。

有什么想法吗?

//
//  main.c
//  Calculator
//
//  Created by Austen Patterson on 2013-06-27.
//  Copyright (c) 2013 Austen Patterson. All rights reserved.
//

#include <stdio.h>
#include <stdbool.h>

int main()
{
    int number[100];
    int operator = '0';
    int doAgainAnswer = '0';
    bool doAgain;
    do{ 
    printf("Please enter your first number:");
    scanf("%d", &number[1]);
    printf("\nYou entered %d as your first number. Please enter your second: ", number[1]);
    scanf("%d", &number[2]);
    printf("\nYou entered %d as your second number.", number[2]);
    printf("\nYour numbers are now %d and %d", number[1], number[2]);
    printf("\nNow enter your operator.\n1 for addition\n2 for subraction\n3 for multiplication\n4 for division.\n");
    scanf("%d", &operator);

    if(operator == 1){
        int finished = number[1] + number[2];
        printf("\n\n%d \+ %d is: %d", number[1], number[2], finished);

    }
    if(operator == 2){
        int finished = number[1] - number[2];
        printf("\n\n%d \- %d is: %d", number[1], number[2], finished);

    }
    if(operator == 3){
        int finished = number[1] * number[2];
        printf("\n\n%d \* %d is: %d", number[1], number[2], finished);

    }
    if(operator == 4){
        int finished = number[1] / number[2];
        printf("\n\n%d \/ %d is: %d", number[1], number[2], finished);
    }

        printf("\nWant to continue?\n 1 for Yes\n 2 for No\nAnswer: ");
        scanf("%d", &doAgainAnswer);
        if(doAgainAnswer == 1) {
          doAgain = '1';
        } else {
          doAgain = '0';

        }
    }while(doAgain == '1');
}

最佳答案

编辑代码

#include <stdio.h>
#include <stdbool.h>

int main()
{
    int number[100];
    int operator = '0';
    int doAgainAnswer = 0;//edited
    int doAgain=0;//edited
    do{ 
    printf("Please enter your first number:");
    scanf("%d", &number[1]);
    printf("\nYou entered %d as your first number. Please enter your second: ", number[1]);
    scanf("%d", &number[2]);
    printf("\nYou entered %d as your second number.", number[2]);
    printf("\nYour numbers are now %d and %d", number[1], number[2]);
    printf("\nNow enter your operator.\n1 for addition\n2 for subraction\n3 for multiplication\n4 for division.\n");
    scanf("%d", &operator);

    if(operator == 1){
        int finished = number[1] + number[2];
        printf("\n\n%d \+ %d is: %d", number[1], number[2], finished);

    }
    if(operator == 2){
        int finished = number[1] - number[2];
        printf("\n\n%d \- %d is: %d", number[1], number[2], finished);

    }
    if(operator == 3){
        int finished = number[1] * number[2];
        printf("\n\n%d \* %d is: %d", number[1], number[2], finished);

    }
    if(operator == 4){
        int finished = number[1] / number[2];
        printf("\n\n%d \/ %d is: %d", number[1], number[2], finished);
    }

        printf("\nWant to continue?\n 1 for Yes\n 2 for No\nAnswer: ");
        scanf("%d", &doAgainAnswer);
        if(doAgainAnswer == 1) {
          doAgain = 1;//edited
        } else {
          doAgain = 0;//edited

        }
    }while(doAgain == 1);//edited
return 0;//edited
}

关于c - 虽然声明不起作用 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357511/

相关文章:

C: switch case with hex value 忽略前面的 0

c - 快速增加数字为 C 中的 mod 16

c - 使用霍夫曼编码的文本数据压缩

Python While循环计算最小公倍数

java - 为什么这个 while 循环不会中断?

C清除 double 数组的最佳方法

python - 如何在没有 k 的情况下进行随机采样,直到产生某个整数? (Python)

c# - 在C#中处理 “loop initialization”的其他方式

java - do while 循环后无法继续执行 main 方法

java - 应用 do while 循环