如何解决用C ++
我正在做这个练习:
编写一个程序以获取数字N以及数字和字符的序列。结果,程序必须首先输出所有数字,然后输出符号。所有成员必须以空格分隔。
所以我写了这段代码:
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cctype>
using namespace std;
int main()
{
const size_t N = 1000;
char a[N];
size_t n = 0;
cin >> n;
if ( N < n ) n = N;
for ( size_t i = 0; i < n; i++ )
{
cin >> a[i];
}
auto it = stable_partition( a,a + n,[]( unsigned char c ){ return ::isdigit( c ); } );
stable_partition( it,[]( unsigned char c ){ return ::isalpha( c ); } );
for ( size_t i = 0; i < n; i++ )
{
cout << a[i] << ' ';
}
return 0;
}
现在,当程序获得以下输入时:
1000
! + e E [@; ib} $ @ EL d` w B 1〜N; sx B 6 p W 7 gmo = _ 7 BC'i 3&Y r G 3 jga Z j。^ z ^ U. 1 7> t [o-G“ b〜`(h:R〜R〜FE l QS 0 J j F ^ x 4 u K y 4 F | XC〜B?O r +} |” j AC%w?vw | SE = c 4 6。@ H eq D a&1 c%P | B“} g 0 9 | 7 n。#B 7 7`H v QI i B grr Q; Q 5 c,`C yx(J m 1 W h @ 6 I a X _ gl 9 jl#8> d i(x 5 4 f X 1 b 9 v S p I '$ h Q,I 5 7 R 5 ITT; IR 4 VE〜。Q“ @ nsu&0 8 f 6 GU n] 8 qu 6 7 j 2 T!p'” J!t 5 E-E c] r 2:T ^ T j XV k 2 k [z PR / m,/ M; I 5 d(&b ^ Z m ZT“ Q mt A a E d _} j RHS [og |-!F” $ JLE} JC b ZC a#&&RT。“ R oe V h / 9 t T n = * M混音JS v = @ l D:'0 {进给7 1 EJG \ KL {vn CT / hy G c QN s CC \ =&`,5 6 g G. P 6-r> F z L sb(c [JP {。o T a 7 a /?h 4 6; W $ hcimfx,D l_ 6 9 C %la L rq'F 1 m} 5 lc 0(VI [VY。0 GH 1 ej K = nppb 9 vh V; x-/ oz R 3 n'; LPW} 3> y Z = 8 9'-| xu ,2 lzt} |> wk 8 | P 8,gk U`8 F,
它忘记输出< ` "
之类的符号。
结果是我得到带有“被吃”符号的错误输出。
我的程序执行:
3 2 2 2 7 0 8 9 6 1 1 1 3 1 7 4 0 0 5 8 7 4 6 3 7 4 9 1 6 7 7 3 3 3 1 7 0 4 4 4 6 1 0 9 7 7 7 5 1 6 9 8 2 8 5 4 1 9 0 5 7 5 4 0 8 6 8 6 7 2 5 2 2 5 9 8 9 9 6 9 3 0 7 1 5 6 6 7 4 6 6 9 1 5 0 0 1 9 3 3 8 9 2 8 8 8 8 0 3 3 0 8 1 4 4 1 3 h XO ds P pl IB hhvaar MNQ aa NT s JYX mfhcx A ldxm C y ZU d EY bny PYU ew U dy EM i LTBY toggk R t OYT k VH t LHIC t KS lty BUZBM l CL vc B z KP iyq CV c YULNV ay PJ k QI qzd YQ b M h E f VSFKCOX n V apw CCDUB yws M z ADQ即E ib EL dw BN sx B p W gmo BC i Y r G jga Z jz U到G bh RRFE l QSJ j F xu K y FXCBO rj AC wvw SE c H eq D ac PB gn BH v QI i B grr QQ c C yx J m W h I a X gljld EPF LPF wixf X bv S p IV q EIP jh QIRITTIRVEQ nsuf GU Nquj T p J t E EE cr TT j XV kkz PR m MI db Z m ZTQ mt A a E dj RHS og FJLEJC b ZC ar RTR OE TS O SY SY l I SF r OECTX pv GMK o N q L n M caixs JS vl D馈送的EJGKL vn CT hy G c QN s CC g GP r F z L sbc JP o T aah W hcimfx D l C la L rq F mlc VIVYGH ej K nppbv V xoz R n LPW y Z xulztwk P gk UF gzc Z s DCHR yb C q I gpe S keq AX ba K qxqwb它是A z J P U l PGH m F a B k AUy cbtu UKX y HAE !+ [@;} $ @`〜; = _'&。^ ^。 > [-“〜`(:〜〜^ |〜?+} |”%?| =。@&%|“} |。#`;,((@ _#> > '$,;〜。“ @&]!'”!-]:^ [/,/;(&^“ _} [|-!” $}#&&。“ / = * = @:'{\ {/ \ =&`,。->([{。/?; $,_%'}([。 ;-/';}> ='-|,} |> |,`,
正确的答案是:
3 2 2 2 7 0 8 9 6 1 1 1 3 1 7 4 0 0 5 8 7 4 6 3 7 4 9 1 6 7 7 3 3 3 1 7 0 4 4 4 6 1 0 9 7 7 7 5 1 6 9 8 2 8 5 4 1 9 0 5 7 5 4 0 8 6 8 6 7 2 5 2 2 5 9 8 9 9 6 9 3 0 7 1 5 6 6 7 4 6 6 9 1 5 0 0 1 9 3 3 8 9 2 8 8 8 8 0 3 3 0 8 1 4 4 1 3
!+ e E [@; ib} $ @ EL d`w B 〜N; sx B p W gmo = _ BC'i&Y r G jga Z j。^ z ^ U.> t [o-G“ b〜`(h:R〜R〜FE l QSJ j F ^ xu K y F | XC〜B?O r +} |“ j AC%w?vw | SE = c。@ H eq D a&c%P | B”} g | n。#B`H v QI i B grr Q; Q c,`C yx(J m W h @ I a X _ gljl#> d i(xf X bv S p I '$ h Q,IRITT; IRVE〜。Q“ @ nsu&f GU n] quj T!p'” J!t E-E c] r:T ^ T j XV kk [z PR / m,/ M ; I d(&b ^ Z m ZT“ Q mt A a E d _} j RHS [og |-!F” $ JLE} JC b ZC a#&&r RT。 S; l UO q S _ Y t#L l Y {{。o IYGY [f Y \ K j SF; r,O | ECTX pv G“ !; M _ K $ o $。] N q L> n = * M caixs J S v = @ l D:'{f e d E J G \ K L {v n C T / h y G c Q N s C C \ =&`,g G。 P-r> F z L sb(c [JP {。o T aa /?h; W $ hcimfx,D _ C%la L rq'F m} lc(VI [VY。GH ej K = nppbvh V; x-/ oz R n'; LPW}> y Z ='-| xu,lzt} |> wk | P,gk U`F,
我该如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。