二维数组一

目录

|-----------|------------|------------|-------------|
| 输出数组的第k行数 | 输出数组的第k列数 | 输出数组的每一行的和 | 输出数组的每列的平均值 |
| 最高成绩 | 各个科目成绩的平均分 | 求最大梯形的面积 | 入门靶心数 |
| 奇偶统计 | | | |

输出数组的第k行数

题目描述

输入一个二维数组,显示他的第k行的值。

输入

第一行 n,m两个整数,代表数组的行,列(m<100,n<100)

n行,每行m个整数

一个整数k

输出

第k行所有的数据 用空格隔开

cpp 复制代码
样例
输入复制
4 4
2 6 5 9
1 3 7 8
5 3 5 5
1 7 1 2
2
输出复制
1 3 7 8
cpp 复制代码
#include<iostream>
using namespace std;
int main(){
	int a[100][100];
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	int k;
	cin>>k;
	for(int i=1;i<=n;i++){
		cout<<a[k][i]<<"\t";
	}
}

输出数组的第k列数

题目描述

输入一个二维数组,显示他的第k列的值。

输入

第一行 n,m两个整数,代表数组的行,列(m<100,n<100)

n行,每行m个整数

一个整数k

输出

第k列所有的数据 用空格隔开

cpp 复制代码
样例
输入复制
4 4
2 6 5 9
1 3 7 8
5 3 5 5
1 7 1 2
2
输出复制
6 3 3 7
cpp 复制代码
#include<iostream>
using namespace std;
int main(){
	int a[100][100];
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	int k;
	cin>>k;
	for(int i=1;i<=n;i++){
		cout<<a[i][k]<<" ";
	}
	return 0;
}

输出数组的每一行的和

题目描述

输入一个二维数组,显示他的每一行的和

输入

第一行 n,m两个整数,代表数组的行,列(m<100,n<100)

n行,每行m个整数

输出

一行数据,用空格隔开,表示数组每一行的和

cpp 复制代码
样例
输入复制
4 4
2 6 5 9
1 3 7 8
5 3 5 5
1 7 1 2
输出复制
22 19 18 11
cpp 复制代码
#include<iostream>
using namespace std;
int main(){
	int a[100][100];
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			a[i][0]=a[i][0]+a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		cout<<a[i][0]<<"\t";
	}
}

输出数组的每列的平均值

题目描述

输入一个二维数组,显示他的每一列的平均值

输入

第一行 n,m两个整数,代表数组的行,列(m<100,n<100)

n行,每行m个整数

输出

一行数据,用空格隔开,表示数组每列行的平均值(保留整数部分)

cpp 复制代码
样例
输入复制
4 4
2 6 5 9
1 3 7 8
5 3 5 5
1 7 1 2
输出复制
2 4 4 6
cpp 复制代码
#include<iostream>
using namespace std;
int main(){
	int a[100][100],sum[100];
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			sum[j]=sum[j]+a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		cout<<sum[i]/n<<" ";
	}
}

最高成绩

题目描述

期末考试结束后,班主任想知道(语文、数学、英语)每一科目最高成绩是多少,

以及他是第几个同学

输入

n代表班级里的学生数量

n行,每行三个数,分别代表每个同学的语文、数学、英语成绩

输出

3行,代表班级语文、数学、英语成绩最高得分

cpp 复制代码
样例
输入复制
5
70 80 92
90 99 86
99 85 91
96 96 87
83 87 90
输出复制
99 3
99 2
92 1
cpp 复制代码
#include<iostream>
using namespace std;
int main(){
	int a[100][100],mai[100],max[100]={-1};
	int m;
	cin>>m;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=3;j++){
			cin>>a[i][j];
			if(a[i][j]>max[i]){
				max[i]=a[i][j];
				mai[i]=i;
			}
		}
	}
	for(int i=1;i<=3;i++){
		cout<<max[i]<<" "<<mai[i]<<endl;
	}
}

各个科目成绩的平均分

题目描述

请从键盘读入一个整数n(n<=100),代表一个班级同学的人数,

然后读入n个人的语文、数学、英语成绩;请求出这n个人的语文、

