lsdsg 发表于 2021-10-8 17:39:05

c语言计算机,大佬们看看哪不对

【问题描述】

编程实现简易的计算器:读入两个整数运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,
其中op可以是+,-,*,/。



【输入形式】

控制台输入运算数和运算符:
1.首先输入以空格分隔的两个整数,分别是data1和data2;
2.输入一个字符作为运算符op,op可以是“+”,“-”,“*”,“/”;。
输入时,data1、data2、op之间各留有一个空格。具体格式见样例输入。



【输出形式】

控制台输出运算结果。作除法运算时,如果data2为0,输出提示“error”,若能够整除,则输出为整数,否则输出结果小数点后应保留两位有效数字。



【样例输入1】

23 5 *



【样例输出1】

115



【样例输入2】

20 0 /



【样例输出2】

error



int main()
{
        int data1,data2;
        float sum=0;
        char op;
        scanf("%d %d %c",&data1,&data2,&op);
        switch(op){
        case '*':sum=data1*data2;break;
        case '-':sum=data1-data2;break;
        case '+':sum=data1+data2;break;
        case '/':
                        {
                       
                        if(data2!=0)
                       {
                               sum=data1/data2;break;
                       }
                       else
                       {
                               
                               printf("error");
                               break;
                       }}
        default:break;
}
        printf("%d",sum);
        return 0;
}



输出全是0

傻眼貓咪 发表于 2021-10-8 19:05:01

本帖最后由 傻眼貓咪 于 2021-10-8 19:07 编辑

#include <stdio.h>

int main(){
    int data1, data2;
    char op;
    scanf("%d %d %c", &data1, &data2, &op);
    if(!data2 && op == '/') printf("error");
    else
      switch(op){
            case '+':
                printf("%d", data1+data2);
                break;
            case '-':
                printf("%d", data1-data2);
                break;
            case '*':
                printf("%d", data1*data2);
                break;
            case '/':
                printf("%.2f", (float)data1/(float)data2);
                break;}
    return 0;
}
23 5 *
115

20 0 /
error
页: [1]
查看完整版本: c语言计算机,大佬们看看哪不对