(C)能够取消和退出的整数计算器

时间:2014-10-27 12:50:28

标签: c integer calculator

我对编码很新,我应该编写一个整数计算器。到目前为止,我已经完成了所有设置但需要能够通过键入以" q"开头的单词来退出程序。随时。我还需要能够取消该程序,即通过键入以" c"开头的任何单词开始新的计算。 代码是这个

include <stdio.h>
include <stdlib.h>
int main()  {
    int running = 1;
    while (running==1) {
    int x = 0;
    int y = 0;
    int r = 0;
    char o;
    printf("*****INTEGER CALCULATOR*****\n\n\n");
    printf("enter x: ");
    scanf("%d",&x);
    printf("enter y: ");
    scanf("%d",&y);
    printf("%d %d\n",x,y);
    printf("+ - * / %% : ");
    scanf("%s",&o);
    if (o == '+') {
        r = x+y;
    }
    else if (o == '-')  {
        r = x-y;
    }
    else if(o == '*')   {
        r = x*y;
    }
    else if(o == '/')   {
        if (x==0&&y==0) {
            printf("UNDEFINED\n");
        }
        else if(y==0)   {
            printf("ERROR: DIVISION BY ZERO\n");
        }
        else    {
            r= x/y;
        }
    }
    else if(o == '%')   {
        r= x%y;
    }
    else    {
        printf("OPERATOR ERROR\n");
    }
    printf("Operation: %c\n",o);
    printf("RESULT: %d\n\n\n",r);
    }
    return 0;

2 个答案:

答案 0 :(得分:0)

以下是根据您的需求编辑的程序。代码中的注释中解释了所有新内容:

#include <stdio.h>
#include <stdlib.h>  // Don't forget # before include!
int main()  {
    char ch = NULL; //character for storing 'q' or 'c'
    do{
    int x = 0;
    int y = 0;
    int r = 0;
    char o;
    printf("*****INTEGER CALCULATOR*****\n\n\n");
    printf("enter x: ");
    scanf("%d",&x);
    printf("enter y: ");
    scanf("%d",&y);
    printf("%d %d\n",x,y);
    printf("+ - * / %% : ");
    scanf(" %c",&o);   //%c not %s as o is a char
    if (o == '+')
        r = x+y;
    else if (o == '-')
        r = x-y;
    else if(o == '*')
        r = x*y;
    else if(o == '/')
    {
        if (x==0&&y==0) {
            printf("UNDEFINED\n");
        }
        else if(y==0)   {
            printf("ERROR: DIVISION BY ZERO\n");
        }
        else    {
            r= x/y;
        }
    }
    else if(o == '%')
        r= x%y;
    else    {
        printf("OPERATOR ERROR! Try again:\n");
    }
    printf("Operation: %c\n",o);
    printf("RESULT: %d\n\n\n",r);

    while(1)  //infinite loop
    {
        printf("Enter 'c' for calculating once more and q to exit");
        scanf(" %c",&ch);
        if(ch=='c' || ch=='q') // if input is c or q
            break;             //break out of infinite loop
        else                   // if input is not c or q
            printf("Invalid option.Try again\n");//print this and continue the infinite loop
    }
    //ch is now sure to be either c or q when execution reaches here
    }while(ch!='q'); // loop until ch is not q
    return 0;
}

答案 1 :(得分:0)

为了简单起见,我会使用 gets()或** getChar()函数通过对所需值执行条件检查来读入变量和进程。