新人菜鸡求助……[Error] invalid conversion from int to int

离坚白非马 2017-09-07 11:19:18
今天做了一个函数,然后就报BUG了,想问问这是为什么……
#include <stdio.h>
#include <math.h>
int max (int rank[5] )
{
int i , n ;
for (n = 0 ; n <= 3 ; n++){
if (rank [n] <= rank [n+1])
i = rank [n+1] ;
else
i = rank [n] ;
rank [n+1] = rank [n] ;
}
return i ;
}

int main (){
int m ;
int rank [5] = {3,5,6,8,34};
m = max (rank[5]);
printf("%d",m);
return 0 ;
}
然后出现 [Error] invalid conversion from 'int' to 'int*' [-fpermissive]
新人第一次学习制作新函数,不知道哪里有问题,求各位大佬们指点一下!谢谢啦
...全文
2993 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2017-09-07
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

int max (int *rank, int len)
{
    int i, max_n;
    for (i = 0 ; i < len - 1 ; i++){
        if (rank [i] <= rank [i+1])
            max_n = rank [i+1] ;
        else
            max_n = rank [i] ;
        rank [i+1] = rank [i] ;
    }
    return max_n ;
}

int get_max_val(int *rank, int len)
{
    int i;
    int max_n = rank[0];

    for (i = 1; i < len; i++)
        if (max_n < rank[i])
            max_n = rank[i];

    return max_n;
}

int main ()
{
    int m ;
    int rank [5] = {3, 5, 6, 8, 34};
    //m = max(rank, 5);
    m = get_max_val(rank, 5);

    printf("max: %d\n", m);
    return 0 ;
}
参考一下吧。 代码不要写的太硬。 求最大值,就是遍历加比较。get_max_val函数求最大值是不是思路更好一些。当然你的也能求出最大值。
离坚白非马 2017-09-07
  • 打赏
  • 举报
回复
谢谢大佬们!!!!! 太感谢啦!!!!
Really_want 2017-09-07
  • 打赏
  • 举报
回复
注意格式,像下面这样,看上去是不是很舒服?
#include <stdio.h>
#include <math.h>
int max (int rank[] )
{
	int i , n ;
	for (n = 0 ; n <= 3 ; n++){
		if (rank [n] <= rank [n+1])
			i = rank [n+1] ;
		else
			i = rank [n] ;
		rank [n+1] = rank [n] ;
	}
	return i ;
}

int main (){
	int m ;
	int rank [5] = {3,5,6,8,34};
	m = max (rank);
	printf("%d",m);
	return 0 ;
}
嘿碳头 2017-09-07
  • 打赏
  • 举报
回复
#include <stdio.h> #include <math.h> int max (int rank[] ) { int i , n ; for (n = 0 ; n <= 3 ; n++){ if (rank [n] <= rank [n+1]) i = rank [n+1] ; else i = rank [n] ; rank [n+1] = rank [n] ; } return i ; } int main (){ int m ; int rank [5] = {3,5,6,8,34}; m = max (rank); printf("%d",m); return 0 ; } 改成这样就行了,或者改成int max (int* rank )。 数组传递进入函数,需要用指针,即数组名。这里int rank[] 和int* rank 是等效的

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