codeup 1817 Problem B A+B 到底错哪了??

发布于 2022-09-12 00:16:41 字数 1122 浏览 11 评论 0

题目地址:
http://codeup.cn/problem.php?cid=100000575&pid=1

我的代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(){
    char ch1;
    int i=0;
    int a[2]={0,0};
    int flag[2]={1,1};
    int enterflag = 0;
    while(scanf("%c",&ch1)!=EOF){
        if(ch1=='-') flag[i]=-1;
        else if(ch1==' ') i=1;
        else if('0'<=ch1 && ch1<='9')
        {
            if(enterflag) {enterflag = 0; printf("\n");}
            a[i] = a[i]*10 + ch1-'0';
        }
        else if(ch1==',') continue;
        else{
            printf("%d", flag[0]*a[0]+flag[1]*a[1]);
            enterflag = 1;
            i=0;
            flag[0]=1; flag[1]=1;
            a[0]=0; a[1]=0;
        }
        
    }    
    return 0;
}

网上正确的代码我看了. 但是还是想知道自己错哪了.
在此谢谢各位大佬.

cmd中调试时, 可将if(enterflag) {enterflag = 0; printf("\n");}注释
printf("%d", flag[0]*a[0]+flag[1]*a[1]);
改为printf("%d\n", flag[0]*a[0]+flag[1]*a[1]);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

懷念過去 2022-09-19 00:16:41

假设给的数据如下:

0 0
1 1

按照你的代码就只能输出0,而不是0 2,也就是最后一个输入你处理完没输出。在return 0;上面加多一行printf("%d\n", flag[0]*a[0]+flag[1]*a[1]);就可以了。
image.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文