A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*给题目为定义外部函数 求数组中的最大值、最小值及其位置
关于数据的传递方式*/
#include <stdio.h>
FindMax(int num[], int n, int *pMaxPos,int *pmax);
int FindMin(int num[], int n, int *pMinPos);
main()
{
       int num[10], maxValue, maxPos, minValue, minPos, i;
       printf("Input 10 numbers:\n");
       for (i=0; i<10; i++)
       {
             scanf("%d", &num[i]);      
       }
       FindMax(num, 10, &maxPos,&maxValue);
       minValue = FindMin(num, 10, &minPos);  
       printf("Max=%d, Position=%d, Min=%d, Position=%d\n",
       maxValue, maxPos, minValue, minPos);
}
FindMax(int num[], int n, int *pMaxPos,int *pmax)
{
      int i;
     *pmax = num[0];   
     *pMaxPos = 0;   
      for (i = 1; i < n; i++)
      {
             if (num[i] > *pmax)
                   {
                            *pmax= num[i];
                             *pMaxPos = i;
                   }
      }
}
int FindMin(int num[], int n, int *pMinPos)
{
       int i, min;
      min = num[0];           
      *pMinPos = 0;           
       for (i = 1;i < 10;i++)
     {
            if (num[i] < min)
           {
                   min = num[i];
                   *pMinPos = i;
           }
}
return min ;
}

31 个回复

倒序浏览
利用指针及地址取地址 可忽略return 详细见 求最大值
回复 使用道具 举报
给楼主一个建议。学C是为了给后面的OC服务的,所以没有必要太纠结,只要了解当前指针代表什么, 函数套函数运行过程,以及程序中循环的判断就可以,没有必要再太细节的问题上纠结,先往后面学,再回过头看前面的问题,你会发现其实很简单。因为一个程序看三遍和看一遍看完的感受是完全不一样的。请采纳 ,谢谢
回复 使用道具 举报
iphone 发表于 2015-8-21 13:14
给楼主一个建议。学C是为了给后面的OC服务的,所以没有必要太纠结,只要了解当前指针代表什么, 函数套函数 ...

这是我发现的比较有意思的地方 发出来给大家分享一下。指针确实有点绕 多谢提醒。
回复 使用道具 举报
iphone 发表于 2015-8-21 13:14
给楼主一个建议。学C是为了给后面的OC服务的,所以没有必要太纠结,只要了解当前指针代表什么, 函数套函数 ...

因为发现main函数可以不用写return
回复 使用道具 举报
tr2e 发表于 2015-8-21 13:50
因为发现main函数可以不用写return

前面是Void main 没有返回值   如果写int main 就得返回整型、看前面的返回值类型就可以的
回复 使用道具 举报
tr2e 中级黑马 2015-8-25 14:51:07
7#
iphone 发表于 2015-8-21 16:29
前面是Void main 没有返回值   如果写int main 就得返回整型、看前面的返回值类型就可以的 ...

我写的是 int main 但是没有return 你发现没
回复 使用道具 举报
tr2e 中级黑马 2015-8-25 14:52:32
8#
#include <stdio.h>
FindMax(int num[], int n, int *pMaxPos,int *pmax);
int main()
{
        int num[10], maxValue, maxPos, minValue, minPos, i;
        printf("Input 10 numbers:\n");
        for (i=0; i<10; i++)
        {
              scanf("%d", &num[i]);      
        }
        FindMax(num, 10, &maxPos,&maxValue);
        printf("Max=%d, Position=%d\n",
        maxValue, maxPos);
}
FindMax(int num[], int n, int *pMaxPos,int *pmax)
{
       int i;
      *pmax = num[0];   
      *pMaxPos = 0;   
       for (i = 1; i < n; i++)
       {
              if (num[i] > *pmax)
                    {
                             *pmax= num[i];
                              *pMaxPos = i;
                    }
       }
}
回复 使用道具 举报
iphone 中级黑马 2015-8-25 17:27:04
9#
tr2e 发表于 2015-8-25 14:51
我写的是 int main 但是没有return 你发现没

无所谓的东西
回复 使用道具 举报
tr2e 中级黑马 2015-8-25 21:52:46
10#

可能是然并卵 但是它存在即合理
回复 使用道具 举报
学习学习!
回复 使用道具 举报
顶一下下
回复 使用道具 举报
恩  学习了
回复 使用道具 举报
tr2e 中级黑马 2015-8-26 11:56:02
14#

谢大神顶
回复 使用道具 举报
tr2e 中级黑马 2015-8-26 11:58:33
15#

多谢顶贴 {:2_41:}
回复 使用道具 举报
DUKEMAN 来自手机 中级黑马 2015-8-26 11:59:00
16#
iphone 发表于 2015-8-21 13:14
给楼主一个建议。学C是为了给后面的OC服务的,所以没有必要太纠结,只要了解当前指针代表什么, 函数套函数 ...

真的吗,我就怕,C得学习特别扎实才能,进行下一步,现在一直用心看,C,快扎进牛角尖了
回复 使用道具 举报
tr2e 中级黑马 2015-8-26 12:00:14
17#

共同学习 因为我觉得这不是无所谓的东西
回复 使用道具 举报
号复杂。
回复 使用道具 举报
tr2e 中级黑马 2015-8-26 19:05:26
19#

其实我想说明的就是8楼里节选出来的那段 int main 可以没有return
回复 使用道具 举报
指针确实有点绕 多谢提醒。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马