计算器C:输入操作符和整数来执行计算

所以我理解了制作一个简单计算器的基本概念,例如向用户询问两个int值a,b,然后询问他们想要使用哪个操作符号。 但我想创造一些更复杂和更实用的东西。

我的方法是分别扫描int值和运算符号,所以首先它会扫描到int,然后转换为字符串? 输入如下:1(enter)'/'(enter)2(enter)'+'(enter)4(enter)然后用户可以按x结束并计算。

 int main()
{
int array_int[30];
char array_operators[30];
int hold_value = 0;
int i = 0;
printf("Enter your calculations, press enter after each number and operator is entered n");
while(1==1){
    scanf("%i",&hold_value); //Use this to decide which array to put it in.
    if(isdigit(hold_value)){
      array_int[i] = hold value // Check if input will be an int or char to decide which array to store it in??

}

我仍然需要一种方式来结束用户输入的循环,而且我知道我在条件语句中加入的逻辑是没有意义的,但我是C新手,并且我不知道所有选项。 希望我的目标足够清晰,足以让你们帮助我。 谢谢


改变你当前的代码,

int main()
{
  int array_int[30]={0};
  char array_operators[30]={0}; //Initialize variables. It is a good practice
  char hold_value; //hold value must be a char
  int i = 0, j = 0;
  printf("Enter your calculations, press enter after each number and operator is entered, press Q to quit n");
  while(1){
      scanf(" %c",&hold_value); //Note the space before %c. It skips whitespace characters

      if(hold_value=='Q') //break the loop if character is Q
        break;
      if(isdigit(hold_value)){ // If input is a digit
        array_int[i++] = hold_value-'0'; //Store the integer in array_int
      }
      else{ //Input is a character
        array_operators[j++] = hold_value;
      }

  }

  //Calculate from here

  return 0;
}

如果你想在没有任何东西返回时结束循环,只需使用return(0)。
如果你想结束程序而不是退出(0)。
另请检查以下内容:
http://forum.codecall.net/topic/50733-very-simple-c-calculator/

链接地址: http://www.djcxy.com/p/65007.html

上一篇: Calculator C: inputting both operator signs and integers to perform calculations

下一篇: Optimizing x64 assembler MUL loop