| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 416 人关注过本帖
标题:为何会溢出?
只看楼主 加入收藏
hzz6866223
Rank: 2
等 级:论坛游民
帖 子:20
专家分:30
注 册:2014-2-24
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
为何会溢出?
程序代码:
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
    int a,b,c,d,j,k;
    char op;
    scanf("%d/%d%s%d/%d",&a,&b,&op,&c,&d);
    if(b != 0 && d != 0)
    {
        j = b*d;
        if(op == '+')
            k = a*d+b*c;
        else
            k = a*d-b*c;
    }
    else
    {
        printf("error\n");
    }
        if(k%j == 0)
            printf("%d\n",k/j);
        else
    {
            int x;
            while(x=k%j && x != 0)
        {
            k = j;
            j = x;
        }
        printf ("%d/%d",k/j);
    }
    return 0;
}

Description
编写一个C程序,实现两个分数的加减法

Input
输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d"。

其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。

数据以EOF结束
输入数据保证合法

Output
对于输入数据的每一行输出两个分数的运算结果。
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数

Sample Input

1/8+3/8
1/4-1/2
1/3-1/3

Sample Output

1/2
-1/4
0
本来只写了加法运算,后来加入了一个char变量加入减法就开始溢出了。怎么回事?

2014-03-20 00:47
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:10 
scanf("%d/%d%s%d/%d",&a,&b,&op,&c,&d); ---- 改为  %c
2014-03-20 07:07
hzz6866223
Rank: 2
等 级:论坛游民
帖 子:20
专家分:30
注 册:2014-2-24
收藏
得分:0 
回复 2楼 ying8501
原来是字符和字符串的问题,谢谢了、

[fly]不求超越,只要前行。[/fly]
2014-03-20 20:03
快速回复:为何会溢出?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024998 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved