鱼C论坛

 找回密码
 立即注册
查看: 2959|回复: 9

指针的一道简单题,求教

[复制链接]
发表于 2013-12-17 18:37:01 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 daitou 于 2013-12-17 18:38 编辑

[i][i]

#include<stdio.h>
int main()
{
        int min(int a[9]);
        int *p(int a[9]);
        int b[9]={9,8,7,6,2,4,2,1,5};
        int c;
        p=min;
        c=(*p)(b);
        printf("%d\n",c);
        return 0;

}
int min(int a[9])
{
        int i;
        int min=a[0],num=0;
        for(i=1;i<9;i++)
        {
                if(min>a[i])
                {
                        min=a;
                        num=i;
                }
        }
        return num;
}
为什么运行不了的?
[/i]

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-17 18:57:03 | 显示全部楼层
#include<stdio.h>
int main()
{
        int min(int a[]);
        
        int b[9]={9,8,7,6,2,4,0,1,5};
        int c;
        c=min(b);
        printf("%d\n",c);
        return 0;

}
int min(int a[])
{
        int i;
        int min=a[0],num=0;
        for(i=1;i<9;i++)
        {
                if(min>a[i])
                {
                        min=a[i];
                        num=i;
                }
        }
        return num;
}
这是修改后的代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-17 18:57:16 | 显示全部楼层
好难。。小白不明觉厉为啥你要写的这么复杂?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-17 19:06:13 | 显示全部楼层
#include<stdio.h>
int main()
{
        int min(int *p,int x);//x是数组元素的个数
        int *p;
        int b[9]={9,8,7,6,2,4,0,1,5};
               
        int c;
                p=b;
        c=min(p,9);
        printf("%d\n",c);
        return 0;

}
int min(int *p,int x)//p是地址,b是数组的第一个元素地址
{
        int i;
        int min=*p,num=0;
        for(i=1;i<x;i++)
        {
                if(min>*(p+i))
                {
                        min=*(p+i);
                        num=i;
                }
        }
        return num;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-17 19:37:18 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int min(int a[9]);
  5.         int (*p)(int a[9]);  //int *p(int a[]9)代表这是一个函数,返回值为int*类型,而我这样定义代表p是一个指针,
  6.         //指向的是int XXXX(int a[9])函数
  7.         int b[9]={9,8,7,6,2,4,2,1,5};
  8.         int c;
  9.         p=min;        //所以这里才可以把min赋值给p,注意函数名就是指向函数的指针
  10.         c=p(b);        //不能用*p,p是指向函数内存地址的指针,*p是啥? 我擦。。肯定不行啊
  11.         printf("%d\n",c);
  12.         return 0;
  13.        
  14. }
  15. int min(int a[9])
  16. {
  17.         int i;
  18.         int min=a[0],num=0;
  19.         for(i=1;i<9;i++)
  20.         {
  21.                 if(min>a[i])
  22.                 {
  23.                         min=a[i];
  24.                         num=i;
  25.                 }
  26.         }
  27.         return num;
  28. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-12-17 20:00:05 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-18 12:29:58 | 显示全部楼层
daitou 发表于 2013-12-17 20:00
运行结果是7,错了

呵呵。。。。。。。。。。那是你min函数的问题   min函数我都没改
你C语言咋学的????不说了。。。再说我就要骂人了、。。。。。。反正我也就无聊帮你解决一下。。。居然是是7?  是我错了吗??  你才给1分。。。。。。。难道还要我改你的源码?  呵呵。。。激动了。。。抱歉
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-18 13:28:57 | 显示全部楼层
我擦!源码都给你了居然不给最佳?:sweat:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-23 10:10:12 | 显示全部楼层
支持鱼C,顶一下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-27 22:33:50 | 显示全部楼层
看来我也得学习了!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-12 23:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表