| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1806 人关注过本帖
标题:请教一个问题,谢谢
只看楼主 加入收藏
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
结帖率:92.86%
收藏
已结贴  问题点数:10 回复次数:12 
请教一个问题,谢谢
#include<stdio.h>
int max(int []);
main()
{
    int i[10]={1,2,3,4,5,6,7,8,9,10};
    max(i);
    printf("%d",max);
    }
int max(int a[])
{
    int i,j,max;
    for(i=0;i<10;i++)
       for(j=i+1;j<10;j++)
          {
              if(a[i]>a[j])
                 max=a[i];
              else max=a[j];
              }
    return max;
    }
自己编的代码,为什么结果是4199270呢
2016-04-18 13:19
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:3 
打印的是函数的地址吧?应该是printf("%d",max(i));才对
2016-04-18 13:30
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 2楼 grmmylbs
额谔谔

[此贴子已经被作者于2016-4-18 13:42编辑过]

2016-04-18 13:40
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:3 
我估计楼主看蒙了
2016-04-18 13:46
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 2楼 grmmylbs
那一个包含10个整形数据的数组,怎么进行比较大小打印最大值
2016-04-18 13:53
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:3 
程序代码:
#include<stdio.h>
int max(int []);
main()
{
    int i[10]={1,2,3,4,5,6,7,8,9,10};
    max(i);        //这里的max是函数的名字,他本身不能用来存储计算结果。所以
    printf("%d",max);  //如果你学C语言深入一点,开始接触到指针了,那我可以很明确地告诉你,max其实是一个指向那个函数的指针。
    }
int max(int a[])
{
    int i,j,max;
    for(i=0;i<10;i++)
       for(j=i+1;j<10;j++)
          {
              if(a[i]>a[j])
                 max=a[i];
              else max=a[j];
              }
    return max;
    }

这道题有两种改法,第一种直接使用        printf("%d",max(i));
第二种,用一个变量保存函数计算的结果     int Result=max(i);printf("%d",Result);

φ(゜▽゜*)♪
2016-04-18 14:05
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 6楼 书生牛犊
运行结果是4199270为什么
2016-04-18 14:19
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
回复 7楼 屋顶
运行结果那一串数字是一个指针的值,就是max()函数的地址。

然而
我想你还没学指针吧。。。

φ(゜▽゜*)♪
2016-04-18 14:29
屋顶
Rank: 1
等 级:新手上路
帖 子:174
专家分:7
注 册:2016-2-27
收藏
得分:0 
回复 8楼 书生牛犊
还有这个求最大数的代码好像不对,另外函数也有指针?max不是函数名吗,那指针也可以指向函数名?

[此贴子已经被作者于2016-4-18 14:58编辑过]

2016-04-18 14:54
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
你说得对,求最大数的函数不太对。我没认真看
挂一层循环遍历就够了
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
printf("%d",max(a,10));
return 0;
}
int max(int a[],int num){
int Result=a[0];     //假设第一个元素就是最大值
for(int i=1;i<num;i++){//遍历整个数组,如果发现某个元素比之前发现的Result要大,就更新Result
if(a[i]>Result)Result=a[i];
}
return Result;
}

φ(゜▽゜*)♪
2016-04-18 15:22
快速回复:请教一个问题,谢谢
数据加载中...
 
   



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

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