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;

    }

  • 相关阅读:
    软件测试系列--集成测试
    软件测试系列--系统测试
    软件测试系列-软件质量
    Java初认识--函数和数组
    Java初认识--Java中的语法结构
    Java初认识--Java语言的书写规范及基本的运算符
    Java初认识--环境搭建及基本数据类型
    软件测试系列--软件缺陷管理
    ASP.NET MVC 路由系统类
    由浅入深了解Retrofit(一)
  • 原文地址:https://www.cnblogs.com/xiao-c-2016/p/5908777.html
Copyright © 2011-2022 走看看