| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 368 人关注过本帖
标题:这程序能不能改进?
取消只看楼主 加入收藏
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
结帖率:90.63%
收藏
已结贴  问题点数:10 回复次数:1 
这程序能不能改进?
程序代码:
/*
编写一个计算任意3行4列二维数组元素的最大值,并指出其所在的行列下坐标
*/

#include "stdio.h"
#define CLASS 3
#define STUD 4
int FindMax(int *p, int m, int n, int *pRow, int *pCol);
int main(void)
{
    int score[CLASS][STUD], i, j, maxScore, row, col;
    for(i=0; i <CLASS; i++)
    {
        printf("Please enter scores of class%d:\n", i+1);
        for(j=0; j < STUD; j++)
        {
            scanf("%d", &score[i][j]);
        }
    }
    maxScore=FindMax(*score,CLASS,STUD,&row,&col);
    printf("maxScore=%d,class=%d,number=%d\n",maxScore, row+1,col+1);
    return 0;
}

/*
函数功能:计算任意m行n列的二维数组中元素的最大值,并指出其所在的行列下坐标
函数参数:整形指针标量p,指向一个二维整型数组的第0行第0列
整型变量m,二维整型数组的行数
整型变量你,二维数组的列数
整型指针变量pRow,指向数组最大值所在的行下表
整型指针变量pCol,指向数组最大值所在的列下表
函数返回值:数组元素的最大值
*/

int FindMax(int *p, int m, int n, int *pRow, int *pCol)
{
    int i, j, max;
    max=p[0];//配初值,假设第一个元素值最大
    *pRow=0;//
    *pCol=0;//
    for(i=0; i < m; i++)
    {
        for(j=0; j < n; j++)
        {
            if(p[i*n+j] > max)//将p[i*n+j]与当前最大值max比较
            {
                max=p[i*n+j];//若p[i*n+j]大,则修改当前最大值max
                *pRow=i;//记录当前最大值所在的行下表
                *pCol=j;//记录当前最大值所在的列下表
            }
        }
    }
    return (max);//返回最大值
}
我想问下,如果出现两个或更多相同最大值,那程序明显错误,能不能把这程序改进?

[ 本帖最后由 chen1204019 于 2012-12-13 22:32 编辑 ]
搜索更多相关主题的帖子: 最大值 元素 
2012-12-13 22:28
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
收藏
得分:0 
回复 2楼 azzbcc
谢谢

新手发言,请多指教!
2012-12-14 22:12
快速回复:这程序能不能改进?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025459 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved