0
点赞
收藏
分享

微信扫一扫

c语言初学者的学习记录

香小蕉 2022-03-11 阅读 151

对于冒泡排序法

/*冒泡法 
       #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来当作中间值来记录数组中的最大最小值即可,这样不会打乱数组,而且程序更为简单易懂。

举报

相关推荐

初学者如何看c语言

初识C语言(初学者必看)

C的初学者,在CSDN。

C++初学者自序

R语言初学者书籍推荐

0 条评论