首页 > 其他分享 >二维数组1

二维数组1

时间:2024-06-09 14:03:52浏览次数:21  
标签:10 输出 int 整数 二维 数组 年龄 输入

第1题     对角线II      时限:1s 空间:256m

输入整数 N ,输出相应方阵。

输入格式

一个整数 N 。( 0<N<10 )

输出格式

一个方阵,每个数字的场宽为 3 。

输入/输出例子1

输入:

5

输出:

  0  0  0  0  1

  0  0  0  1  0

  0  0  1  0  0

  0  1  0  0  0

  1  0  0  0  0

#include<bits/stdc++.h>
using namespace std;
long long a,s;
int main(){
	cin>>a;
	cout<<setw(3);
	for(long long i=1;i<=a*a;i++)
	{
		cout<<i<<setw(3);
		if(i%a==0)cout<<setw(3)<<endl;
	}
    return 0;
}
第2题     数字走向I     时限:1s 空间:256m

输入整数 N ,输出相应方阵。

输入格式

一个整数 N 。( 0<N<10 )

输出格式

一个方阵,每个数字的场宽为 3 。

输入/输出例子1

输入:

5

输出:

图片.png

#include<bits/stdc++.h>
using namespace std;
long long a,s;
int main(){
	cin>>a;
	cout<<setw(3);
	for(long long i=1;i<=a*a;i++)
	{
		cout<<i<<setw(3);
		if(i%a==0)cout<<setw(3)<<endl;
	}
    return 0;
}

 

第3题     奇偶统计      时限:1s 空间:256m

在一个 n 行 m 列的二维数组中,有若干奇数和偶数,请编程统计出这个二维数组中,奇数和偶数分别有多少个?

输入格式

第一行是两个整数 n 和 m ( n 和 m 都是 4∼100之间的整数),代表接下来的二维数组有 n行 m 列。

接下来 n 行,每行有 m 个整数。(这些整数都是 0∼9999 之间的整数)

输出格式

两个整数用空格隔开,分别代表二维数组中奇数、偶数的个数。

输入/输出例子1

输入:

2 2

2 3

4 6

输出:

1 3

第4题     找回文数      时限:1s 空间:256m

James同学发现了在二维数组中有一些回文数,请编程找出这些回文数,并按照输入的顺序输出。

(回文数指的是这个数正过来读和反过来读是同一个数的数,比如 1、8、99、252、1221等)。

输入格式

第一行是两个整数 n 和 m (n和 m 都是 4∼100之间的整数),代表接下来的二维数组有 n 行 m 列。

接下来 n 行,每行有 m 个整数,这些整数都是 1∼9999之间的整数。

输出格式

按照输入的顺序输出满足条件的回文数,每行 1 个。

输入/输出例子1

输入:

3 3

1 22 98

34 121 110

100 210 323

输出:

1

22

121

323

#include<bits/stdc++.h>
using namespace std;
int n,a[1000],m,j,x,b,c;
int main(){
    cin>>n>>c;
    for(int i=1;i<=n*c;i++)
    {
    	cin>>b;
    	for(m=b;m;m=m/10)
    	{
    		j++;
    		a[j]=m%10;
		}
		for(int k=1,z=j;k<=z;k++,z--)
		{
			if(a[k]!=a[z])
			{
				x=1;
				break;
			}
		}
		j=0;
		if(x==0)cout<<b<<endl;
		x=0;
	}
    return 0;
}

第5题     每个小组的最大年龄     时限:1s 空间:256m

魔法学院的同学们在操场上排成了一个 n 行 m列的队形,每行的同学属于一个小组,请问每个小组同学的最高年龄是几岁,请输出每个小组的最高年龄。 比如:如下是一个 3 行 4 列的队形,这个队形中每个数字代表了每个同学的年龄。

8 10 12 9

15 12 10 6

17 20 18 18

第一行的 4 个年龄中最高年龄是 12 岁。 第二行的 4 个年龄中最高年龄是 15 岁。 第三行的 4个年龄中最高年龄是 20 岁。

输入格式

第 1行有 2 个整数 n 和 m ,分别代表队形的行和列的值( 2≤n,m≤100 )

接下来 n 行,每行有 m 个整数,代表每个同学的年龄(每个同学的年龄的值在 1∼10000之间)

输出格式

输出 n 行,每行有一个整数,代表每个小组年龄的最大值。

输入/输出例子1

输入:

3 4

8 10 12 9

15 12 10 6

17 20 18 18

输出:

12

15

20

#include<bits/stdc++.h>
using namespace std;
int n,a,maxx=0,m;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=m;j++)
    	{
    		cin>>a;
    		if(a>maxx)maxx=a;
		}
		cout<<maxx<<endl;
		maxx=0;
    }
    return 0;
}
第6题     孤独的素数      时限:1s 空间:256m

