这个C语言题怎么做?
我知识有限,写得下面这么复杂只有80分,我的思想是把符号放中间来输入。。。。#include"stdio.h"intmain(){charch1;floata,b;sca...
我知识有限,写得下面这么复杂只有80分,我的思想是把符号放中间来输入。。。。
#include "stdio.h"int main(){ char ch1; float a,b; scanf("%f",&a); ch1=getchar(); scanf("%f",&b); if(ch1==47&&b==0) printf("除数为0"); if(ch1==43) printf("%.2f+%.2f=%.2f",a,b,a+b); else if(ch1==45) printf("%.2f-%.2f=%.2f",a,b,a-b); else if(ch1==47) printf("%.2f/%.2f=%.2f",a,b,a/b); else if(ch1==42) printf("%.2f*%.2f=%.2f",a,b,a*b); return 0;} 展开
#include "stdio.h"int main(){ char ch1; float a,b; scanf("%f",&a); ch1=getchar(); scanf("%f",&b); if(ch1==47&&b==0) printf("除数为0"); if(ch1==43) printf("%.2f+%.2f=%.2f",a,b,a+b); else if(ch1==45) printf("%.2f-%.2f=%.2f",a,b,a-b); else if(ch1==47) printf("%.2f/%.2f=%.2f",a,b,a/b); else if(ch1==42) printf("%.2f*%.2f=%.2f",a,b,a*b); return 0;} 展开
5个回答
展开全部
一、换成double
二、加了个else
#include "stdio.h"
int main()
{
char ch1;
double a,b;
scanf("%lf",&a);
ch1=getchar();
scanf("%lf",&b);
if(ch1=='/'&&b==0) printf("除数为0\n");
else if(ch1=='+') printf("%.2lf+%.2lf=%.2lf\n",a,b,a+b); //估计是你没有加else的原因
else if(ch1=='-') printf("%.2lf-%.2lf=%.2lf\n",a,b,a-b);
else if(ch1=='/') printf("%.2lf/%.2lf=%.2lf\n",a,b,a/b);
else if(ch1=='*') printf("%.2lf*%.2lf=%.2lf\n",a,b,a*b);
return 0;
}
展开全部
if(ch1==43) printf("%.2f+%.2f=%.2f",a,b,a+b); 我猜你这句前面也得加个else, 因为当做除法的时候你上面的代码会输出两个结果,一个除数为0,另一个a/b(可能抛错)。。。写得挺好的。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议把报错提示贴出来,很多错不是看源码就那么容易找出来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看我这样写你会不会觉得更清楚一些
#include <stdio.h>
void main()
{
float op1, op2, result;
char ch;
scanf("%f%c%f", &op1, &ch, &op2);
switch (ch)
{
case '+':
result = op1 + op2;
break;
case '-':
result = op1 - op2;
break;
case '*':
result = op1 * op2;
break;
case '/':
if (op2 == 0)
break;
result = op1 / op2;
break;
}
if (ch == '/' && op2 == 0)
printf("除数为0\n");
else
printf("%.2f%c%.2f=%.2f\n", op1, ch, op2, result);
}
#include <stdio.h>
void main()
{
float op1, op2, result;
char ch;
scanf("%f%c%f", &op1, &ch, &op2);
switch (ch)
{
case '+':
result = op1 + op2;
break;
case '-':
result = op1 - op2;
break;
case '*':
result = op1 * op2;
break;
case '/':
if (op2 == 0)
break;
result = op1 / op2;
break;
}
if (ch == '/' && op2 == 0)
printf("除数为0\n");
else
printf("%.2f%c%.2f=%.2f\n", op1, ch, op2, result);
}
追问
%c是什么意思?
追答
%c表示字符char
就像%d表示int一样,这是一种格式控制
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是已经实现功能了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询