脚本宝典收集整理的这篇文章主要介绍了第六周学习总结,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
本周我们主要学习了二维数组的相关知识。
类型说明符 数组名[常量表达式][常量表达式]
eg. int array[11][11];
类型说明符 **数组名 = new 类型说明符*[行数];
for (int i = 0; i < m; ++i)
{
数组名[i] = new 类型说明符[列数];
}
//......
for (int i = 0; i < m; ++i)
{
delete[] 数组名[i];
}
delete[] 数组名;
我们在之前了解过,在自定义函数中引用一维数组是这样子的:
int func(int a[],int n)
{
//...
}
int main()
{
///...
func(a,n);
//...
}
那么类似的,在自定义函数中引用二维数组是这样子的:
int func(int a[][列数],int n) //列数不能省!
{
//...
}
int main()
{
///...
func(a,n);
//...
}
L2-3 找鞍点 (20 分)
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
输入格式:
输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
输入样例1:
4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9
** 输出样例1:**
2 1
输入样例2:
2 1 7 4 1
输出样例2:
NONE
这道题是二维数组大显身手的舞台。我们先找到行上的行最大值,然后在这最小值所在列上寻找列最小值。最后再将其一比较,若最大最小值相同,就找到了。
//参考代码
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[11][11] = {0};
for (int i = 0; i < n; i++) //数据输入
{
for (int j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
for (int i = 0; i < n; i++)
{
int max = a[i][0];
int maxj = 0;
for (int j = 0; j < n; j++) //找最大值
{
if (a[i][j] >= max)
{
max = a[i][j];
maxj = j;
}
}
int min = max;
int mini = 0;
for (int x = 0; x < n; x++) //找最小值
{
if (a[x][maxj] <= min)
{
min = a[x][maxj];
mini = x;
}
}
if (max == min) //比较
{
PRintf("%d %d", i, maxj);
return 0;
}
}
printf("NONE");
return 0;
}
以上是脚本宝典为你收集整理的第六周学习总结全部内容,希望文章能够帮你解决第六周学习总结所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。