c语言-C语言问题,A+Bproblems,求帮助

问题描述

C语言问题,A+Bproblems,求帮助

题目描述
给你两个正的小数A和B,你的任务是计算出A+B的值。
输入
本题目包含多组测试数据,请处理到文件结束。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
输出
请在一行里面输出输出A+B的值,请输出最简形式。详细要求请见Sample Output。
样例输入
1.1 2.9
1.1111111111 2.3444323343
1 1.1
样例输出
4
3.4555434454
2.1

#include
#include
int main()
{
int i,j,k,l,len1,len2,flag,sum[1100],p,zb;
char a[400],b[400];
while(scanf("%s%s",a,b)!=EOF)
{
len1=strlen(a);len2=strlen(b);
memset(sum,0,sizeof(sum));/////
flag=0;
for(i=0;a[i];i++)
if(a[i]=='.')
break;
k=i+1; //////0~~~i-1wei zhengshu
if(a[i])
flag=1; ///1 zhengshu 0 xiaoshu
for(j=0;b[j];j++)
if(b[j]=='.')
break;
l=j+1; /////0~~~~j-1 wei zhengshu
if(b[j])
flag=1;
if(i>j)
zb=i+1; ///zui da you zb wei zhengshu
else
zb=j+1;

    p=zb;      //// p wei zheng shu
    i--;
    j--;
    for(;;i--,j--)
    {
        if(i>=0&&j>=0)
            sum[p--]=a[i]-'0'+b[j]-'0';       ////sum[0] liu gei jinwei
        else if(i>=0&&j<0)
            sum[p--]=a[i]-'0';
        else if(i<0&&j>=0)
            sum[p--]=b[j]-'0';
        else if(i<0&&j<0)
            break;
    }
    p=zb+1;        //// p liu gei xiaoshudian
    for(;;k++,l++)
    {
        if(k<len1&&l<len2)
            sum[p++]=a[k]-'0'+b[l]-'0';    ///xiaoshu bufen jisuan
        else if(k<len1&&l>=len2)
            sum[p++]=a[k]-'0';
        else if(k>=len1&&l<len2)
            sum[p++]=b[l]-'0';
        else if(k>=len1&&l>=len2)
            break;
    }
    for(i=p-1;i>=0;i--)
        if(sum[i]>=10)
        {
            sum[i]=sum[i]-10;
            sum[i-1]++;
        }
    i=0;
    while(sum[i]==0)
        i++;
    for(;i<=zb;i++)
        printf("%d",sum[i]);
    p--;
    while(sum[p]==0&&p>=0)
        p--;
    if(p<=zb)
        flag=0;
    if(flag)
    {
        printf(".");
        for(i=zb+1;i<=p;i++)
            printf("%d",sum[i]);
    }
    printf("n");
}
return 0;

}

时间: 2024-09-20 13:53:07

c语言-C语言问题,A+Bproblems,求帮助的相关文章

c语言-基于C语言,用蚁群算法求最优路径。百度复制粘贴的别来了。。。要求可以直接运行的代码哈

问题描述 基于C语言,用蚁群算法求最优路径.百度复制粘贴的别来了...要求可以直接运行的代码哈 一个人从上海大学出发,经过若干个地点,路线不重复走,最后回到上海大学,找三条优化路线. 上海大学:北纬N31°19′5.86″ 东经E121°23′21.52″ 星雨城:北纬N31°19′46.58″ 东经E121°24′9.29″ 大康公寓:北纬N31°19′18.88″ 东经E121°25′3.98″ 文景楼:北纬N22°35′23.78″ 东经E113°52′50.67″ 大场中学:北纬N31°

c语言取小数问题,急求大神解答!

问题描述 c语言取小数问题,急求大神解答! 程序是#include int main() { float a,b; int n; scanf("%f",&a); n=(1000*a+0.5); b=(n*1.0)/1000; printf("%f",b); return 0; } 输入123.4567 输出是123.457001 输入1234.567 输出时1234.567017 输入12345.67 输出是12345.669922 为什么会这样呢?求大神解