数学、英语三科成绩的平均分分别是多少,结果保留1位小数。

输入

第一行:一个整数n,代表班级的人数!

第2行~第n+1行,输入n个同学的语文、数学、英语成绩,每行输

入一个同学的成绩,成绩用空格隔开!

输出

输出语文、数学、英语三科的平均成绩,分别用空格隔开,平均成

绩保留1位小数!

cpp 复制代码
样例
输入复制
2
100 99 98
99 98 97
输出复制
99.5 98.5
cpp 复制代码
#include<iostream>
using namespace std;
int main(){
	int a[100][100],b[100];
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=3;j++){
			cin>>a[i][j];
			b[j]=b[i]+a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		cout<<1.0*b[i]/3<<" "<<endl;
	}
}

求最大梯形的面积

题目描述

从键盘读入n(3<=n<=100)个梯形的上底、下底和高,请问这n个梯形中,

最大面积的梯形的面积是多少?(梯形面积的求解公式为 S = (a + b) *

h / 2,也就是(上底 + 下底) * 高 / 2)

(5.1.18)

输入

第1行为1个整数n,接下来n行每行3个整数分别代表梯形的上底、下底

和高。

输出

最大面积梯形的面积(结果保留1位小数)

cpp 复制代码
样例
输入复制
3
1 2 3
3 4 5
2 3 4
输出复制
17.5
cpp 复制代码
#include<iostream>
using namespace std;
int main(){
	int a[100][100],b[100];
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=3;j++){
			cin>>a[i][j];
		}
		b[i]=(a[i][1]+a[i][2])*a[i][3]/2;
	}
	for(int i=1;i<=n;i++){
		cout<<1.0*b[i]<<" "<<endl;
	}
}

入门靶心数

题目描述

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

有多少个?

输入

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

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

输出

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

cpp 复制代码
样例
输入复制
2 2
2 3
4 6
输出复制
1 3
cpp 复制代码
#include<iostream>
using namespace std;
int main()
{
	int a[100][100];
	int cnt1=0,cnt2=0;
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			if(a[i][j]%2==0){
				cnt2++;
			}
			else{
				cnt1++;
			}
		}
	}
	cout<<cnt1<<" "<<cnt2;
}

奇偶统计

题目描述

在一个n行m列的二维数组中,有若干奇数和偶数,请编程统计

出这个二维数组中,奇数和偶数分别有多少个?

输入

第一行是两个整数n和m(n和m都是4~100之间的整数),代表

接下来的二维数组有n行m列。

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

数)

输出

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

cpp 复制代码
样例
输入复制
2 2
2 3
4 6
输出复制
1 3
cpp 复制代码
​
#include<iostream>
using namespace std;
int main()
{
	int a[100][100];
	int cnt1=0,cnt2=0;
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			if(a[i][j]%2==0){
				cnt2++;
			}
			else{
				cnt1++;
			}
		}
	}
	cout<<cnt1<<" "<<cnt2;
}

​

找回文数?

题目描述

James同学发现了在二维数组中有一些回文数,请编程找出这些回文数,并按照输入的顺序输出。 (回文数指的是这个数正过来读和反过来读是同一个数的数,比如1、8、99、252、1221等)。

输入

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

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

输出

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

cpp 复制代码
样例
输入复制
3 3
1 22 98
34 121 110
100 210 323
输出复制
1
22
121
323
cpp 复制代码
#include<iostream>
using namespace std;
int main()
{
	int n,m;
	cin>>n>>m;
	int a[100][100];
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cin>>a[i][j];
			int t=a[i][j];
			int g=t%10;
			int s=t/10%10;
			int b=t/100%10;
			int q=t/1000%10;
			if(q==0&&s==0&&b==0){
				cout<<a[i][j]<<endl;
			}
			else if(q==0&&b==0){
				if(s==g){
					cout<<a[i][j]<<endl;
				}
			}
			else if(q==0){
				if(g==b){
					cout<<a[i][j]<<endl;
				}
			}
			else if(q!=0&&s!=0&&b!=0){
				if(g==q&&s==b){
					cout<<a[i][j]<<endl;
				}
			}
		}
	}
}

