Go: package main

import (
	"bufio"
	"os"
	"fmt"
	"strings"
	)

var scanner = bufio.NewScanner(os.Stdin)
var title = [4]int{0, 90, 180, 270}

func main() {
	p := make([][]string, 8)
	for i := range p {
		scanner.Scan()
		p[i] = strings.Split(scanner.Text(), "")
	}
	// log.Println(p)
	for i := 1; i < 4; i++ {
		fmt.Println(title[i])
		p = spin(p)
		print_p(p)
	}
}

func spin(p [][]string) [][]string {
	ret := make([][]string, 8)
	for i := range ret {
		ret[i] = make([]string, 8)
	}
	for i := 0; i < 8; i++ {
		for j := 0; j < 8; j++ {
			ret[i][j] = p[7-j][i]
		}
	}
	return ret
}

func print_p(p [][]string) {
	for _, v := range p {
		fmt.Println(strings.Join(v, ""))
	}
}

C++: #include <stdio.h>
#include <string.h>
#include <ctype.h>
int main ( void ) {
    char input[8][8]={' '};
    int i,t;
    for(i=0;i<8;i++){//入力
        scanf("%s",input[i]);
    }
    puts("90");
    for(i=7;i>=0;i--){
        for(t=0;t<8;t++){
            printf("%c",input[i][t]);
        }
        puts("");
    }
    puts("180");
    for(i=7;i>=0;i--){
        for(t=7;t>=0;t--){
            printf("%c",input[i][t]);
        }
        puts("");
    }
    puts("270");
    for(i=0;i<8;i++){
        for(t=7;t>=0;t--){
            printf("%c",input[i][t]);
        }
        puts("");
    }
    
    
    return 0;
}

C++: #include<stdio.h>

int main(){

char x[10];

char map[10][10];
char P[10][10];


for(int i=0;i<8;i++){
scanf("%s",x);
for(int j=0;j<8;j++)
map[i][j]=x[j];

}


for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
if(i<4&&j<4)P[j][7-i]=map[i][j];
else if(i<4&&j>=4)P[j][7-i]=map[i][j];
else if(i>=4&&j>=4)P[j][7-i]=map[i][j];
else if(i>=4&&j<4)P[j][7-i]=map[i][j];

printf("90\n");
for(int i=0;i<8;i++){
for(int j=0;j<8;j++)
	printf("%c",P[i][j]);

printf("\n");
}
char PP[10][10];
char PPP[10][10];

for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
if(i<4&&j<4)PP[j][7-i]=P[i][j];
else if(i<4&&j>=4)PP[j][7-i]=P[i][j];
else if(i>=4&&j>=4)PP[j][7-i]=P[i][j];
else if(i>=4&&j<4)PP[j][7-i]=P[i][j];

printf("180\n");
for(int i=0;i<8;i++){
for(int j=0;j<8;j++)
	printf("%c",PP[i][j]);

printf("\n");
}

for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
if(i<4&&j<4)PPP[j][7-i]=PP[i][j];
else if(i<4&&j>=4)PPP[j][7-i]=PP[i][j];
else if(i>=4&&j>=4)PPP[j][7-i]=PP[i][j];
else if(i>=4&&j<4)PPP[j][7-i]=PP[i][j];

printf("270\n");
for(int i=0;i<8;i++){
for(int j=0;j<8;j++)
	printf("%c",PPP[i][j]);

printf("\n");
}




return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;

int main(){
  string str[8];
  for(int i=0;i<8;i++){
    cin >> str[i];
  }
  cout << "90" << endl;
  for(int i=0;i<8;i++){
    for(int j=7;j>=0;j--){
      cout << str[j][i];
    }
    cout << endl;
  }
  cout << "180" << endl;
  for(int i=7;i>=0;i--){
    for(int j=7;j>=0;j--){
      cout << str[i][j];
    }
    cout << endl;
  }
  cout << "270" << endl;
  for(int i=7;i>=0;i--){
    for(int j=0;j<8;j++){
      cout << str[j][i];
    }
    cout << endl;
  }
}

C++: #include <iostream>
#include <map>
#include <cstdio>
using namespace std;

char MAP[8][9];//}bvîñ

void rotate(){//}bvð90xñ]
  char bM[8][9];
  memcpy(bM,MAP,72);
  for(int i = 0 ; i < 8 ; i++){
    for(int j = 0 ; j < 8 ; j++){
      MAP[i][j] = bM[7-j][i];
    }
  }
}
void showmap() {//}bvðoÍ
  for(int i = 0 ; i < 8 ; i++){
    printf("%s\n",MAP[i]);
  }
}
int main(){
  for(int i = 0 ; i < 8 ; i++){
    scanf("%s",MAP[i]);
  }
  for(int i = 1 ; i <= 3 ; i++) {
    printf("%d\n", 90*i);
    rotate();
    showmap();
  }
  return 0;
}

C++: #include<iostream>
using namespace std;
int main()
{
  char s[8][8];
  for(int i=0;i<8;i++)
    {
      string str;
      cin>>str;
      for(int j=0;j<8;j++)
	{
	  	  
	  s[i][j]=str.at(j);
	}
      
    }
  cout<<"90"<<endl;
for(int i=0;i<8;i++)
    {
      for(int j=7;j>=0;j--)
	{
	  cout<<s[j][i];
	}
      cout<<endl;
    }
 cout<<"180"<<endl;
for(int i=7;i>=0;i--)
    {
      for(int j=7;j>=0;j--)
	{
	  cout<<s[i][j];
	}
      cout<<endl;
    }
cout<<"270"<<endl;
for(int i=7;i>=0;i--)
    {
      for(int j=0;j<8;j++)
	{
	  cout<<s[j][i];
	}
      cout<<endl;
    }
  return 0;
}

C++: #include<stdio.h>
#include<string.h>
int main(){
	char m[9][9],s[9][9];
	int i,j,k=0;
	for(j=0;j<8;j++){
		scanf("%s",m[j]);
		strcpy(s[j],m[j]);
	}
	for(k=90;k<360;k+=90){
		printf("%d\n",k);
		for(i=0;i<8;i++){
			for(j=0;j<8;j++){
				s[j][7-i]=m[i][j];
			}
		}
		for(j=0;j<8;j++){
			printf("%s\n",s[j]);
			strcpy(m[j],s[j]);
		}
	}
    return 0;
}

C++: #include <stdio.h>
char c[8][9], d[8][9];
int main() {
	for (int i = 0; i < 8; i++) scanf("%s", c[i]);
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 8; j++) {
			for (int k = 0; k < 8; k++) {
				d[j][k] = c[7 - k][j];
			}
		}
		printf("%d\n", i * 90 + 90);
		for (int j = 0; j < 8; j++) {
			for (int k = 0; k < 8; k++) {
				printf("%c", c[j][k] = d[j][k]);
			}
			printf("\n");
		}
	}
	return 0;
}

