2 jiankeabcd jiankeabcd 于 2016.04.10 16:22 提问

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
caozhy   Ds   Rxr 2016.04.10 23: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

u012155923
u012155923   2016.04.10 18:04

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!