C++将一维整型数组a的12个元素保存到3×4的二维数组b中。

将一维整型数组a的12个元素保存到3×4的二维数组b中。要求:
(1)a数组元素从键盘输入
(2)按3行4列输出b中各元素的值。
(3)从二维数组b中查找出最大的元素值,输出该值及其行下标和列下标。

img

#include "stdio.h"
#include <iostream>
using namespace std;
void main()
{
    int a[12];
    int b[3][4];
    int i,j,s=0,k=0;
    int max = 0;
    for(i=0;i<12;i++){
        cin>>a[i];
    }
    //转换
    for(i=0;i<3;i++){
        for(j=0;j<4;j++){
            b[i][j] = a[i*4+j];    
        }
    }
    //输出
    for(i=0;i<3;i++){
        for(j=0;j<4;j++){
            cout<<b[i][j]<<"\t";
        }    
        cout<<endl;
    }
    //求最大值
    for(i=0;i<3;i++){
        for(j=0;j<4;j++){
            if(max<b[i][j]){
                max = b[i][j];
                s=i;
                k=j;    
            }
        }
    }
    cout<<"最大值是"<<max<<",在数组中的小标是("<<s+1<<","<<k+1<<")"<<endl;
}

你题目的解答代码如下:

#include<iostream>
#include <iomanip>
using namespace std;

int main()
{
    int a[12], b[3][4], i,x,y,mx=0,my=0;
    for (int i = 0; i < 12; i++)
    {
        cin >> a[i];
    }
    i = 0;
    for (y = 0; y < 3; y++)
    {
        for (x = 0; x < 4; x++)
            b[y][x] = a[i++];
    }
    for (y = 0; y < 3; y++)
    {
        for (x = 0; x < 4; x++)
            cout  << setw(4) << b[y][x];
        cout << endl;
    }
    for (y = 0; y < 3; y++)
    {
        for (x = 0; x < 4; x++)
            if (b[y][x]>b[my][mx])
            {
                mx = x;
                my = y;
            }
    }
    cout << "最大值:" << b[my][mx] << endl;
    cout << "行下标:" << my << endl;
    cout << "列下标:" << mx << endl;
    return 0;
}

如有帮助,望采纳!谢谢!

#include <iostream>
using namespace std;
int main()
{
    int a[12],b[3][4];
    int i,j,maxi=0,maxj=0;
    for(i=0;i<12;i++)
        cin>>a[i];
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
          b[i][j] = a[i*3+j];
          cout<<b[i][j]<<" ";
          if(b[i][j] > b[maxi][maxj])
          {
              maxi = i;
              maxj = j;
          }
        }
        cout<<endl;
    }
    cout<<"max=b["<<maxi<<"]["<<maxj<<"]="<<b[maxi][maxj];
    return 0;
}