C++: #include <iostream>

using namespace std;

int main(int argc, char **argv)
{
	char array[8][8];
	
	for(int i = 0; i < 8; i++){
		for(int j = 0; j < 8; j++){
			cin >> array[i][j];
		}
	}
	
	cout << "90" << endl;
	for(int i = 7; i >= 0; i--){
		for(int j = 0; j < 8; j++){
			cout << array[i][j];
		}
		cout << endl;
	}
	
	cout << "180" << endl;
	for(int i = 7; i >= 0; i--){
		for(int j = 7; j >= 0; j--){
			cout << array[i][j];
		}
		cout << endl;
	}
	
	cout << "270" << endl;
	for(int i = 0; i < 8; i++){
		for(int j = 7; j >= 0; j--){
			cout << array[i][j];
		}
		cout << endl;
	}
	
	return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <complex>
#include <cstring>
#include <cstdlib>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()

int main() {
  string s[8];
  REP(i,8)
    cin >> s[i];
  REP(k,3) {
    cout << 90*(k+1) << endl;
    REP(y,8) {
      REP(x,8) {
        if (k==0)
          cout << s[7-x][y];
        else if (k==1)
          cout << s[7-y][7-x];
        else
          cout << s[x][7-y];
      }
    cout << endl;
    }
  }
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <utility>
#include <sstream>
#include <complex>

using namespace std;

#define FOR(i,a,b) for(long long i=(a);i<(b);i++)
#define REP(i,N) for(long long i=0;i<(N);i++)
#define ALL(s) (s).begin(),(s).end()
#define fi first
#define se second

#define PI acos(-1.0)
#define INF 1000000007

typedef long long ll;
typedef pair<ll, ll> P;
typedef pair<double, double> PD;
typedef pair<string, ll> PS;
typedef vector<ll> V;

char c[8][8];

int main(){
	REP(i, 8){
		REP(j, 8){
			cin >> c[i][j];
		}
	}
	cout << 90 << endl;
	for (int j = 0; j < 8; j++){
		for (int i = 7; i >= 0; i--){
			cout << c[i][j];
		}
		cout << endl;
	}
	cout << 180 << endl;
	for (int i = 7; i >= 0; i--){
		for (int j = 7; j >= 0; j--){
			cout << c[i][j];
		}
		cout << endl;
	}
	cout << 270 << endl;
	for (int j = 7; j >= 0; j--){
		for (int i = 0; i < 8; i++){
			cout << c[i][j];
		}
		cout << endl;
	}
}

C++: #include<iostream>
#include<string>
using namespace std;
int main(){
long i,j;
string s[8],t[8]="        ";
for(i=0;i<8;i++)cin>>s[i];
for(i=0;i<8;i++)
for(j=0;j<8;j++)t[i][j]=s[7-j][i];
cout<<"90"<<endl;
for(i=0;i<8;i++)cout<<t[i]<<endl;
for(i=0;i<8;i++)
for(j=0;j<8;j++)t[i][j]=s[7-i][7-j];
cout<<"180"<<endl;
for(i=0;i<8;i++)cout<<t[i]<<endl;
for(i=0;i<8;i++)
for(j=0;j<8;j++)t[i][j]=s[j][7-i];
cout<<"270"<<endl;
for(i=0;i<8;i++)cout<<t[i]<<endl;
return 0;
}