论坛首页 入门技术论坛

多维数组存取问题

浏览 1800 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2009-04-18   最后修改:2009-04-18
定义一个int型二维数组  iArry[ 5 ][ 5 ]; 大小固定。 所有元素用随机数赋值。取值范围:100--200的数字(包括100和200两个数).

实现:
      A) 求每行中最大的数字。
并打印出该数字在数组中的位置。
     B )    求每列中最大的数字。
并打印出该数字在数组中的位置。

    C)  求行中最大并且列中最小的数字。
并打印出该数字在数组中的位置。
#include <iostream>
using namespace std;
#include<time.h>
#define LEN 5
int iArry[LEN][LEN] = {0};
int number[101] = {0};
void initNuber()
{
    for(int i = 0;i < 101;i++)
    {
       number[i] = i+100;  
    }
}
void ievaluate()
{
initNuber();
  srand(time(NULL));
	for(int i=0;i<LEN;i++)
	{
     for(int j = 0;j <LEN;j++)
     {
        int k = rand()%101;
        iArry[i][j] = number[k];
        cout<<iArry[i][j]<<" ";
     }
     cout<<endl;
	}  
}
int c = 0;
int d = 0;
void  displayA_B_C()
{
    ievaluate();
     int a = 0;
     int b = 0;
     int t = 0;
    for(int i = 0;i < LEN;i++)
    {
       int rowMax =  iArry[i][0];
       a = i;
       b = 0;
       for(int j = 0;j < LEN;j++)
      {
          if(rowMax < iArry[i][j])
          {
              rowMax = iArry[i][j];
              a = i;
              b = j;
          }
      }
      int minColumn = iArry[0][b];
      c = 0;
      d = b;
      for(int j = 0;j < LEN;j++)
      {
          if(minColumn > iArry[j][b])
          {
              minColumn = iArry[j][b];
              c = i;
              d = b;
          } 
      }
      
      if(minColumn == rowMax)
      {
          cout<<"行中最大并且列中最小的数字:"<<minColumn<<endl;
      }else
      {
          cout<<"不存在行中最大并且列中最小的数字"<<endl;
      }
      cout<<"每行中最大的数字:"<<rowMax<<endl;
      cout<<"第"<<a+1<<"行"<<"第"<<b+1<<"列"<<endl;  
    }
    cout<<"------------------"<<endl; 
    a = 0;
    b = 0; 
    for(int i = 0;i < LEN;i++)
    {
       int colmnMax =  iArry[0][i];
       a = i;
       b = 0;
       for(int j = 0;j < LEN;j++)
      {
          if(colmnMax < iArry[j][i])
          {
              colmnMax = iArry[j][i];
              a = i;
              b = j;
          }
      } 
     cout<<"每列中最大的数字:"<<colmnMax<<endl;
     cout<<"第"<<a+1<<"列"<<"第"<<b+1<<"行"<<endl;  
    }
}
int main()
{
  for(int i = 0; i < 100;i++)
  {
    displayA_B_C();   
  }
  
	system("pause");
}
行中最大,列中最小的概率很小啊。。。。。。。。
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics