一道C语言编程题 简单计算器 哪里有错

#include<stdio.h>intmain(void){intnum1,denom1,num2,denom2,result_num,result_denom;cha... #include <stdio.h>

int main(void)
{
int num1, denom1, num2, denom2, result_num, result_denom;
char ch;

scanf("&d/&d %c %d/%d",&num1,&denom1,&ch,&num2,&denom2);

switch (ch){
case '+':
printf("The sum is %d/%d\n", result_num = num1 * denom2 + num2 * denom1, result_denom = denom1 * denom2);
case '-':
printf("The difference is %d/%d\n", result_num = num1 * denom2 - num2 * denom1, result_denom = denom1 * denom2);
case '*':
printf("The product is %d/%d\n", result_num = num1 * num2, result_denom = denom1 * denom2);
case '/':
printf("The quotient is %d/%d\n", result_num = num1 * denom2, result_denom = denom1 * num2);
}
}
展开
 我来答
mibaoxunbei
推荐于2016-02-03 · TA获得超过907个赞
知道小有建树答主
回答量:594
采纳率:0%
帮助的人:507万
展开全部
scanf("&d/&d %c %d/%d",&num1,&denom1,&ch,&num2,&denom2);
改为
scanf("%d/%d %c %d/%d",&num1,&denom1,&ch,&num2,&denom2);


另外switch语句中应该加上break

#include <iostream>
using namespace std;

int main(void)
{
int num1, denom1, num2, denom2, result_num, result_denom;
char ch;

//scanf("&d/&d %c %d/%d",&num1,&denom1,&ch,&num2,&denom2);
scanf("%d/%d %c %d/%d",&num1,&denom1,&ch,&num2,&denom2);

switch (ch){
  case '+':
  printf("The sum is %d/%d\n", result_num = num1 * denom2 + num2 * denom1, result_denom = denom1 * denom2);
  break;
  case '-':
  printf("The difference is %d/%d\n", result_num = num1 * denom2 - num2 * denom1, result_denom = denom1 * denom2);
  break;
  case '*':
  printf("The product is %d/%d\n", result_num = num1 * num2, result_denom = denom1 * denom2);
  break;
  case '/':
  printf("The quotient is %d/%d\n", result_num = num1 * denom2, result_denom = denom1 * num2);
  break;
}
}

skillness71a8
2014-11-20
知道答主
回答量:29
采纳率:100%
帮助的人:20万
展开全部

switch语句中,每一个case语句结束的地方都应该有break,否则他会顺序执行下去

#include <stdio.h>

int main(void)
{
  int num1, denom1, num2, denom2, result_num, result_denom;
  char ch;
  scanf("&d/&d %c %d/%d",&num1,&denom1,&ch,&num2,&denom2);

  switch (ch){
  case '+':
 printf("The sum is %d/%d\n", result_num = num1 * denom2 + num2 * denom1, result_denom = denom1 * denom2);
 break;
  case '-':
 printf("The difference is %d/%d\n", result_num = num1 * denom2 - num2 * denom1, result_denom = denom1 * denom2);
 break;
  case '*':
 printf("The product is %d/%d\n", result_num = num1 * num2, result_denom = denom1 * denom2);
 break;
  case '/':
 printf("The quotient is %d/%d\n", result_num = num1 * denom2, result_denom = denom1 * num2);
 break;
  default: break;
  }
  return 0;
}
追问
我加上break了 可是完全没有输出啊怎么回事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nice新县高中
2014-11-20 · TA获得超过1489个赞
知道小有建树答主
回答量:980
采纳率:74%
帮助的人:334万
展开全部
缺少返回值,
就是return 0掉了;
希望可以帮到你,祝你生活愉快。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
里边生
2014-11-20 · 超过12用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:35.8万
展开全部
出现什么问题了?你怎么输入的。输入格式要按照scanf的格式输入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luoguolong2660
2014-11-20 · TA获得超过157个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:231万
展开全部
你的scanf中有两个&d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式