首页 > 编程语言 >二维数组2(第2~5题是Goc语言,其余是C++语言)

二维数组2(第2~5题是Goc语言,其余是C++语言)

时间:2024-06-09 14:03:39浏览次数:16  
标签:输出 语言 10 int 矩阵 50 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  0  1  0
  0  0  0  0  1

#include<bits/stdc++.h>
using namespace std;
int n,s,z;
int main(){
    cin>>n; 
    s=1;
    for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=n;j++)
    	{
    		cout<<setw(3);
    		if(j==s)cout<<1;
    		else cout<<0;
		}
		s++;
		cout<<endl;
	}
    return 0;
}
第2题     相同像素

给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相同像数。
说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。


 

输入格式

第一行包含两个整数

第一行包含两个整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 <= m <= 100, 1 <= n <= 100。
之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。
之后m行,每行n个整数0或1,表示第二幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。 

数据范围限制 

1 <=m<=100,1<=n<=100 

输出格式

一个整数s,表示像素点相同的个数。以s%50+50为半径,s%15为颜色编号,画实心圆,并使用text命令画出s的值,白色,大小为50。
 

输入/输出例子1

输入:

3 3

1 0 1

0 0 1

1 1 0

1 1 0

0 0 1

0 0 1

输出:

图片.png

int a[110][110],b[110][110];
int s;
void z(int n,int m)
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>a[i][j];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>b[i][j];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(a[i][j]==b[i][j])
				s++;
}
int main(){
    int n,m;
    cin>>n>>m;
    z(n,m);
    p.oo(s%50+50,s%15).text(s,15,50);
    return 0;
}

第3题     计算鞍点

给定一个5×5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。

例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。

11 3 5 6 9

12 4 7 8 10

10 5 6 9 11

8 6 4 7 2

15 10 11 20 25

输入格式

输入包含一个5行5列的矩阵。

输出格式

如果存在鞍点,求出鞍点所在的行x、列y及其值s,如果存在多个鞍点,只输出行最小、列最小的那个。分别以x%15、y%15、s%15为颜色编号,画出直接为50的实心圆,同时以text命令显示x、y、s的值。

如果不存在鞍点,则画半径为100的红色实心圆,并text命令显示"not found"。

输入/输出例子1

输入:

11 3 5 6 9

12 4 7 8 10

10 5 6 9 11

8 6 4 7 2

15 10 11 20 25

输出:

图片.png

int a[10][10],max[10],min[10],z;
int main(){
    p.rt(90).up().bk(350);
    for(int i=1;i<=6;i++)
        min[i]=1000;
    for(int i=1;i<=5;i++)
		for(int j=1;j<=5;j++)
		    cin>>a[i][j];
	for(int i=1;i<=5;i++)
	    for(int j=1;j<=5;j++)
	    	if(a[i][j]>max[i])
	    	    max[i]=a[i][j];
	for(int i=1;i<=5;i++)
		for(int j=1;j<=5;j++)
		    if(a[j][i]<min[i])
		        min[i]=a[j][i];
	for(int i=1;i<=5;i++)
		for(int j=1;j<=5;j++)
			if(a[i][j]==max[i]&&a[i][j]==min[j]) 
			{
				p.oo(50,i%15).text(i).fd(100).oo(50,j%15).text(j).fd(100);
                p.oo(50,a[i][j]%15).text(a[i][j]).fd(100);
				z=1;
			}
	if(z==0) 
        p.fd(200).oo(100,1).text("not found");
    return 0;
}

第4题     计算矩阵边缘元素之和

输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。

输入格式

第一行分别为矩阵的行数m和列数n(m<100,n<100),两者之间以一个空格分开。

接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。

输出格式

设对应矩阵的边缘元素和为sum。以s%50+50为半径,s%15为颜色编号,画实心圆,并使用text命令画出s的值,白色,大小为50。
 

输入/输出例子1

输入:

3 3

3 4 1

3 7 1

2 0 1

输出:

图片.png

int main(){
    int n,m,a,s;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cin>>a;
            if(i==1||i==n||j==1||j==m)s=s+a;
        }
    }
    p.oo(s%50+50,s%15).text(s,15,50);
    return 0;
}

第5题     蛇形填数

如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …

