来自四楼机房的第一篇博客

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    //freopen("add.in","r",stdin);
    //freopen("add.out","w",stdout);
    char str[1000];
    int n,k,t,a,b;
    scanf("%d %d %d ",&n,&k,&t);
    gets(str);
    for(int i=1;i<=k;i++)
    {
        char ch;
        cin>>ch;
        if(ch=='G')    cout<<str[t-1]<<endl;
        if(ch=='L')    t=t-1;
        if(ch=='R')    t=t+1;
        if(ch=='S')
        {
            int c,d;
            char ch3;
            cin>>c>>d;
            ch3=str[c-1];
            str[c-1]=str[d-1];
            str[d-1]=ch3;
        }
    }
    return 0;

}           

首先自我检讨阿,刚开始码代码的时候包子皮都没有输对,最重要的是自己在反复检查之后居然没有检查出来,好把,下一次要熟悉常见的错误。

******************************华丽丽的分割线*************************

首先,此题是c语言,这点就比较坑,谁让c和c++能同时出现呢

可能刚开始运用不太熟悉, 导致码的时候很慢很慢;

以上都是次要的,重要的是我在码交换的时候居然定义了两个变量,很明显当时我是出于一种懵逼的状态的,仅仅因为是字符数组而忘记交换的简单代码

P.S我想起来亲爱的数学老师讲算法框图时候的快乐例子了,那瓶水的倒水问题(笑cry),的确阿,把交换比作倒水很形象,需要多拿一个瓶子来盛多余的水。。。。

啥也不说,贴题:

******************************分割线**华丽丽**************************

陶陶学了数组,他对写文章特别感兴趣,自从学了数组之后,他就想编一个文字编辑器。现在对一般的文字操作很感兴趣,于是,他就有了以下问题。
 现在有个长度为n的字符数组,并且知道插入光标的位置为k,现在他对字符数组有以下操作:
  1、输出操作(G):输出光标所在的当前字符。
  2、左移光标(L):把光标从当前位置左移一位.
  3、右移光标(R):把光标从当前位置右移一位。
  4、交换操作(S a  b):把 a位置的字符与b位置的字符交换
  (删除与旋转操作)
 比如 当前长度为13字符数组为:   'long long ago';当前光标所在位置为4
  如果一个G操作:则输出字符'g'
  如果一个L操作:则光标会移到3
  如果一个R操作:则光标会移到5
  如果一个S 1 4 操作,则字符数组会变成  'gonl long ago'
  当然会有很多次的各种操作,操作顺序不一样,输出结果肯定不一样.
陶陶觉得这个问题很有意义,于是他就想让大家用程序来实现这些操作

*****************************这次有点多哈,写在最后******************************

只当是给下一届福利了,连题带答案还有解析(我都不忍心看的解析)

以后还要多码程序,少去问度娘,毕竟刚刚开始,需要熟悉计算机语言,而不是去贴别人的代码

撤退!

原文地址:https://www.cnblogs.com/supersumax/p/5882478.html