第0行太长是什么错误啊。。。。求救

P1098 [NOIP2007 提高组] 字符串的展开

有同样的结果
by 治涨的馒头 @ 2018-07-04 22:05:40


我朋友也是这样,答案和测试数据一样,但全WA ```cpp #include<bits/stdc++.h> using namespace std; int p1,p2,p3; void my_out(char a,char b) { cout<<a; int begin,end,haha; if(p3 == 1) { for(char i = a + 1;i < b;i++) { for(int j = 1;j <= p2;j++) { if(p1 == 1)cout<<i; else if(p1 == 2) { char ii = i + 'A' - 'a'; cout<<ii; } else cout<<'*'; } } } else { for(char i = b - 1;i > a;i--) { for(int j = 1;j <= p2;j++) { if(p1 == 1)cout<<i; else if(p1 == 2) { char ii = i + 'A' - 'a'; cout<<ii; } else cout<<'*'; } } } cout<<b; } int main() { string a; cin>>p1>>p2>>p3; cin>>a; for(int i = 0;i <= a.size();i++) { if(a[i + 1] == '-') { if(a[i] < a[i + 2]) { if((a[i] >= 'a' && a[i] <= 'z' && a[i + 2] >= 'a' && a[i + 2] <= 'z') || (a[i] >= '0' && a[i] <= '9' && a[i + 2] >= '0' && a[i + 2] <= '9')) my_out(a[i],a[i + 2]); i += 2; } else if(a[i] + 1 == a[i + 2]) { cout<<a[i]<<a[i + 2]; i += 2; } else { cout<<a[i]; } } else cout<<a[i]; } return 0; } ```#include<bits/stdc++.h> using namespace std; int p1,p2,p3; void my_out(char a,char b) { cout<<a; int begin,end,haha; if(p3 == 1) { for(char i = a + 1;i < b;i++) { for(int j = 1;j <= p2;j++) { if(p1 == 1)cout<<i; else if(p1 == 2) { char ii = i + 'A' - 'a'; cout<<ii; } else cout<<'*'; } } } else { for(char i = b - 1;i > a;i--) { for(int j = 1;j <= p2;j++) { if(p1 == 1)cout<<i; else if(p1 == 2) { char ii = i + 'A' - 'a'; cout<<ii; } else cout<<'*'; } } } cout<<b; } int main() { string a; cin>>p1>>p2>>p3; cin>>a; for(int i = 0;i <= a.size();i++) { if(a[i + 1] == '-') { if(a[i] < a[i + 2]) { if((a[i] >= 'a' && a[i] <= 'z' && a[i + 2] >= 'a' && a[i + 2] <= 'z') || (a[i] >= '0' && a[i] <= '9' && a[i + 2] >= '0' && a[i + 2] <= '9')) my_out(a[i],a[i + 2]); i += 2; } else if(a[i] + 1 == a[i + 2]) { cout<<a[i]<<a[i + 2]; i += 2; } else { cout<<a[i]; } } else cout<<a[i]; } return 0; }
by 治涨的馒头 @ 2018-07-04 22:08:01


(不小心插入了两段)
by 治涨的馒头 @ 2018-07-04 22:09:03


你可能是输出的空格不啦不啦的没复制上
by AcerMo @ 2018-07-05 07:56:33


你把你代码 > l=s.size()后面加一句 l--
by AcerMo @ 2018-07-05 07:59:33


而且这组数据你过不了 2 8 2 --09-8-w-er-7h-08w-e7-hc-r890-q7w-eh-rc98-07-q8-ewr-8h-c-8-294-5-dsf--k-h-2-48-3k-h-sd-fq-a-
by AcerMo @ 2018-07-05 14:12:17


@[lsy263](/space/show?uid=72611) 把cin换成scanf试一下 我出现过类似的情况 然后把gets换成scanf就过了
by cqxxx @ 2018-08-09 14:35:31


@[cqxxx](/space/show?uid=80885) 已经过了谢谢;
by lsy263 @ 2018-08-09 15:05:50


之前改过的程序 ```cpp #include<iostream> #include<algorithm> #include<math.h> #include<cmath> #include<string> #include<stdio.h> using namespace std; int p1,p2,p3; string s; void pri(int t) { string c; int l=0; if(p1==3) { for(int i=1;i<=p2*(s[t+1]-s[t-1]-1);i++) cout<<'*'; return; } for(char i=s[t-1]+1;i<s[t+1];i++) for(int j=1;j<=p2;j++) c[l++]=i; //for(int j=0;j<l;j++) cout<<c[j]; if(p1==2 && c[0]>='a' && c[0]<='z') //如果是数字就不能加 for(int i=0;i<l;i++) c[i]=c[i]-'a'+'A'; //for(int j=0;j<l;j++) cout<<c[j]; if(p3==1) { for(int j=0;j<l;j++) cout<<c[j]; return; } else { for(int i=l-1;i>=0;i--) cout<<c[i]; return; } } int main() { // freopen("expand.in","r",stdin); // freopen("expand.out","w",stdout); int l,i; cin>>p1>>p2>>p3; cin>>s; l=s.size(); for(i=0;i<l;i++) if(i!=0 && i!=l-1 && s[i]=='-' && s[i-1]<s[i+1] && ( (s[i-1] >='0' && s[i+1]<='9') || (s[i-1]>='a' && s[i+1]<='z') ) ) //i=0会越界 pri(i); else cout<<s[i]; return 0; } ``` 我也忘记我改哪了,,,,七月份的
by lsy263 @ 2018-08-09 15:07:22


上一页 |