| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1025 人关注过本帖
标题:HDOJ 1002题 代码写出来了,但总是WA,望指导
只看楼主 加入收藏
zmbilx
Rank: 2
等 级:论坛游民
帖 子:22
专家分:80
注 册:2015-7-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
HDOJ 1002题 代码写出来了,但总是WA,望指导
我刚刚发现还有一个代码功能,就把代码复制一遍,又在第三楼发了一遍
#include <stdio.h>
#include <string.h>
int main()
{
    char str1[1024],str2[1024],c[1025];
    int n1 = 0;
    int n2 = 0;
    int i,j,k,n,t1,t2;
    k = 0;
    j = 0;
    scanf("%d", &n);
   
    while (++j)
    {
        if(j > n)
            break;
        scanf("%s%s", str1, str2);
        t1 = n1 = strlen(str1)-1;
        t2 = n2 = strlen(str2)-1;
        
        for(i=0; i<=n1||i<=n2; i++)
        {
            if(i > n1)
                k = str2[t2--] - '0' + k;
            else if(i > n2)
                    k = str1[t1--] - '0' + k;
            else
                k = str1[t1--]+str2[t2--]-2*'0' + k;
            if(k>=10)
            {
                c[i] = k%10 + '0';
                k = 1;
            }
            else
            {
                c[i] = k + '0';
                k = 0;
            }
            
        }
        if(k == 1)
        {
            c[i] = 1 + '0';
            c[i+1] = 0;
        }
        else
        {
            c[i] = 0;
        }
        
        printf("Case %d:\n", j);
        printf("%s + %s = ", str1, str2);
        while(i>=0)
        {
            printf("%c", c[i]);
            i--;
        }
        if(j != n-1)
            printf("\n\n");
    }
   
    return 0;
}


[此贴子已经被作者于2016-2-7 18:24编辑过]

2016-02-07 18:21
zmbilx
Rank: 2
等 级:论坛游民
帖 子:22
专家分:80
注 册:2015-7-18
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

每天OJ一道题,快快乐乐过大年
2016-02-07 18:22
zmbilx
Rank: 2
等 级:论坛游民
帖 子:22
专家分:80
注 册:2015-7-18
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
    char str1[1024],str2[1024],c[1025];
    int n1 = 0;
    int n2 = 0;
    int i,j,k,n,t1,t2;
    k = 0;
    j = 0;
    scanf("%d", &n);
    
    while (++j)
    {
        if(j > n)
            break;
        scanf("%s%s", str1, str2);
        t1 = n1 = strlen(str1)-1;
        t2 = n2 = strlen(str2)-1;
        
        for(i=0; i<=n1||i<=n2; i++) 
        {
            if(i > n1)
                k = str2[t2--] - '0' + k;
            else if(i > n2)
                    k = str1[t1--] - '0' + k;
            else
                k = str1[t1--]+str2[t2--]-2*'0' + k;
            if(k>=10)
            {
                c[i] = k%10 + '0';
                k = 1;
            }
            else
            {
                c[i] = k + '0';
                k = 0;
            }
            
        }
        if(k == 1)
        {
            c[i] = 1 + '0';
            c[i+1] = 0;
        }
        else
        {
            c[i] = 0;
        }
        
        printf("Case %d:\n", j);
        printf("%s + %s = ", str1, str2);
        while(i>=0)
        {
            printf("%c", c[i]);
            i--;
        }
        if(j != n-1)
            printf("\n\n");
    }
    
    return 0;
}

每天OJ一道题,快快乐乐过大年
2016-02-07 18:22
拉链
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:534
注 册:2016-1-22
收藏
得分:0 
目前看到几个错误:
1、进位k未清零,会导致在计算第二个数时计算进去。
2、显示格式错误
3、Case num:,题意要求从1开始计数
2016-02-07 22:25
拉链
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:534
注 册:2016-1-22
收藏
得分:20 
//这样应该可以
#include <stdio.h>
#include <string.h>
int main()
{
    char str1[1000],str2[1000],c[1001];
    int n1 = 0;
    int n2 = 0;
    int i,j,k,n,t1,t2;
    k = 0;
    j = 0;
    scanf("%d", &n);
   
    while (++j)
    {
        if(j > n)
            break;
        scanf("%s%s", str1, str2);
        t1 = n1 = strlen(str1)-1;
        t2 = n2 = strlen(str2)-1;
        for(i=0,k=0; i<=n1||i<=n2; i++)
        {
            if(i > n1)
                k = str2[t2--] - '0' + k;
            else if(i > n2)
                    k = str1[t1--] - '0' + k;
            else
                k = str1[t1--]+str2[t2--]-2*'0' + k;
            if(k>=10)
            {
                c[i] = k%10 + '0';
                k = 1;
            }
            else
            {
                c[i] = k + '0';
                k = 0;
            }
            
        }
        if(k == 1)
        {
            c[i] = 1 + '0';
            c[i+1] = 0;
        }
        else
        {
            c[i] = 0;
            i--;
        }
        printf("Case %d:\n", j);
        printf("%s + %s = ", str1, str2);
        while(i>=0)
        {
            printf("%c", c[i]);
            i--;
        }
        printf("\n");
        if(j<n)printf("\n");
    }
   
    return 0;
}
2016-02-07 23:25
zmbilx
Rank: 2
等 级:论坛游民
帖 子:22
专家分:80
注 册:2015-7-18
收藏
得分:0 
回复 5楼 拉链
好的,成功AC,谢谢,AC图一张

每天OJ一道题,快快乐乐过大年
2016-02-08 09:02
zmbilx
Rank: 2
等 级:论坛游民
帖 子:22
专家分:80
注 册:2015-7-18
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

每天OJ一道题,快快乐乐过大年
2016-02-08 09:02
快速回复:HDOJ 1002题 代码写出来了,但总是WA,望指导
数据加载中...
 
   



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

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