zoukankan      html  css  js  c++  java
  • 2个很有趣、耐思考的C语言算法

    1.

    输入10个整数,任意相邻的两个数不同,输出所有的递增,递减序列 

    比如:

    输入:1 5 9 8 12 21 3 0 -1 9 

    输出:

    1 5 9

    9 8

    8 12 21

    21 3 0 -1

    -1 9

    实现代码如下:

    # include <stdio.h>

    int main(int argc, const char * argv[]) {

        int nu[10];

        int i,j;

        for(j=0;j<10;j++)

        {

            scanf("%d",&nu[j]);

        }

        printf("%d ",nu[0]);    //第一位先打印

        for(i=1;i<10-1;i++)

        {

            printf("%d ",nu[i]);

       /**从第二数起比较它的前一个数后后一位数,如果出现大于小于或小于大于就换行*/

            if(((nu[i]>nu[i-1]) && (nu[i]>nu[i+1])) || ((nu[i]<nu[i-1]) && (nu[i]<nu[i+1])))

            {

                printf(" ");           //每次进来都先打印

                printf("%d ",nu[i]);

            }

        }

        printf("%d ",nu[9]);           //最后一位后面再打印

      return 0; 

    }

    2.

    输入10个整数,找出出现次数最多的数 (如果多个并列,则按数字出现顺序分别输出)

    输入:1 5 27 33 24 1 27 18 19 20 

    输出:

       1 27

    实现代码如下:

    # include <stdio.h>

    int main(int argc, const char * argv[]) {

        int nu[10];

        int bz[10];

        int i,j,k,l,m;

        int max;

        int flaga=1,flagb=0;

     /**输入十个数*/

        for(i=0;i<10;i++)

        {

            scanf("%d",&nu[i]);

        }

     /**用一个数组记录每一个数出现的次数*/

        for(j=0;j<10;j++) 

        {

            for(k=j+1;k<10;k++)

            {

                if(nu[j] == nu[k])

                {

                    flaga++;

                }

            }

            bz[j]=flaga;

            flaga=1;

        }

     /**通过记录次数的数组找出出现次数最多的下标*/

        max=bz[0];

        for(l=1;l<10;l++)

        {

            if(max<bz[l])

            {

                max=bz[l];

                flagb=l;

            }

        }

     /**通过下标找出bz[]数组中最大的的数值,bz[]中最大的数值与bz[]每一个数值比较,相等证明出现的最大次数相同*/

        for(m=0;m<10;m++)

        {

            if(bz[flagb] == bz[m])                  //最大次数与其它次数比较

            {

                printf("%d ",nu[m]);

            }

        }

     return 0;

    }

  • 相关阅读:
    队列&栈//最小栈
    队列&栈//最小栈
    队列&栈//完全平方数
    队列&栈//完全平方数
    队列 & 栈//打开转盘锁
    队列 & 栈//打开转盘锁
    队列 & 栈//岛屿的个数
    深入理解计算机系统12——并发编程
    深入理解计算机系统11——网络编程
    深入理解计算机系统10——系统级I/O
  • 原文地址:https://www.cnblogs.com/xiao-c-2016/p/5908777.html
Copyright © 2011-2022 走看看