问答题
S=“S
1
S
2
…S
n
”是一个长为N的字符串,存放在一个数组中,编程序将S改造之后输出: (1)将S的所有第偶数个字符按照其原来的下标从大到小的次序放在S的后半部分; (2)将S的所有第奇数个字符按照其原来的下标从小到大的次序放在S的前半部分;例如:S="ABCDEFGHI舭’则改造后的S为"ACEGIKLJHFDB"。【中科院计算所1995】
【正确答案】
正确答案:对读入的字符串的第奇数个字符,直接放在数组前面,对第偶数个字符,先入栈,到读字符串结束,再将栈中字符出栈,送入数组中。 while((ch=getchar())!="#") //读入字符串,"#"是字符串结束标志 S[i++]=ch;lli初值为1 S[i]=-"\0"; //字符数组中字符串结束标志 i=1;j=1; while(S[i]) //改造字符串 {if(i%2==0)stk[i/2]=8[i];else S[j++]=s[i]; i++; }//while i一一;i=i/2 ;i=i先从"\0"后退,然后其含义是第偶数个字符的个数 while(i>0)s[j++]=stk[i一一] //将第偶数个字符逆序填入原字符数组
【答案解析】
提交答案
关闭