| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 856 人关注过本帖
标题:【求助】为什么我写的函数不能通过编译器
只看楼主 加入收藏
我是毅哥
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2010-12-8
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
【求助】为什么我写的函数不能通过编译器
题目是这样的   有一个整型的二维数组,大小为m*n,要求找出其中最大值所在的行和列以及该最大值。请编写一个函数max,要求如下:
1,以数组名和数组大小为形参;
2,数组元素的值在main函数中输入,结果在函数max中输出


#include<stdio.h>
#define m 3
#define n 4
void max(int q[][],int e,int r)
{
     int zuida,i,j,k,v;
     zuida=q[0][0];
     for(i=0;i<e;i++)
     for(j=0;j<r;j++)
     if(zuida<q[i][j])
     {
                      zuida=q[i][j]
                      v=i;
                      k=j;
     }
     printf("最大的数为%d\n",zuida);
     printf("它所在的行为%d\n",v);
     printf("它所在的列为%d\n",k);
}
int main()
{
    void max(int,int,int)
    int a[3][4],i,j,k;
    for(i=0;i<3;i++)
    for(j=0;j<4;j++)
    scanf("%d",a[i][j]);
    max(a,m,n);
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: 编译器 最大值 元素 
2010-12-27 20:27
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:2 
程序代码:
#include<stdio.h>
#define m 3
#define n 4
void max(int q[3][4],int e,int r)
{
     int zuida,i,j,k,v;
     zuida=q;
     for(i=0;i<e;i++)
     for(j=0;j<r;j++)
     if(zuida<q[i][j])
     {
                      zuida=q[i][j] ;
                      v=i;
                      k=j;
     }
     printf("最大的数为%d\n",zuida);
     printf("它所在的行为%d\n",v);
     printf("它所在的列为%d\n",k);
}
int main()
{
    void max(int q[][],int,int);
    int a[3][4],i,j,k;
    for(i=0;i<3;i++)
    for(j=0;j<4;j++)
    scanf("%d",a[i][j]);
    max(a,m,n);
    getchar();
    system("pause");
    return 0;
} 
没错了,结果是不是你想要的 不是的话 就是逻辑上有问题 你在修改 不行的话 大家在探讨

Go Go Go
2010-12-27 20:39
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:2 
#include<stdio.h>
#include <stdlib.h>  用了system()就要加这个
#define m 3
#define n 4
void max(int q[][n])  //列数是必须要的
{
     int zuida,i,j,k,v;
     zuida=q[0][0];
     for(i=0;i<m;i++)
     for(j=0;j<n;j++)
     if(zuida<q[i][j])
     {
                      zuida=q[i][j]
                      v=i;
                      k=j;
     }
     printf("最大的数为%d\n",zuida);
     printf("它所在的行为%d\n",v);
     printf("它所在的列为%d\n",k);
}
int main()
{
    int a[m][n],i,j,k;
    for(i=0;i<m;i++)  //像你那样的话,还要m,n做什么
    for(j=0;j<n;j++)
    scanf("%d",a[i][j]);
    max(a,m,n);
    system("pause");
    return 0;
}
很多的地方我帮你改了,因为假如像你那样写,m,n就没有存在的必要了

[ 本帖最后由 qq1023569223 于 2010-12-27 21:00 编辑 ]

   唯实惟新 至诚致志
2010-12-27 20:56
我是毅哥
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2010-12-8
收藏
得分:0 
回复 2楼 zhaoya881010
运行的时候,不能输出结果,它会自动关闭的,说  停止工作的
2010-12-27 21:06
我是毅哥
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2010-12-8
收藏
得分:0 
回复 3楼 qq1023569223
啊,失误啊,多谢指出,但是我运行了一下你的代码还是运行不了.
2010-12-27 21:12
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:2 
程序代码:
void max(int q[3][4],int e,int r)
{
     int zuida,i,j,k,v;
     zuida=**q;
     for(i=0;i<e;i++)
     for(j=0;j<r;j++)
     if(zuida<q[i][j])
     {
                      zuida=q[i][j] ;
                      v=i;
                      k=j;
     }
     printf("最大的数为%d\n",zuida);
     printf("它所在的行为%d\n",v);
     printf("它所在的列为%d\n",k);
}
这样也可以

                                         
===========深入<----------------->浅出============
2010-12-27 21:16
我是毅哥
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2010-12-8
收藏
得分:0 
回复 6楼 laoyang103
但是不知道为什么,它总是在要输出的时候就停止工作,我想应该是某个地方出错了吧
2010-12-27 21:28
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:2 
你用什么编译器啊?总是出错?

★★★★★为人民服务★★★★★
2010-12-27 22:03
我是毅哥
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2010-12-8
收藏
得分:0 
回复 8楼 cnfarer
DEV C++啊····
2010-12-27 22:05
我是毅哥
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2010-12-8
收藏
得分:0 
以下是引用我是毅哥在2010-12-27 20:27:53的发言:

题目是这样的   有一个整型的二维数组,大小为m*n,要求找出其中最大值所在的行和列以及该最大值。请编写一个函数max,要求如下:
1,以数组名和数组大小为形参;
2,数组元素的值在main函数中输入,结果在函数max中输出


#include
#define m 3
#define n 4
void max(int q[][],int e,int r)
{
     int zuida,i,j,k,v;
     zuida=q[0][0];
     for(i=0;i
为什么我把 main函数中 关于max的定义删除了之后,就可以正常运行,求各位大虾解释一下···谢谢
2010-12-28 09:10
快速回复:【求助】为什么我写的函数不能通过编译器
数据加载中...
 
   



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

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