笔记2

   Ⅰ.找数组中最大数算法:

          提供几种思路:

         ① 用类似于比较大小的方法,从数组的第一个开始,与其他数比较,用一个整型数来表示布尔量,若这个数大于之后的任意一个数,那么布尔量为1(通过),否则0(失败),且从第二个数继续开始,以此类推。

          用这种思路要考虑一个特殊情况:到最后一个数之前,还未通过,则最后一个数为最大的

            这种方法呆板,且有个个特殊情况,不方便,但思路简单

         ② 设置一个max量, max量被赋值为第一个数,往数组后走,只要大于这个max的量,就进行交换。

        代码:

 
#include<stdio.h>
main()
{
    int a[10]={1,2,3,4,5,44,7,8,9,10};
    int i;
    int max,maxb;
    max=a[0];maxb=0;
    for(i=0;i<10;i++)
    {
        if(a[i]>max)
        {
            max=a[i];
            maxb=i;
        }
    }
    
    printf("max=%d  ,   is  %d\n",max,maxb+1);
return 0;
}
 

          这种方法我觉得更简单,而且无特殊情况

      ③ 直接排序

            利用排序的方法(代码),双重循环即可

                  int a[n];//这样子对一些老的编译器可能不合适

                 for(i=1;i<n-1;i++)//注意这里不必到最后一个数,直到倒数第二个排好,就ok

                      for(j=i+1;j<=n-1;j++)

                           if(a[i]>a[j]){

                             temp=a[i];

                             a[i]=a[j];

                              a[j]=temp;

              }//从小到大

   这种方法对后面的衍生题有用

    衍生题:找出第二大的数,第三大的数,和第二小的数

              这种的话,最方便的就是用第二种方法,直接对应即可。

              而用第二种思路,方法也是很巧妙,思路是让第二大的数跟着最大的数走,结束为止

             但不是很方便求第三大,第二小。。。


  Ⅱ.闰年(这个烦死了,做个笔记,下次懒得翻)

            if(y%4==0&&y%100!=0||y%400==0) i=29;

            else i=28;

              就是两种情况:能被4整除同时不能被100整除或者能被400整除。

 

         

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值