| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 750 人关注过本帖
标题:问题出在哪里了?
取消只看楼主 加入收藏
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
结帖率:80%
收藏
 问题点数:0 回复次数:4 
问题出在哪里了?
今天看了一个巨大数相加的程序,然后自己编写了一下,可就是运行后显示不出要的结果,自己看了好几遍也没搞明白问题所在,请教各位帮忙看看问题出在哪里了。

#include <stdio.h>
#include <string.h>
main()
{
    char n1[100],n2[100];
    int a[100],b[100],c[100],i,j,k,s1,s2;
    printf("请输入第一个大数:");
    gets(n1);
    printf("请输入第二个大数:");
    gets(n2);
    s1=strlen(n1);
    s2=strlen(n2);
    if(s1>s2)
        k=s1;
    else
        k=s2;
    j=k;
    for(i=0;i<=s1;i++,k--)
        a[k]=n1[s1-1-i]-'0';
    for(k=j;i<=s2;i++,k--)
        b[k]=n2[s2-1-i]-'0';
    for(i=j;i>=0;i--)
    {
        c[i]=a[i]+b[i];
        if(c[i]>=10)
        {
            c[i]=c[i]-10;
            c[i-1]++;
        }
    }
    if(a[0]!=0)
    {    for(i=0;i<=j;i++)
            printf("%d",c[i]);
    }
    else
    {    for(i=1;i<=j;i++)
            printf("%d",c[i]);
    }
    printf("\n");
    return 0;
}
搜索更多相关主题的帖子: include 
2013-02-01 21:56
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:0 
谢谢各位的解答,我会再好好看下的,有什么问题再与各位讨论研究。
2013-02-02 10:30
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:0 
我还找到了31行的错误:if(c[0]!=0)才对。
2013-02-02 12:04
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:0 
回复 2楼 果沫
你写的程序我测试了一下,好像有点问题。我修改了程序,你看看吧。
/*程序功能:求两个巨大数之和*/


#include <stdio.h>
#include <string.h>
main()
{
    char n1[200],n2[200];
    int a[200]={0},b[200]={0},i,j,k,s1,s2;
    printf("请输入第一个大数:");
    gets(n1);
    printf("请输入第二个大数:");
    gets(n2);
    s1=strlen(n1);
    s2=strlen(n2);
    if(s1>s2)
        k=s1;
    else
        k=s2;
    j=k;
    for(i=0;i<s1;i++,k--)
        a[k]=n1[s1-1-i]-'0';
    for(k=j,i=0;i<s2;i++,k--)
        b[k]=n2[s2-1-i]-'0';
    printf("\n");
    for(i=j;i>=0;i--)
    {
        a[i]=a[i]+b[i];
        if(a[i]>=10)
        {
            a[i]=a[i]-10;
            a[i-1]++;
        }
    }

    if(a[0]!=0)
    {    for(i=0;i<=j;i++)
            printf("%d",a[i]);
    }
    else
    {    for(i=1;i<=j;i++)
            printf("%d",a[i]);
    }
    printf("\n");
    return 0;
}
2013-02-02 12:16
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:0 
呃,难道是我的系统问题?我截图给你
图片附件: 游客没有浏览图片的权限,请 登录注册

结果应该是:1111113333333333333333
2013-02-02 12:31
快速回复:问题出在哪里了?
数据加载中...
 
   



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

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