C++编程题,求程序代码,非常感谢!!

从键盘输入一个m×n的整数矩阵,编程求:
1) 矩阵元素的最小值, 分别输出矩阵中该值所在的行之和、列之和。
2) 矩阵元素的平均值。

非常感谢!!!

#include <iostream>
using namespace std;
void main()
{
    int m,n;
    int **p;
    float avg = 0.0;
    cout<<"请输入行数和列数."<<endl;
    cin>>m>>n;
    p=new int*[m];//动态申请二维数组
    for (int i=0;i<m;i++)
    {
        p[i] = new int[n];
    }
    cout<<"输入元素:"<<endl;
    for (int i=0;i<m;i++)
    {
        for (int j=0;j<n;j++)
        {
            cin>>p[i][j];
        }
    }
    for (int i=0;i<m;i++)
    {
        for (int j=0;j<n;j++)
        {
            cout<<p[i][j]<<"\t";
            avg += p[i][j];
        }
        cout<<endl;
    }
    int min = p[0][0],I=0,J=0;
    for (int i=0;i<m;i++)
    {
        for (int j=0;j<n;j++)
        {
            if (p[i][j]<min)
                {
                    min = p[i][j];
                    I = i;
                    J = j;
            }
        }
    }
    cout<<"the position is:"<<endl;
    cout<<"行:"<<I<<"列:"<<J<<endl;
    cout<<"平均值是:"<<avg/(m*n)<<endl;
    for(int i = 0;i <m;i++)
    {
        delete [] p[i];
    }
    delete p;
    system("pause");
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-28
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char** argv) {
    int M, N;
    int average;
    int sum = 0;
    int min = 0xffff;
    int minCol = 0;
    int minRow = 0;
     
    cout << "输入M*N的值:";
    cin >> M;
    cin >> N;
     
    int* p = (int*)calloc(M*N, sizeof(int));
     
    cout << "数组已生成,请初始化数据:";
    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < N; ++j) {
            cin >> *(p+i);
            sum += *(p+i);
            if (*(p+i) < min) {
                min = *(p+i);
                minCol = i;
                minRow = j;
            }   
        }
    }
    average = float(sum)/(M*N);
     
    cout << "矩阵最小值为" << min << ",其在"<< minCol+1 <<"行"<<minRow+1<<"列"<<endl;
    cout <<"平均值为"<<average<<endl;
     
    free(p);
    p = NULL;
 
    return true;
}

楼猪注意下:这个行和列是在index基础上+1的值,类如如果最小值是a[1][3],那么在第2行第4列

第2个回答  2013-06-28
m,n的值是多少。输入的,还是指定的

C++编程题,求程序代码,非常感谢!!
include <iostream>using namespace std;void main(){ int m,n; int **p; float avg = 0.0; cout<<"请输入行数和列数."<<endl; cin>>m>>n; p=new int*[m];\/\/动态申请二维数组 for (int i=0;i<m;i++) { p[i] = new int[n]; } cout...

c++编程,求大神帮忙解答
C++代码如下:include <bits\/stdc++.h> \/\/ C++万能头文件 using namespace std;int dx[4] = {-1, 1, 0, 0};int dy[4] = {0, 0, -1, 1};int n, m;char mat[3000][3000]; \/\/ 字符矩阵 int dp[3000][3000][6]; \/\/ 记忆化搜索 string s = "IAKCSP";int dfs(int x,...

求这个程序的C++代码
而这是浮点数有限的范围所不能表示的,所以这里添加一个条件精确度浮动于0.01与0.0001之间,,以方便编程,那么最大数是99.99(有效数字为四位,精度为0.01), 最小数是0.1000(精度为0.0001)。用随机数表实现。

c++编程题,求大神解答。
剩下的机器人相邻关系会改变,重新计算碰撞时间,重复上述步骤,直到没有碰撞发生 C++代码如下:include <bits\/stdc++.h> \/\/ C++万能头文件 using namespace std;using tri = tuple<double, int, int>; \/\/ 发生碰撞的时间和机器人编号 int main() { int n, k;cin >> n;k = n; \/\/ 剩...

c\/c++编程问题急求完整代码:编写swap交换函数
include "stdio.h"void swap(int *a,int *b){int t;t=*a,*a=*b,*b=t;}int main(int argv,char *argc[]){int x,y;printf("Input x & y(all int)...\\n");scanf("%d%d",&x,&y);printf("x = %d\\ty = %d\\n",x,y);swap(&x,&y);printf("After the exchange:\\n"...

一道C++编程题目,求大神帮忙,有没有简单点的算法,求程序!!答得好可以...
以上为运行结果,代码如下:\/ 思路如下:1.对于第八列,和计算完成后,不管找没找到值,寻找当前列下一行(即i+1),无需进入下一列;2.对于非第八列,有两种情况:a.和大于等于最大值10(如果矩阵中有零值存在,此处应为大于10),不满足路径条件,没必要进入下一列计算,进入当前列下一行进行...

C++编程题,望各路大神及时伸出援助之手!!!
public class Demo14 { \/\/ 遍历所有情况 public static void fun(String s) { char[] c = s.toCharArray();StringBuffer sb = new StringBuffer(); \/\/ 记录 组成的式子 int len = s.length()-1; \/\/ 字符串长度 - 1 int[] sign = new int[len]; \/\/ sign用来标记符号, 最多...

询问一道VC++程序题,求详细解释
C++代码及运行结果如下:输出符合要求,望采纳~附C++源码:include <iostream> include <string> using namespace std;char toUpper(char c) { \/\/ 小写字母转大写字母 if (c >= 'a' && c <= 'z')return c - 32; \/\/ 小写字母比对应的大写字母ASCII码值大32 \/\/ return 'A' + c - '...

【C++编程题】求大佬帮忙 求详细过程 万分感谢 急!!!
按下列要求编写程序 (1)从键盘输入若干名学生数据包括学号、姓名、三门课成绩),计算每位学生的总分,将原有数据和计算出的总分存入二进制文件stu.bin。 (2)从二进制文件stu.bin中依次输入每个学生的数据和该数据在 stu.bin文件中的位置指针值(即索引),按总分降序排序后,将已排序的学生数据的...

用c++求1+2+3+4+…100的编程代码
int main(){ int i,sum=0;for(i=0;i<100;i++)sum+=i;cout<<"sum="<<sum<<endl;} 参考资料:原创

相似回答