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);
    }

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

  • 相关阅读:
    NoSQL数据库 continue posting...
    CAP 理论
    Clojure Web 开发 (一)
    HttpClient 4.0.x Tips
    zZ Java中String和Byte[]之间的那些事
    使用nhibernate出现Could not find the dialect in the configuration
    eclipse导入项目出现Project has no default.properties file! Edit the project properties to set one.
    今天开通此博~
    美国白蛾入侵北京 GIS兵法破解危局
    HTML5 存取Json
  • 原文地址:https://www.cnblogs.com/Joynic/p/2879195.html
Copyright © 2011-2022 走看看