C计算器,如果有的话

C计算器,如果有的话,c,calculator,C,Calculator,我想用“IF”和“IF-ELSE”条件制作一个简单的C计算器,它不允许我选择运算符(“+,-,*或/”),只显示我的最后一个IF条件 #include <stdio.h> int main(){ printf("\tCalculadora\n\n"); int num1, num2, total; char oper; printf("Introduza o primeiro numero: \n"); scanf("%d", &num

我想用“IF”和“IF-ELSE”条件制作一个简单的C计算器,它不允许我选择运算符(“+,-,*或/”),只显示我的最后一个IF条件

#include <stdio.h>
int main(){
    printf("\tCalculadora\n\n");
    int num1, num2, total;
    char oper;
    printf("Introduza o primeiro numero: \n");
    scanf("%d", &num1);
    printf("Introduza o segundo numero: \n");
    scanf("%d", &num2);
    printf("Escolha a operacao que quer realizar!\n\n");
    scanf("%c", &oper);
    if(oper == '+'){
        printf("O resultado e: %d", num1+num2);
    }
    else if(oper == '-'){
        printf("O resultado e: %d", num1-num2);
    }
    else if(oper == '*'){
        printf("O resultado e: %d", num1*num2);
    }
    else{
        printf("O resultado e: %d", num1/num2);
    }
    getchar();
    getchar();
}
#包括
int main(){
printf(“\tCalculadora\n\n”);
整数num1,num2,总计;
字符操作器;
printf(“引见编号:\n”);
scanf(“%d”&num1);
printf(“引见编号:\n”);
scanf(“%d”&num2);
printf(“Escolha a Operaco que quer Realisr!\n\n”);
scanf(“%c”、&oper);
如果(操作=='+'){
printf(“O结果O e:%d”,num1+num2);
}
else if(oper=='-'){
printf(“O结果O e:%d”,num1-num2);
}
else if(oper=='*'){
printf(“O结果O e:%d”,num1*num2);
}
否则{
printf(“O结果O e:%d”,num1/num2);
}
getchar();
getchar();
}
这个

scanf("%c", &oper);
应改为

scanf(" %c", &oper);
所以你让
scanf()
忽略前面的
scanf()
s留下的
'\n'

我避免
scanf()
和它的近亲。这是一个使用
fgets()
进行输入的计算器版本。它还对操作数使用
double

#include <stdio.h>
#include <stdlib.h>

#define ISIZE   100      // arbitrarily large

