鱼C论坛

 找回密码
 立即注册
查看: 3810|回复: 2

C语言第43课课后题有一处不明白!求教

[复制链接]
发表于 2012-9-5 21:16:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 覆了天下也罢 于 2012-9-5 21:19 编辑

[i]//用指针做函数参数,求最大的数和最小的数
#include <stdio.h>
int max,min;
void max_min_bi(int *p,int n);
void main()
{
    int i,a[10];
    printf("eneter 10 integer umbers:\n");
    for (i=0;i<10;i++)             //输入十个整数
    {
        scanf("%d",&a);
    }
    max_min_bi(a,10);              //调用函数
    printf("max=%d,min=%d\n",max,min);
}
void max_min_bi(int *p,int n)      //函数定义
{
    int *i,*j;
    j=p+n-1;                       //j指向最后一个元素的地址
    i=p;                           //i指向第一个元素地址
    max=min=*j;                    //max,min 赋值最后一个元素的值
    for (;*i<*j;i++)               //此出是我不明白的地方,因为我用(;i<j;i++),不用*号和用*号效量是一样的,输出都是正确的,为什么?
    {
        if (*i>max)
        {
            max=*i;
        }
        else if (*i<min)
        {
            min=*i;
        }
    }
}

点评

请下次发代码的时候 用编辑栏上方的 <> 发 这样方便别人帮你修改 和调试程序  发表于 2012-9-5 23:59
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-6 00:03:33 | 显示全部楼层
  1. //用指针做函数参数,求最大的数和最小的数
  2. #include <stdio.h>

  3. int max=0,min=0;

  4. void max_min_bi(int *p,int n);

  5. void main()
  6. {
  7.         int i,a[10];

  8.         printf("eneter 10 integer umbers:\n");
  9.         for (i=0;i<10;i++)             //输入十个整数
  10.         {
  11.                 scanf("%d",&a[i]);                                                                        //scanf("%d",&a);         你的主要错误就是出在了这里               
  12.         }

  13.         max_min_bi(a,10);   //调用函数

  14.         printf("max=%d,min=%d\n",max,min);
  15. }

  16. void max_min_bi(int *p,int n)      //函数定义
  17. {
  18.         int *i,*j;
  19.         j=p+n-1;                       //j指向最后一个元素的地址
  20.         i=p;                           //i指向第一个元素地址
  21.         max=min=*j;                    //max,min 赋值最后一个元素的值
  22.         for (;*i<*j;i++)               //此出是我不明白的地方,因为我用(;i<j;i++),不用*号和用*号效量是一样的,输出都是正确的,为什么?
  23.         {
  24.                 if (*i>max)
  25.                 {
  26.                         max=*i;
  27.                 }
  28.                 else if (*i<min)
  29.                 {
  30.                         min=*i;
  31.                 }
  32.         }
  33. }

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-9-6 20:43:55 | 显示全部楼层
//用指针做函数参数,求最大的数和最小的数
#include <stdio.h>
int max,min;
void max_min_bi(int *p,int n);
void main()
{
    int i,a[10];
    printf("eneter 10 integer umbers:\n");
    for (i=0;i<10;i++)             //输入十个整数
    {
        scanf("%d",&a[i]);
    }
    max_min_bi(a,10);              //调用函数
    printf("max=%d,min=%d\n",max,min);
}
void max_min_bi(int *p,int n)      //函数定义
{
    int *i,*j;
    j=p+n-1;                       //j指向最后一个元素的地址
    i=p;                           //i指向第一个元素地址
    max=min=*j;                    //max,min 赋值最后一个元素的值
    for (;*i<*j;i++)               // 我想知道这里为什么(;i<j;i++),不用*号和用*号效量是一样的,输出都是正确的!
    {
        if (*i>max)
        {
            max=*i;
        }
        else if (*i<min)
        {
            min=*i;
        }
    }
}
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-15 00:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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