[OI - char]有关二维字符型数组的读入

有关二维字符型数组的读入



今天LYOI日常模拟赛
窝因为T3读入二维字符型数组时出了锅导致爆零qwq

步入正题

那么该如何读入二维的字符型数组呢
假设我们想读入n = 6的二维字符型数组

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
//#define DEBUG(x) cerr << #x << "=" << x << endl
char a[100][100];

int main()
{
    int n = 6;
    for (int i = 1; i <= n; i++)
    {
        scanf("%s", a[i]);
    }
    for (int i = n; i >= 1; i--)
    {
        printf("%s\n", a[i]);
    }
    return 0;
}

因为scanf读入的是一维的
所以我们只需要读入a[n]即可
这样就变成了二维
如果我们输入

W
Q
Z
X
love
I

那么我们运行程序,即可得到结果

I
love
X
Z
Q
W

没错这看似很简单
实际上就是很简单....qwq
qwq...我菜爆了
距离NOIP2018仅剩8天
祝各位++RP

原文地址:https://www.cnblogs.com/aiyi2000/p/9886411.html

时间: 2024-10-02 17:14:00

[OI - char]有关二维字符型数组的读入的相关文章

使用二分法查询二维整型数组的值(找到返回其坐标)

该二维数组的特征是: a.每行中的整数从左到右按升序排列. b.每行的第一个整数大于前一行的最后一个整数. 可以每行都进行二分查找(由于该数组的特征,所以可以先将要查找的数与本行的最后一个数据比较,若大于则直接进入下一行比较,增加效率,减少比较的次数),如果未找到则进入下一层,直到找完该二维数组. private static String find(int[][] arr, int num) { int row = 0; //控制行数 while (row < arr.length){ int

数组问题(三)求二维整型数组最大联通子数组的和

相较于上次求最大子矩阵的和,这次明显更难了一些. 将问题分解并分析,可以想到 先求各行中的最大子数组,并记录下标,求完之后再将各行的最大子数组的下标进行比较可以得到两种情况 1.上一行的最大子数组下标范围和下一行的最大子数组下标范围有重合的部分. 2.上一行的最大子数组下标范围和下一行的最大子数组下标范围无重合的部分. 程序代码: #include<iostream> using namespace std; int calculate(int n,int a[],int &sm,in

作业-----二维整型数组求最大最小值简单改进

1 public class Text1 2 { 3 public static void main(String[] args) 4 { 5 System.out.println("求数组中最大数跟最小数:a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}"); 6 int[][] a={{3,2,6},{6,8,2,10},{5},{12,3,23}}; 7 int max=a[0][0]; 8 int min=a[0][0]; 9 for(int i

输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。

#include <stdio.h>#include <string.h> /*输入5个学生的名字(英文),使用冒泡排序按从大到小排序.提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个字符串数组就是一个二维字符数组.*/ void main(){ char stuNames[5][100]; char tmp[100]; int i = 0,j = 0; for(i = 0; i < 5; i++) { printf("请输入第%d个学生的名字:"

字符串分割到二维字符数组中:

/* *字符串分割,把一个长的字符串(可能有空格),分割到一个二维字符数组中. *并且输出 * *时间复杂度O(N) *注意在操作二维字符串数组时:使用"数组指针"操作能方便 int(*p)[LEN]; * */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<stdbool.h> #define NDEBUG #include<assert.h>

sort对二维字符数组排序(转)

由于二维字符数组的第二维没有赋值运算符,即不能对整个一维数组进行赋值,因此是无法直接对二维数组用sort进行排序的,解决办法有二种: 代码一: 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 struct Data 7 { 8 char data[100]; 9 }str[100]; 10 11 bool cmp(const Data

在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

//在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’:输出这个数组中的所有元素. char [][]y=new char [10][10]; for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { if(i==j||i+j==9) { y[i][j]='*'; } else { y[i][j]='#'; } } } for(int i =0;i<10;i++) { for(int k

返回二维数组子数组联通和最大

分析 1,开始先将将二维矩阵转换成图的存储形式,当两个相邻的数之间是联通的时,记长度为1,否则就是0: 2,将整个图从每个点都开始遍历一遍,遍历过程中时,当和小于0时断开两点间的路,当和大于最大和时改变最大和的值: 3,取以每个点为起点遍历的和的最大值即时最大联通子数组的和.遍历时,选取已遍历的联通子数组周围最大值遍历.经过重复的几次遍历就可以确定此数组中最大连通数组和了. 题目要求: 放在一个input.txt的文件中 数组里面有正数有负数 返回联通子数组和最大的值 #include<fstr

按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

package com.homework.zw; public class work3 { public static void main(String[] args) {//定义数组x和y的类型 int[] x=new int[50]; char[][] y=new char[10][10]; int j =1; int n =0; //定义数组x的每一个元素 for(int i=0;i<50;i++) { x[i]=j; j=j+2; } System.out.println("一维数