int main(){
    double num1, num2;
    int oper;
    char inp[ISIZE+1] = "";
    printf("\tCalculadora\n\n");

    printf("Introduza o primeiro numero: ");            // 1st operand
    fgets (inp, ISIZE, stdin);
    num1 = atof (inp);

    printf("Introduza o segundo numero: ");             // 2nd operand
    fgets (inp, ISIZE, stdin);
    num2 = atof (inp);

    printf("Escolha a operacao que quer realizar! ");   // operator
    fgets (inp, ISIZE, stdin);
    oper = inp[0];

    printf ("O resultado e: %f %c %f = ", num1, oper, num2);

    switch (oper) {
        case '+': printf("%f\n", num1+num2); break;
        case '-': printf("%f\n", num1-num2); break;
        case '*': printf("%f\n", num1*num2); break;
        case '/': if (num2!=0) printf("%f\n", num1/num2);
                  else printf ("Divisão por zero!\n");
                  break;
        default:  printf("Eu não sei o que operador\n");
    }
    return 0;
}
#包括
#包括
#定义ISIZE 100//任意大
int main(){
双num1,num2;
内部操作;
字符inp[ISIZE+1]=“”;
printf(“\tCalculadora\n\n”);
printf(“introza o primeiro numero:”;//第一个操作数
fgets(inp、ISIZE、stdin);
num1=atof(inp);
printf(“introza o segundo numero:”;//第二个操作数
fgets(inp、ISIZE、stdin);
num2=atof(inp);
printf(“Escolha a operacao que quer realizar!”);//运算符
fgets(inp、ISIZE、stdin);
oper=inp[0];
printf(“O resultado e:%f%c%f=”,num1,oper,num2);
开关(操作){
大小写“+”:printf(“%f\n”,num1+num2);break;
大小写'-':printf(“%f\n”,num1-num2);break;
大小写“*”:printf(“%f\n”,num1*num2);break;
案例“/”:如果(num2!=0)printf(“%f\n”,num1/num2);
else printf(“除数为零!\n”);
打破
默认值:printf(“Eu não sei o que operador\n”);
}
返回0;
}

我还试图将我的C语言知识应用到一个简单的计算器中,结果遇到了你的问题。为了尊重你的“如果……否则”要求,我提出了这个解决方案。我希望这有帮助

    #include <stdio.h>
void sayHello( ) {
    printf("Hello\n"); }
// to say hello to the user
int add( int num1, int num2) {
        num1 = num1 + num2;
        return num1;
}

int minus( int num1, int num2) {
        num1 = num1 - num2;
        return num1;
}

int times( int num1, int num2) {
        num1 = num1 * num2;
        return num1;
}

int divide( int num1, int num2) {
        num1 = num1 / num2;
        return num1;
}
// This is to declare the calculations
void flush_input(){
    int ch;
while ((ch = getchar()) != '\n' && ch != EOF); }
// This is to flush the scanf values
// Kudos to Huw Collingbourne, Udemy Teacher
int main(int argc, char **argv) {
        char c;
        char f;
        int n1;
        int n2;
        int total;

        // n1 = ' ';
        // n2 = ' ';

sayHello();

do { 
    c = ' ';
    printf("Insert the type of Calculation you want to make:\n");
    printf("A(d)dition, Subs(t)raction, Mu(l)tiplication, Di(v)ision: ");
        c = getchar();
if(c == 'd') {
    printf("\nInsert the first number:");
    scanf("%d", &n1);
    printf("Insert the second number:");
    scanf("%d", &n2);
    total = add( n1, n2 );
    printf("%d plus %d equals to %d\n", n1, n2, total );
    flush_input(); } else { 
        if( c == 't') {
        printf("insert the base number:");
        scanf("%d", &n1);
        printf("Insert the subtracting number:");
        scanf("%d", &n2);
        total = minus( n1, n2 );
        printf("The difference between %d and %d is %d\n", n1, n2, total );
        flush_input(); } else {
            if( c == 'l') {
            printf("insert the first number:");
            scanf("%d", &n1);
            printf("Insert second number:");
            scanf("%d", &n2);
            total = times( n1, n2 );
            printf("%d times %d equals %d\n", n1, n2, total );
            flush_input(); } else {
                if( c == 'v') {
                printf("insert the first number:");
                scanf("%d", &n1);
                printf("Insert second number:");
                scanf("%d", &n2);
                total = divide( n1, n2 );
                printf("%d divided by %d equals %d\n", n1, n2, total );
                flush_input();
                } else {
        printf("I couln't understand the instruction\n Reseting program\n");
                } 
            }
        }
    }
        f = ' ';
        printf("\nDo you wish to make another calculation?\n");

            printf("Choose (y)es or (n)ot: ");
            f = getchar();
            // scanf("%c", &c);
            getchar();
        } while( f != 'n' ); 
        printf("\nThat's all folks!\n");
    return 0;
}
#包括
void sayHello(){
printf(“Hello\n”);}
//向用户问好
整数相加(整数m1,整数m2){
num1=num1+num2;
返回num1;
}
整数减去(整数num1,整数num2){
num1=num1-num2;
返回num1;
}
整数倍(整数m1,整数m2){
num1=num1*num2;
返回num1;
}
整数除法(整数m1,整数m2){
num1=num1/num2;
返回num1;
}
//这是为了申报计算结果
void flush_输入(){
int-ch;
while((ch=getchar())!='\n'&&ch!=EOF);}
//这是为了刷新scanf值
//感谢我的老师胡·科林伯恩
int main(int argc,字符**argv){
字符c;
字符f;
int-n1;
int n2;
整数合计;
//n1='';
//n2='';
你好;
做{
c='';
printf(“插入要进行的计算类型:\n”);
printf(“A(d)dition,Subs(t)raction,Mu(l)tiplication,Di(v)ision:”);
c=getchar();
如果(c='d'){
printf(“\n插入第一个数字:”);
scanf(“%d”&n1);
printf(“插入第二个数字:”);
扫描频率(“%d”和“n2”);
总计=增加(n1,n2);
printf(“%d加上%d等于%d\n”,n1,n2,总计);
flush_input();}else{
如果(c=='t'){
printf(“插入基数:”);
scanf(“%d”&n1);
printf(“插入减法数字:”);
扫描频率(“%d”和“n2”);
总数=负(n1,n2);
printf(“在%d和%d之间的差异是%d\n”,n1,n2,总计);
刷新_input();}else{
如果(c=='l'){
printf(“插入第一个数字:”);
scanf(“%d”&n1);
printf(“插入第二个数字:”);
扫描频率(“%d”和“n2”);
总计=次(n1,n2);
printf(“%d乘以%d等于%d\n”,n1,n2,总计);
刷新_input();}else{
如果(c='v'){
printf(“插入第一个数字:”);
scanf(“%d”&n1);
printf(“插入第二个数字:”);
扫描频率(“%d”和“n2”);
总计=除以(n1,n2);
printf(“%d除以%d等于%d\n”,n1,n2,总计);
刷新_输入();
}否则{
printf(“我无法理解重置程序\n的指令”);
} 
}
}
}
f='';
printf(“\n是否要再次计算?\n”);
printf(“选择(y)es或(n)ot:”;
f=getchar();
//scanf(“%c”、&c);
getchar();
}而(f!=“n”);
printf(“\n这是所有人!\n”);
返回0;
}
#包括
#包括
//职能声明
浮动校准(浮动a、浮动b、浮动o);
int main(int argc,char*argv[])
{
//变量声明
浮点数num1,num2;
int inum1,inum2;
查尔o;
//变量的初始化
num1=0;
num2=0;
//输入
printf(“输入第一个数字”);
scanf(“%f”和num1);
//输入
printf(“操作员”);
scanf(“%c”、&o);
//输入
printf(“输入第二个数字”);
scanf(“%f”&num2);
inum1=num1;
inum2=num2;
如果(cal(num1,num2,o)==0)
{
printf(“数学错误”);
}
如果(cal(num1,num2,o)==1)
{
printf(“%d”,inum1%inum2);
}
其他的
printf(“%.3f\n”,cal(num1,num2,o));
返回0;
}
//定义函数
浮动校准(浮动a、浮动b、浮动o)
{
如果(o=='+')
返回a+b;
如果(o='-')
返回a-b;
如果(o=='*')
返回a*b;
如果(o=='%')
#include <stdio.h>
#include <stdlib.h>


//declaration of function
float cal (float a, float b, char o);


int main(int argc, char *argv[]) 
{
//  declaration of variable
    float num1,num2;
    int inum1,inum2;
    char  o;
    //initialization of variable
    num1=0;
    num2=0;

//input
    printf("Enter 1st number\n");
    scanf("%f",&num1);
//input
printf("operator\n");
    scanf(" %c", &o);

//input 
printf("Enter 2nd number\n");   
    scanf(" %f", &num2);

    inum1=num1;
    inum2=num2;


        if(cal(num1,num2,o)==0)
        {
            printf("Math Error");
        }
        if(cal(num1,num2,o)==1)
        {
            printf("%d",inum1%inum2);
        }
        else
        printf("%.3f\n",cal(num1,num2,o));




    return 0;
}

//definening function

float cal (float a, float b, char o)
{


        if (o=='+')
        return a+b;

        if (o=='-')
        return a-b;
        if (o=='*')
        return a*b;
        if (o=='%')
        return 1;
        if (o=='/')
        if (b!=0)
        return a/b;
        if (b==0)
        return 0;


}