容易看出矩阵第二行第二列中的数是 5。

请你计算矩阵中第 n 行第 n 列的数是多少?

输入格式

一个整数N,N<=1000

输出格式

以矩阵中第 n 行第 n 列的数s%15为颜色编号,s%50+50为半径画实心圆。

输入/输出例子1

输入:

20

输出:

图片.png

int main(){
    int n,a,s,q;
    cin>>n;
    a=n*2-1;
    for(int i=0;i<=a;i++)
        s=s+i;
    q=s-a/2;
    p.oo(q%50+50,q%15);
    return 0;
}

第6题     蛇形填数     时限:5s 空间:256m

如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …

容易看出矩阵第二行第二列中的数是 5。

请你计算矩阵中第 n 行第 n 列的数是多少?

输入格式

一个整数N,N<=10^5

输出格式

一个整数,表示矩阵中第 n 行第 n 列的数

输入/输出例子1

输入:

20

输出:

761

#include<bits/stdc++.h>
using namespace std;
long long n,a,s,q;
int main(){
    cin>>n;
    a=n*2-1;
    for(int i=0;i<=a;i++)
        s=s+i;
    q=s-a/2;
    cout<<q;
    return 0;
}
第7题     监考老师      时限:1s 空间:256m

在一个大试场里,有n行m列的考生,小王和众多同学正在考试,这时,有一部分考生作弊,当然,监考老师能发现他们。但是只有一个监考老师,他由于高度近视,只能发现与他同行同列的作弊者,而且由于监考老师年老体弱,在考试过程中无法移动。现在已知n*m个考生中谁在作弊,请帮监考老师找一个位置,可以发现最多的作弊者(监考老师可以和某个考生在同一位置)。如果监考老师的位置上的考生在作弊,那么监考老师先前后看,发现学生A作弊,再左右看,又发现学生A作弊,算做发现2个考生作弊。  

输入格式

第一行两个数n,m ,表示试场是n*m的,接下来是n*m的矩阵,1表示作弊,0表示不作弊。 

【数据范围】 
对于50 %的数据,n,m大于0小于等于10,对于100 %的数据,n,m大于0小于等于2000。 

输出格式

共一行,一个数,表示最多可以发现多少作弊者。  

输入/输出例子1

输入:

5 5

0 0 1 0 0

0 0 1 0 0

1 1 1 1 1

0 0 1 0 0

0 0 1 0 0

输出:

10

样例解释

监考老师在最中间,那个位置上的作弊者算作2次

#include<bits/stdc++.h>
using namespace std;
long long n,a[2005],b[2005],s,m,maxx=0;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            int t;
            cin>>t;
            if(t==1)a[i]++,b[j]++;
        }
    }
    sort(a+1,a+n+1);
    sort(b+1,b+m+1);
    cout<<a[n]+b[m];
    return 0;
}
第8题     地毯      时限:1s 空间:256m

在 n×n 的格子上有 m个地毯。

给出这些地毯的信息,问每个点被多少个地毯覆盖。

输入格式

第一行,两个正整数 n,m。意义如题所述。

接下来 m行,每行两个坐标 (x1,y1) 和 (x2,y2),代表一块地毯,左上角是 (x1,y1),右下角是(x2,y2)。

对于 20% 的数据,有 n≤50,m≤100。

对于 100% 的数据,有 n,m≤1000

输出格式

输出 n行,每行 n个正整数。

第 i 行第 j列的正整数表示 (i,j)这个格子被多少个地毯覆盖。

输入/输出例子1

输入:

5 3

2 2 3 3

3 3 5 5

1 2 1 4

输出:

0 1 1 1 0

0 1 1 0 0

0 1 2 1 1

0 0 1 1 1

0 0 1 1 1

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1005][1005],x,y,xx,yy;
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>x>>y>>xx>>yy;
        for(int k=x;k<=xx;k++)
        {
            for(int q=y;q<=yy;q++)
            {
                a[k][q]++;
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}
第9题     倒三角数阵     时限:1s 空间:256m

输入一个整数N,输出一个倒三角数阵!每个数字场宽为4。

输入格式

一个整数n ,n<=20。

输出格式

相应的数阵。

输入/输出例子1

输入:

5

输出:

   1   3   6  10  15

   2   5   9  14

   4   8  13

   7  12

  11

#include<bits/stdc++.h>
using namespace std;
long long n,s,m=1,z;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        s=m,z=i+1,m=m+i;
        for(int j=1;j<=n-i+1;j++)
        {
            cout<<s<<" ";
            s=s+z,z++;
        }
        cout<<endl;
    }
    return 0;
}

