?? 3020066_wa.c
字號:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int size, len;
char ch, op[100], mes[10001];
void OLE()
{
while(1)
{
puts("I Love Shengqi");
}
}
void shake()
{
int i, j;
for(i = 0; i < size; i++)
{
if(i%2==0)
{
ch = mes[i];
for(j = i+size; j < len; j+=size)
{
mes[j-size] = mes[j];
}
mes[j-size] = ch;
}
else
{
ch = mes[len-size+i];
for(j = len-2*size+i; j >= 0; j-=size)
{
mes[j+size] = mes[j];
}
mes[j+size] = ch;
}
}
}
void rattle()
{
int i, j;
for(i = 0; i < size; i++)
{
if(i%2==0)
{
ch = mes[i*size+size-1];
for(j = i*size+size-2; j > i*size+size-2-(size-1); j--)
{
mes[j+1] = mes[j];
}
mes[j+1] = ch;
}
else
{
ch = mes[i*size];
for(j = i*size+1; j < i*size+1+(size-1); j++)
{
mes[j-1] = mes[j];
}
mes[j-1] = ch;
}
}
}
void roll()
{
int i, j, l = 0;
char str[100][100];
for(i = 0; i < size; i++)
{
for(j = 0; j < size; j++)
{
str[i][j] = mes[l++];
}
str[i][j] = '\0';
}
for(i = 0, l = size; i < size/2; i++,l-=2)
{
ch = str[i][i];
if(i%2==0)
{
for(j = i+1; j < i+l; j++)
{
str[j-1][i] = str[j][i];
}
for(j = i+1; j < i+l; j++)
{
str[i+l-1][j-1] = str[i+l-1][j];
}
for(j = i+l-2; j >= i; j--)
{
str[j+1][i+l-1] = str[j][i+l-1];
}
for(j = i+l-2; j > i; j--)
{
str[i][j+1] = str[i][j];
}
str[i][i+1] = ch;
}
else
{
for(j = i+1; j < i+l; j++)
{
str[i][j-1] = str[i][j];
}
for(j = i+1; j < i+l; j++)
{
str[j-1][i+l-1] = str[j][i+l-1];
}
for(j = i+l-2; j >= i; j--)
{
str[i+l-1][j+1] = str[i+l-1][j];
}
for(j = i+l-2; j > i; j--)
{
str[j+1][i] = str[j][i];
}
str[i+1][i] = ch;
}
}
strcpy(mes,"");
for(i = 0; i < size; i++)
{
strcat(mes,str[i]);
}
}
void enc(int i)
{
switch(op[i])
{
case 'S': shake();break;
case 'R': rattle();break;
case 'L': roll();break;
default: OLE();
}
}
int main()
{
int i;
while(gets(op)!=NULL)
{
gets(mes);
size = atoi(op);
len = strlen(mes);
if(len < size*size)
{
for(i = len, ch = 'A'; i < size*size; i++,ch++)
{
if(ch > 'Z')
{
ch = 'A';
}
mes[i] = ch;
}
mes[i] = '\0';
}
len = size*size;
for(i = 2; op[i]!='\0'; i++)
{
enc(i);
}
for(i = 0; mes[i]!='\0'; i++)
{
if(mes[i] >= 'a')
{
mes[i] -= ' ';
}
}
puts(mes);
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -