zoukankan      html  css  js  c++  java
  • 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);
    }

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

  • 相关阅读:
    Powershell数据处理
    Powershell About Active Directory Group Membership of a domain user
    Powershell About Active Directory Server
    Oracle Schema Objects——Tables——TableStorage
    Oracle Schema Objects——Tables——TableType
    English Grammar
    Oracle Database Documentation
    Oracle Schema Objects——Tables——Oracle Data Types
    Oracle Schema Objects——Tables——Overview of Tables
    What is Grammar?
  • 原文地址:https://www.cnblogs.com/Joynic/p/2879195.html
Copyright © 2011-2022 走看看