用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 (将#修改为@)