请你对行和列都倒置,然后输出之。
#include <stdio.h> int main() { char a[1000][1000]; long int row = 0; long int col = 0; scanf("%ld %ld", &row, &col); /* 先对行进行扫描 */ for (long int i = 0; i < row; i++) { getchar(); /* 去除换行符 */ for (long int j = 0; j < col; j++) { scanf("%c", &a[i][j]); } } for (long int i = row - 1; i >= 0; i--) { for (long int j = col - 1; j >= 0; j--) { printf("%c", a[i][j]); } printf("\n"); } return 0; }
/*将二维数组作为整体进行处理,每行末尾插入换行符, 最后一行不插入换行符,最后对整个字符串逆序输出。*/
#include <iostream> #include <algorithm> #include <string> using namespace std; string my_reverse(string s, int begin, int end){ char temp; while(begin<end){ temp=s[begin]; s[begin]=s[end]; s[end]=temp; begin++; end--; } return s; } int main() { int n, m; string s, res; cin>>n>>m; for(int i=0; i<n; i++){ cin>>s; res += s; if(i!=n-1) res += '\n'; } cout<<my_reverse(res, 0, n*m+n-2); return 0; }
import java.util.Scanner; class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); sc.nextLine(); char [][] a = new char[n][m]; for(int i = 0; i<n; i++){ String line = sc.nextLine(); for(int j=0; j<m ;j++){ a[i][j] = line.charAt(j); } } // 输出结果 for (int i = n-1; i >= 0; i--) { for (int j = m-1; j >= 0; j--) { System.out.print(a[i][j]); } System.out.println(); } sc.close(); } }
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); in.nextLine(); char[][] arr = new char[n][m]; for (int i = n; i > 0;) { i--; String line = in.nextLine(); int k = 0; for (int j = m; j > 0;) { j--; arr[i][k++] = line.charAt(j); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.print(arr[i][j]); } System.out.println(); } } }
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int n = in.nextInt(); int m = in.nextInt(); char[][] c = new char[n][m]; for (int i = 0; i < n; i++) { String s = in.next(); for (int j = 0; j < m; j++) { c[i][j] = s.charAt(j); } } char[][] r = new char[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { r[i][j] = c[n-1-i][m-1-j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { System.out.print(r[i][j]); } System.out.println(); } } }
using System.Linq; public class Program { public static void Main() { //获取行列数 string[] tokens = System.Console.ReadLine ().Split(); int x = int.Parse(tokens[0]); int y = int.Parse(tokens[1]); string strSum = string.Empty; //每行字符串倒序,插入到字符串集合的前部 for (int i = 0; i < x; i++) { string line = System.Console.ReadLine (); strSum = new string(line.Reverse().ToArray()) + strSum; } //分行输出 int k = 0; for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { System.Console.Write(strSum[k]); k++; } System.Console.WriteLine();//换行 } } }
package main import ( "fmt" "bufio" "os" ) func main() { var n, m int fmt.Scan(&n, &m) // 使用切片动态分配二维数组 a := make([][]rune, n) for i := range a { a[i] = make([]rune, m) } scanner := bufio.NewScanner(os.Stdin) // 输入二维数组 for i := 0; i < n; i++ { scanner.Scan() line := scanner.Text() for j,char := range line{ a[i][j] = char } } // 输出二维数组的逆序 for i := n - 1; i >= 0; i-- { for j := m - 1; j >= 0; j-- { fmt.Print(string(a[i][j])) } fmt.Println() } }