1..
//
定义二维数组的时候
,
可以不指定第一维的长度
,
但是必须制定第二维的长度
strcmp 比较字符串大小 只比首字母大小, 首字母一样则比较下一位. 所以它可以作为名字按字母排序的方法
随机生成一个
3
行
4
列的二维数组
,
找一个二维数组的鞍点
(
在该行中最大
,
该列中最小
),
打印出行列
,
及其所在的坐标
int str[ 3 ][ 4 ] = { 0 };
int i, j;
for (i = 0 ; i < 3 ; i++) {
for (j = 0 ; j < 4 ; j++) {
str[i][j] = arc4random ()% 21 + 10 ;
printf ( "%d " ,str[i][j]);
}
printf ( "\n" );
}
int flag = 0 ;
for (i = 0 ; i < 3 ; i++) {
int max = 0 , min = 100 ;
for (j = 0 ; j < 4 ; j++) { // 行中最大值
max = max < str[i][j] ? str[i][j] : max;
int str[ 3 ][ 4 ] = { 0 };
int i, j;
for (i = 0 ; i < 3 ; i++) {
for (j = 0 ; j < 4 ; j++) {
str[i][j] = arc4random ()% 21 + 10 ;
printf ( "%d " ,str[i][j]);
}
printf ( "\n" );
}
int flag = 0 ;
for (i = 0 ; i < 3 ; i++) {
int max = 0 , min = 100 ;
for (j = 0 ; j < 4 ; j++) { // 行中最大值
max = max < str[i][j] ? str[i][j] : max;
}
for
(j =
0
; j <
4
; j++)
{
if (max == str[i][j])
{ // 确定行中最大值的坐标 , 确定在哪一列 .
for ( int k = 0 ; k < 3 ; k++) // 将最大值和它所在这一列的值进行比较
{
min = min > str[k][j] ? str[k][j] : min; // 求出最大值所在的列的最小值
{
if (max == str[i][j])
{ // 确定行中最大值的坐标 , 确定在哪一列 .
for ( int k = 0 ; k < 3 ; k++) // 将最大值和它所在这一列的值进行比较
{
min = min > str[k][j] ? str[k][j] : min; // 求出最大值所在的列的最小值
}
if
(min == max)
//
判断最大值和最小值是否相等
,
如果相等则是鞍点
.
{
printf ( " 鞍点是 %d, 坐标为 (%d,%d)\n" ,max,i,j);
flag = 1 ; // 标志找到了鞍点 , 不输出最后面的 " 没有鞍点 "
}
}
}
}
if (flag == 0 ) {
printf ( " 没有鞍点 !" );
{
printf ( " 鞍点是 %d, 坐标为 (%d,%d)\n" ,max,i,j);
flag = 1 ; // 标志找到了鞍点 , 不输出最后面的 " 没有鞍点 "
}
}
}
}
if (flag == 0 ) {
printf ( " 没有鞍点 !" );
}