jiankeabcd
jiankeabcd
采纳率73.9%
2016-04-10 08:22 阅读 1.4k
已采纳

c语言 设计一个找出同数值部分排列的程序

定义一行的整数的输入有相同连续的地方为“同数值部分排列”
找出有最长的同数值部分排列,并输出排列长度及这个数字的程序。
最长的同数值部分排列有两个以上的时候,输出最后那个。
输入的数字用空格或者换行区别

例1
输入:
0 1 1 1 2 0 0
输出:
3 1

例2
输入:
1 1 1 3
1 2 2
2
3
输出:
3 2

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2016-04-10 15:19
     #include <stdio.h>
    
    int main()
    {
        int x;
        int c = 0;
        int px = -1;
        int maxv = -1;
        int maxc = 0;
        while (scanf("%d", &x) != EOF)
        {
            if (x == px)
                c++;
            else
                c = 1;
            if (c >= maxc)
            {
                maxc = c;
                maxv = x;
            }
            px = x;
        }
        printf("%d %d", maxc, maxv);
        return 0;
    }
    

    1 1 1 3
    1 2 2
    2 3
    ^Z
    3 2Press any key to continue

    点赞 1 评论 复制链接分享
  • u012155923 咖啡不加盐 2016-04-10 10:04

    其实还好这道题,用一个二维数组,第二纬度直接存改点出线的次数,然后遍历一遍找出出线次数最多且数最大的即可

    点赞 评论 复制链接分享

相关推荐