| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 806 人关注过本帖
标题:一个指针问题,
只看楼主 加入收藏
evilloop
Rank: 2
等 级:论坛游民
帖 子:36
专家分:22
注 册:2011-8-27
结帖率:71.43%
收藏
已结贴  问题点数:30 回复次数:8 
一个指针问题,
gcc编译一直报错
findtwolarge.c:29: warning: passing argument 1 of ‘find_two_largest’ makes pointer from integer without a cast,说是29行,可没看出哪里的问题
代码如下,请高手指点下,代码作用是求一个数组最大和第二大两个数
#include <stdio.h>

void find_two_largest(int a[], int n, int *largest, int *second_largest)
{
    int i;
    *largest = *second_largest = a[0];
    for (i = 1; i < n; i++)
    {
        if (*largest > a[i]){
            *largest = a[i - 1];
            *second_largest = a[i];
        } else if (*second_largest < a[i]) {
            *largest = a[i];
            *second_largest = a[i - 1];
        }

    }
}

int main(void)
{
    int i;
    //printf("How many number do you want? --: ");
    //scanf("%d", &n);

    int a[5], l, sl;
    for (i = 0; i < 5; i++)
        scanf("%d", &a[i]);
    find_two_largest(a[5], 5, &l, &sl);
    printf("Largest: %d\n", l);
    printf("Second largest: %d\n", sl);
    return 0;
}
搜索更多相关主题的帖子: include warning without makes 
2011-10-21 14:38
evilloop
Rank: 2
等 级:论坛游民
帖 子:36
专家分:22
注 册:2011-8-27
收藏
得分:0 
没朋友给看下么
2011-10-21 15:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:30 
函数定义中要求a是数组指针,但你实参中传进去的是元素,而a[]又不是多维数组,所以编译器无法转换类型。

授人以渔,不授人以鱼。
2011-10-21 15:05
evilloop
Rank: 2
等 级:论坛游民
帖 子:36
专家分:22
注 册:2011-8-27
收藏
得分:0 
。。。。太粗心了,以为和声明时一样呢,那就直接写数组名就行了是吗
2011-10-21 15:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
是的

授人以渔,不授人以鱼。
2011-10-21 15:09
evilloop
Rank: 2
等 级:论坛游民
帖 子:36
专家分:22
注 册:2011-8-27
收藏
得分:0 
看来指针还得多修炼修炼。。谢谢你了
2011-10-21 15:11
yeh2008
Rank: 2
等 级:论坛游民
帖 子:52
专家分:68
注 册:2011-10-11
收藏
得分:0 
听说指针是C的精华,但看到指针头疼。。。
2011-10-21 16:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不滥用才是精华,但其实很多宣称它是精华的人正是滥用的。

授人以渔,不授人以鱼。
2011-10-21 17:05
hhdong123
Rank: 2
等 级:论坛游民
帖 子:8
专家分:25
注 册:2011-10-21
收藏
得分:0 
        if (*largest > a[i]){
            /**largest = a[i - 1];*/
            *second_largest = a[i];
        } else if (*second_largest < a[i]) {
            *largest = a[i];
           /* *second_largest = a[i - 1];*/
        }

这两行去掉应该更好吧   受教了  呵呵
2011-10-21 17:47
快速回复:一个指针问题,
数据加载中...
 
   



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

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