在一个 n 行 m 列的矩阵王国中,生活着一些整数,其中一些是素数,一些不是素数。如果一个素数的上下左右、左上、右上、左下、右下相邻的数中都没有素数,我们就认为这是一个孤独的素数。

比如:一个 3行 5 列的矩阵如下。

3 8 10 9 5

6 10 2 4 13

8 8 9 6 3

这个矩阵中有 2 个素数,分别是第 1 行第 1 列的 3,和第 2 行第 3 列的 2 。

请编程计算出,一个 n 行 m 列的矩阵中有多少个孤独的素数?

输入格式

第 1 行有2 个整数 n 和m ,代表矩阵的大小(3≤n,m≤100)。

接下来 n行,每行有 m 个整数(这些整数是 1∼10000 之间的整数,含 1 和 10000 )

输出格式

输出 1个整数,代表矩阵中孤独素数的个数。

输入/输出例子1

输入:

3 5

3 8 10 9 5

6 10 2 4 13

8 8 9 6 3

输出:

2

#include<bits/stdc++.h>
using namespace std;
int n,m,a[105][105],l,h;
int f(int p)
{
	int k=0;
	for(int i=2;i<=sqrt(p);i++)
    {
		if(p%i==0){
			k++;
			break;
		}
	}
	if(k==0&&p>1)
		a[l][h]=0;
	return 0;
}
int main(){
	cin>>n>>m;
	for(int i=0;i<=n+1;i++)
		for(int j=0;j<=m+1;j++)
			a[i][j]=-1;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>a[i][j];
	for(l=1;l<=n;l++){
		for(h=1;h<=m;h++){
			f(a[l][h]);
		}
	}
	int g=0;
	for(int i=1;i<=n;i++)
    {
		for(int j=1;j<=m;j++)
        {
			if(a[i][j]==0)
            {
				if(a[i-1][j]!=0&&a[i][j-1]!=0&&a[i+1][j]!=0&&a[i][j+1]!=0)
                {
					if(a[i-1][j-1]!=0&&a[i+1][j-1]!=0&&a[i-1][j+1]!=0&&a[i+1][j+1]!=0)g++;
				}
			}
		}
	}
	cout<<g;
	return 0;
}
第7题     找朋友      时限:1s 空间:256m

小 T喜欢和自己同龄的人交朋友,现在他排在了一个 n 行 m 列的队伍中。

请问在小 T所在的行和小 T 所在的列中,他一共能交到几个朋友?

比如:一个 6行 6 列的矩阵如下,该矩阵中每个数字代表了一个同学的年龄。

8  9  7  9  5  3

2  9  15 9  9  12

21 3  4  6  7  9

10 10 8  2  3  6

5  4  2  9  5  10

9  11 2  9  5  7

假设小 T 在第 2 行第 4 列对应的位置,也就是他的年龄是 9 岁,他所在的第 2 行除了小 T 还有 2 个人是 9 岁,他所在的列除了小 T 有 3 个人是 9 岁,因此他可以交到 5 个朋友。

输入格式

第 1 行有 2 个整数 n 和 m ,分别代表队形的行和列的值( 2≤n,m≤200 )

接下来 n 行,每行有m 个整数,代表每个同学的年龄(每个同学的年龄的值在 1∼100 之间)

接下来最后一行有 2个整数,代表小 T 在第几行第几列

输出格式

输出一个整数,代表小 T 可以交到的朋友的数量。

输入/输出例子1

输入:

6 6

8 9 7 9 5 3

2 9 15 9 9 12

21 3 4 6 7 9

10 10 8 2 3 6

5 4 2 9 5 10

9 11 2 9 5 7

2 4

输出:

5

#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d,s[205][205],x=-2;
int main(){
	cin>>a>>b;
	for(int i=1;i<=a;i++){
		for(int j=1;j<=b;j++){
			cin>>s[i][j];
		}
	}
	cin>>c>>d;
	for(int j=1;j<=b;j++){
		if(s[c][j]==s[c][d]){
			x++;
		}
	}
	for(int i=1;i<=a;i++){
		if(s[i][d]==s[c][d]){
			x++;
		}
	}
	cout<<x<<endl;
	return 0;
}
第8题     两个数相邻吗      时限:1s 空间:256m

同学们在操场上排成了一个 n 行 m 列的队形,假设这个队形中所有人年龄都不同,那么给定 2 个年龄后,请你编程判断,这 2 个年龄对应的同学是否相邻?

相邻的定义是:如果两个同学在上下左右的位置是挨在一起的,那么就算是相邻的。

比如:如下是一个 3 行 4 列的队形,这个队形中每个数字代表了每个同学的年龄。

8 2 3 4

5 6 7 1

9 10 11 12

那么这个队形中,年龄 6 和年龄 10 两个值就是相邻的。

输入格式

