C计算器,如果有的话
我想用“IF”和“IF-ELSE”条件制作一个简单的C计算器,它不允许我选择运算符(“+,-,*或/”),只显示我的最后一个IF条件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
#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;
}