对于冒泡排序法
/*冒泡法 
        #include<stdio.h>
        int main()
        {
            int i,j,k,n,max;
            int a[10];
            
            printf("请输入一个数组:\n");
             
            for(i=0;i<10;i++)
            {
                scanf("%d",&a[i]);
            }
            
             
        for(i=0;i<9;i++)
        {
            for(j=i+1;j<10;j++)
            {
                if(a[i]<a[j])
                {
                    k=a[j];
                    a[j]=a[i];
                    a[i]=k;
                    
                }
            }
        }
        
        for(i=0;i<10;i++)
        {
            printf("%4d",a[i]);
        }
        
        return 0;
 }
  */
在第二个循环处,i和j的设定,有特别之处,不同于其他许多博客上的写法;
求一个数组的最大最小值及其下角标,
#include<stdio.h>
  int main()
  {
      int i,j,k,n;
      int a[10],b[10];
      for(i=0;i<10;i++)
      {
          scanf("%d",&a[i]);
          b[i]=a[i];
      }
      for(k=n=0,i=0;i<10;i++)
      {
          
          if(a[i]>a[0])
          {
              a[0]=a[i];
              k=i;
          }
          if(b[i]<b[0])
          {
              b[0]=b[i];
              n=i;
          }
          
      }
      printf("最大值最小值分别为%6d,%6d,下角标为%d,%d",a[0],b[0],k,n);
   } 
   */
   /*
   #include<stdio.h>
   int main()
   {
       int i,max,min,imax,imin,j,k;
       
       int a[10];
       
       for(i=0;i<10;i++)
       {
           scanf("%d",&a[i]);
       }
       
       max=a[0],min=a[0];
       
       for(i=0;i<10;i++)
       {
           if(a[i]>max)
           {
               max=a[i];
               imax=i;
           }
           if(a[i]<min)
           {
               min=a[i];
               imin=i;
           }
           printf("imax的值为%d",imax);
           
           
       }
       printf("最大小分别为%6d%6d,下角标分别为%6d%6d\n",max,min,imax,imin);
       
   }*/
我的思路被禁锢在了冒泡排序法的思想上,想让第一个元素变成最大最小值,然后用一个中间值k记录下最大最小的下角标,然而这样会导致数组顺序发生改变,而导致只能找到一个下角标,所以我不得不复制一个数组,也就是用到两个一模一样的数组,这样被打乱的数组就可以不用去管,在另一个数组中找到另一个下角标;
但其实并不需要如此繁琐,我只需用 max和min来当作中间值来记录数组中的最大最小值即可,这样不会打乱数组,而且程序更为简单易懂。