第 1行有 2 个整数 n 和 m ,分别代表队形的行和列的值( 2≤n,m≤200)

接下来 n 行,每行有 m 个整数,代表每个同学的年龄(每个同学的年龄的值在 1∼100 之间)

最后一行输入 2个整数,代表 2 个不同年龄的值。

输出格式

如果两个年龄的值是相邻的,请输出字符 Y ,否则请输出字符 N 。

输入/输出例子1

输入:

3 4

8 2 3 4

5 6 7 1

9 10 11 12

6 10

输出:

Y

#include<bits/stdc++.h>
using namespace std;
long long m,n,t1,t2,a[205][205];
int main(){ 
    cin>>n>>m;
    for(int i=1;i<=n;i++)
       for(int j=1;j<=m;j++)
    		cin>>a[i][j];			    
    cin>>t1>>t2;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(a[i][j]==t1)
            {
        	    if(a[i-1][j]==t2||a[i+1][j]==t2||a[i][j+1]==t2||a[i][j-1]==t2)
                {
                    cout<<"Y";
                    return 0;
                }
            }
        }
    }
    cout<<"N";	    		    		  	
    return 0;
}

标签:10,输出,int,整数,二维,数组,年龄,输入
From: https://blog.csdn.net/mayuteng1/article/details/139561043

相关文章

  • 二维数组2(第2~5题是Goc语言,其余是C++语言)
    第1题    对角线    时限:1s空间:256m输入整数N,输出相应方阵。输入格式一个整数N。(0<n<10)输出格式一个方阵,每个数字的场宽为3。输入/输出例子1输入:5输出: 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 ......
  • Java数据结构与算法(最大子数组和动态规划)
    前言动态规划主要用于解决具有重叠子问题和最优子结构性质的问题。它通过将问题分解为子问题来解决复杂问题,每个子问题仅解决一次,并将其结果存储,以供后续使用,从而避免了重复计算。对应leetcode.-力扣(LeetCode)实现原理两次循环遍历,采用固定其实位置为i,不断滑动j的思想,来计......
  • Java——二维数组
    一、二维数组介绍二维数组与一维数组很相似。可以说二维数组是元素为一维数组的数组,也就是一维数组的数组。每个元素可以通过行索引和列索引来访问。1、二维数组的创建我们知道,在C语言中,二维数组是一个连续的内存块,通常在声明时需要指定列数:列数必须确定:在编译时,列数必须......
  • C语言学习笔记(八)————数组
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1一维数组1.2一维数组的引用1.3一维数组的初始化2二维数组2.1二维数组的定义2.2二维数组的存放顺序3多维数组总结前言一个学习C语言的小白,有问题评论或私信~本文主要记录C语言......
  • 代码随想录算法训练营 day31 | 455.分发饼干 376.摆动序列 53.最大子数组和
    376.摆动序列说实话,没明白为啥算是贪心。最开始的思路是去重,然后统计正负变化次数。classSolution{public:intwiggleMaxLength(vector<int>&nums){if(nums.size()==1)return1;intans=0,last=-2,now;for(inti=1;i<nums.size();......
  • 柔性数组+总结C/C++中程序内存区域划分
    柔性数组一.柔性数组1.柔性数组的定义2.柔性数组的特点3.柔性数组的使用4.柔性数组的优势二.总结C/C++中程序内存区域划分前言:也许你从来没有听说过柔性数组这个概念,但是它确实是存在的。一.柔性数组1.柔性数组的定义C99中,结构体中的最后一个元素允许是未知大小的......
  • 【一百零九】【算法分析与设计】树状数组求解前缀最大值,673. 最长递增子序列的个数,
    树状数组求解前缀最大值树状数组可以求解和前缀区间有关的问题,例如前缀和,前缀区间最值.可以利用logn......
  • 【一百一十】【算法分析与设计】[SDOI2009] HH的项链,树状数组应用,查询区间的种类数,
    P1972[SDOI2009]HH的项链[SDOI2009]HH的项链题目描述HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问......
  • 后缀数组
    1概念首先我们需要先定义后缀,这个其实很简单。我们定义后缀\(i\)表示以第\(i\)个字符开头的后缀,相当于\(s[i,n]\)。而后缀数组则主要关系到两个数组:\(sa\)和\(rk\)。其中\(sa\)表示将所有后缀按字典序排序后第\(i\)小的后缀的编号(即后缀开头所在位置的下标),这就是后......
  • 后缀数组学习笔记
    1.前置知识:基数排序1.1.思想现有如下序列:3,44,38,5,47,15,36,32,50,现在要用基数排序算法排序,要怎么做?基数排序的初始状态如下:按照个位将原序列中的数分组,放入对应的集合将分好的数按照个位的顺序取出,得到:将序列中的数重新按照十位分组,放入对应集合:将每一位上......