石头剪刀布?

题目描述

石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出

拳一样,则不分胜负。一天,小a和小b正好在玩石头剪刀布,假设1代表石头,2代

表剪刀,3代表布。小a和小b一共玩了n轮,请问最后的比赛结果是小a赢了还是小b

赢了,还是平局?

注意:最终输赢按照小a和小b赢的总次数计算。例如:共比赛7局,小a赢了4局,

小b赢了3局,那么输出"a win"。

输入

第一行,是一个整数n(n<=100)

接下来n行,每行有2个数,分别代表每轮比赛中小a和小b的出拳。

输出

如果小a赢了,输出字符串"a win",如果小b赢了,输出字符串"b win",如果

平局则输出字符串"tie"。(请注意:输出的字符串全部是小写)

cpp 复制代码
样例
输入复制
3
1 2
2 3
1 1
输出复制
a win
cpp 复制代码
#include<iostream>
using namespace std;
int main()
{
	int n,m,cnt1=0,cnt2=0;
	cin>>n>>m;
	int a[110][110];
	for(int i=0;i<n;i++){
		for(int j=0;j<2;j++){
			cin>>a[i][j];
		}
	}
    for(int i=0;i<n;i++){
		if(a[i][0]==1&&a[i][1]==2){
			cnt1++;
		}
		if(a[i][0]==2&&a[i][1]==3){
			cnt1++;
		}
		if(a[i][0]==3&&a[i][1]==1){
			cnt1++;
		}
		if(a[i][0]==1&&a[i][1]==3){
			cnt2++;
		}
		if(a[i][0]==2&&a[i][1]==1){
			cnt2++;
		}
		if(a[i][0]==3&&a[i][1]==2){
			cnt2++;
		}
	}	
	if(cnt1>cnt2){
		cout<<"a win";
	}
	if(cnt1<cnt2){
	    cout<<"b win";
	}
	if(cnt1==cnt2){
		cout<<"tfe";
	}
}

计算鞍点

描述

给定一个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列的矩阵

输出

如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"

cpp 复制代码
#include<iostream>
#include<iostream>
using namespace std;
int main(){
	int a[10][10]={ 0 };
	int ma[6];
	int mi[6]={9999,9999,9999,9999,9999,9999};
	for(int i=1;i<=5;i++){
		ma[i]=-9999;
		for(int j=1;j<=5;j++){
			cin>>a[i][j];
			if(ma[i]<a[i][j]){
				ma[i]=a[i][j];
				a[0][i]=j;
			}
			if(mi[j]>a[i][j]){
				mi[j]=a[i][j];
				a[0][j]=i;
			}
		}
	}
	for(int i=1;i<=5;i++){
		if(a[i][a[i][0]]==i){
			cout<<i<<" "<<a[i][0]<<" "<<a[i][a[i][0]];
			return 0;
		}
	}
	cout<<"not found"<<endl;
}
相关推荐
山居秋暝LS40 分钟前
目标跟踪之sort算法(3)
python·算法·目标跟踪·sort
{⌐■_■}2 小时前
【Validator】自定义字段、结构体补充及自定义验证,go案例讲解ReportError和errors.As在其中的使用
开发语言·golang·xcode
python算法(魔法师版)4 小时前
C++游戏开发深度解析
开发语言·c++·c
siy23335 小时前
[c语言日寄]assert函数功能详解
c语言·开发语言·笔记·学习·算法
不停留5 小时前
贪心算法-跳跃游戏
前端·javascript·数据结构·算法·贪心算法
Ning_.6 小时前
LeetCode 349题解:两个数组的交集
数据结构·算法·leetcode
xiao--xin6 小时前
LeetCode100之全排列(46)--Java
java·算法·leetcode·回溯
_周游6 小时前
【数据结构】_链表经典算法OJ(力扣版)
数据结构·leetcode·链表
滨HI06 小时前
18. 四数之和【力扣】——两层循环后的双指针法
数据结构·c++·算法·leetcode·职场和发展
绿荫阿广7 小时前
互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库控制舵机并多方法播放表情
c#·.net