• C语言经典程序之:求十个整数中的最大&最小数并输出(指针)


    #include "stdio.h"
    void max(int *p,int N)             /*求最大数的函数(void--无返回值),定义指针*/
    {
      int i,max=*p;                       /*定义整型i;设指针指向的第一个值是最大值*/
    
     for(i=0;i<N;i++,p++)             /*for循环,逐个指针向下*/
      {
         if(max<*p)                      /*假如后面出现一个比前一个数值大的数*/      
    
          max=*p;                          /*马上将较大的数赋给max*/
      }
      
     printf("最大的数是%d\n",max);      /*格式化输出最大数*/
      }
    void min(int *p,int N)               /*求最小数的函数,定义指针*/
    {
     int i,min=*p;                          /*设指针指向的第一个值是最小值*/
     for(i=0;i<N;i++,p++)             /*for循环,逐个指针向下*/
    
    
     {
      if(min>*p)                          /*假如后面出现一个比前一个数值小的数*/  
          min=*p;                          /*马上将较小的数赋给max*/
         
     }
     printf("最小的数是%d",min);        /*格式化输出最大数*/
        }
     
    main()                                  /*主函数说:我才是老大,上面的两个函数都得听我的!O(∩_∩)O哈!*/
    {
        int a[10],*p,i;                      /*定义一个长度为10的数组,一个指针和一个整型i*/
      
        p=a;                                    /*将数组的第一个地址赋给指针的第一个地址,也就是把数组和指针对应。即a[0]=*p;
    
                                                      a[1]=*(p+1)*;a[2]=*(p+2);……*/
        puts("请输入十个整数:\n");       /*屏幕显示用户提示信息;puts()--即put string--字符串输出命令*/
        for(i=0;i<10;i++)                        /*for循环依次向下*/
         scanf("%d",&a[i]);                      /*扫描用户输入的数据*/
         
        puts("\n");                                    /*换行*/
        max(p,10);                                   
    
        min(a,10);                                  /*按最大&最小函数格式分别调用它们,求最大数和最小数*/
    
        
    }

    程序执行顺序说明:

           众所周知,C程序是从main()开始执行的。所以前面的两个求最大&最小函数先不执行,程序先执行main(),一直到“ max(p,10); ”时,调用前面的void max()函数,当它执行完毕,输出最大数后,函数生命期结束。接着返回到main()中,又遇到“min(a,10); ”,马上调用void min()函数,执行完毕,找到并输出最小数后,函数生命期结束,返回main()中,然后整个程序结束。

           这个程序也可以这样写:

     #include "stdio.h"
    void max(int *p,int N);  
    
    void min(int *p,int N);       /*若求最大函数&最小函数不放在main()之前,要事先在程序中声明*/
    main()
    {
        int a[10],*p,i;
      
        p=a;
        puts("请输入十个整数:\n");
        for(i=0;i<10;i++)
         scanf("%d",&a[i]);
         
        puts("\n");
        max(p,10);
        
        min(a,10);
        
    }
    void max(int *p,int N)
    {
      int i,max=*p;
    
     for(i=0;i<N;i++,p++)
      {
         if(max<*p)
           max=*p;
        
       
      }
      
      printf("最大的数是%d\n",max);
     
     
    
    }
    void min(int *p,int N)
    {
     int i,min=*p;
     for(i=0;i<N;i++,p++)
     {
      if(min>*p)
          min=*p;
         
     }
     printf("最小的数是%d",min);
    }

    这样可以比较两个程序的不同,学会外部子函数的调用方法。

  • 相关阅读:
    苹果 iOS 8 新固件新功能特性总结汇总 (苹果 iPhone/iPad 最新移动操作系统)
    为什么魔兽世界里男性玩家爱选女性角色?
    腾讯PK微软 王者之战一触即发
    策略模式
    代理模式
    模板模式
    适配器模式
    工厂模式
    随机森林步骤(转)
    马氏距离通俗理解(转)
  • 原文地址:https://www.cnblogs.com/Joynic/p/2879195.html
Copyright © 2020-2023  润新知