标签:输出,语言,10,int,矩阵,50,Goc,C++,输入
From: https://blog.csdn.net/mayuteng1/article/details/139561145

相关文章

  • C++的近邻算法详解及应用
            近邻算法,也被称为最近邻算法或k-近邻算法(k-NN),是一种基本的分类和回归方法。它基于实例进行学习,无需进行模型训练,而是直接通过计算待分类样本与已知类别样本之间的距离来确定其所属类别。在C++中,我们可以通过编写特定的函数或利用现有的库来实现近邻算法。  ......
  • C++三大特性之多态
    1.多态1.1多态的概念在面向对象方法中一般是这样表述多态性的:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。通俗来说,就是......
  • C++20 新特性: 三向比较运算符
    目录标题功能和用法示例代码如何重载三向比较运算符示例:重载三向比较运算符注意事项结语C++20引入了一种新的比较运算符,称为“三向比较运算符”或“太空船运算符”,其符号为<=>。这个运算符提供了一种简化方式来同时比较两个值的相等性、小于和大于状态。这一特......
  • C语言王国——数据的内存管理
    目录一、引言二、整形在内存中的存储2.1进制之间的转换2.1.1整形的二进制2.1.2 十进制和二进制2.1.3十进制和八进制的转换2.1.4 十六进制和十进制的转换2.2原码,反码,和补码三、大、小端字节序3.1大小端的定义3.2为什么会有大小端之分3.3代码区分四、浮......
  • C++入门7 类|构造函数|析构函数
    一,类型设计和实例化对象封装是面向对象程序设计最基本的特性, 把数据 (属性) 和函数 (操作) 合成一个整体,这在计算机世界中是用类与对象实现的。C++中类的设计1 class 类型名称2 {3 public:4 成员列表1;5 protected:6 成员列表2;7 private:8 成员列表3;......
  • 【机器学习】与【数据挖掘】技术下【C++】驱动的【嵌入式】智能系统优化
    目录一、嵌入式系统简介二、C++在嵌入式系统中的优势三、机器学习在嵌入式系统中的挑战四、C++实现机器学习模型的基本步骤五、实例分析:使用C++在嵌入式系统中实现手写数字识别1.数据准备2.模型训练与压缩3.模型部署六、优化与分析1.模型优化模型量化模型剪枝......
  • (C语言)常见字符函数和字符串函数(详解)
    我们都知道,在C语言里有string.h这个头文件,但是C语言里没有string这个类型。字符串通常放在常量字符串中或者字符数组中,字符串常量适用于那些对她不做修改的字符串函数。string.h这个头文件里声明的函数原型也全是针对char数组的种种操作。直到C++中才出现了string这个类这......
  • 【调整堆】(C++ 代码实现 & 注释详解)
     自定义结构体:#definesz105typedefstructnode{ intlength; intl[sz];}SqList; 调整堆的函数:HeapAdjust函数思路说明://目标:将以s为根的子树调整为大根堆//具体操作:将路径上比s大的都往上移动,s往下移动,直到遇到比s还小的,就“放下”svoidHeapAdjust(SqList......
  • 跨语言系统中的功能通信:Rust、Java、Go和C++的最佳实践
    在现代软件开发中,使用多种编程语言构建复杂系统已成为一种常见的做法。每种编程语言都有其独特的优势和适用场景,这使得在同一个系统中使用多种语言变得合理且高效。然而,这也带来了一个重要的挑战:如何在这些不同语言之间实现高效、可靠的功能通信。本文将探讨Rust、Java、Go和C+......
  • 程序的基本结构、cout语句(c++语言)
    一、如何下载Dev C++    登录网站:ht.51goc.com二、安装DevC++一、启动DevC++   双击桌面的图标 二、新建一个程序三、复制一个程序    请你复制以下代码到“程序编辑区”    #include<bits/stdc++.h>usingn......