c语言-C语言 这代替怎么写 急求

问题描述 C语言 这代替怎么写 急求 Description Sauterne is a student in USTB. Now he has some difficulties learning Advanced Mathematics. He doesn't know how to find the derivative of a polynomial. So he asks you for help. He will give you f(x) and please output f '

c语言-C语言完数问题,新手求指点~谢谢

问题描述 C语言完数问题,新手求指点~谢谢 C语言课后习题,求1000以内的完数,按以下格式输出: 6 its factors are 1,2,3 为什么我改成和答案一样的都输出空., 代码如下:#include int main() { int m,i,s; for(m=2;m<1000;m++)//2-1000个数 { s=0; for(i=1;i<=m;i++) if((m%i)==0)s=s+i; if(s==m) { printf("%d,its factors are&q

c语言-M只猴子选大王的另一种问法,怎样用C语言编程解决啊,急求

问题描述 M只猴子选大王的另一种问法,怎样用C语言编程解决啊,急求 M只猴子选大王,选举办法如下:所有猴子按1...M编号围坐一圈,从第1号开始按顺序1,2...N报数,报到N的猴子退出到圈外,再从下一个猴子开始继续1,2...N报数,报到N的猴子退出圈外,如此循环,直至圈内只剩下一只猴子时就说大王,给定M和最后出圈的者的编号S,求最小的N 解决方案 约瑟夫环问题 解决方案二: 来自百度: #include #include #define n 19 #define m 4 typedef st

c语言-数据结构C语言版10道实习题目求解答!!

问题描述 数据结构C语言版10道实习题目求解答!! 除有特别说明外,每个题目请以自然语言.形式化表述(伪码.流程图等).程序代码三种方式描述. 顺序结构线性表LA与LB的节点关键字为整数.LA与LB的元素按非递减有序,线性表空间足够大.试给出一种高效算法,将LB中的元素合并到LA中,使新的LA元素仍保持非递减有序.高效是指最大限度的避免移动元素. 请写一个算法将线性表(a1,a2,-,an)逆置为(an,an-1,-,a1). 在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,

c语言-C语言===参考答案为A,求详细解释

问题描述 C语言===参考答案为A,求详细解释 已知int i=0,j=1,*p=&i,*q=&j;错误的语句是: A)i=*&q; B)p=&*&i; C)j=*p++; D)i=*&j; ===参考答案为A,求详细解释 解决方案 q是j的地址 i等于赋予了j的地址 解决方案二: &是取地址*是寻址(解引用)所以 q 指针 所指内存中存的是j的地址 也就是*q=0x0003(j的地址) 指针*q又有自己的地址q==0x0001 理解了上述就可以明白

c语言-C语言素数的编程问题,求大家解答

问题描述 C语言素数的编程问题,求大家解答 这些代码编译没有问题,我测试了几个数也没有问题,为什么放到AMC的OJ系统一直说答案错误? 求大家看看 谢谢了! 问题要求是输入整数,判断素数 如果是就输出1,不是就输出0 #include int main() { int a,i,find; scanf("%d",&a); if(a<=1) { find=0; printf("%d",find); return 0; } for(i=2;i<a;i+

c语言-C语言的一个小问题,求大神

问题描述 C语言的一个小问题,求大神 #include int main() { float c,f; scanf("%f",&f); c=(5.0/9)*(f-32); printf("摄氏度为%fn",c); return 0; } 语句c=(5.0/9)*(f-32); 中的5.0换成5的话输出结果就错了,这是为什么呀,求大神指点 解决方案 如果除数是5的话,那么/就是整除的意思. 你也可以写成 5f,让它被视作是float 解决方案二: 5/9 取整

c语言-数据操作的问题,,C语言,炒鸡简单,求解答

问题描述 数据操作的问题,,C语言,炒鸡简单,求解答 #include#includeint main(){ int abc; scanf(""%d %d %d""&a&b&c); //double abc; //scanf(""%f %f %f""&a&b&c); if(a==b&&b==c) printf(""等边三角形n"&qu