codeup 1817 Problem B A+B 到底错哪了??
题目地址:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设给的数据如下:
按照你的代码就只能输出0,而不是0 2,也就是最后一个输入你处理完没输出。在
return 0;
上面加多一行printf("%d\n", flag[0]*a[0]+flag[1]*a[1]);
就可以了。