| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2198 人关注过本帖
标题:编写求最大平台问题的程序
只看楼主 加入收藏
小奶狗
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-4-10
结帖率:0
收藏
 问题点数:0 回复次数:19 
编写求最大平台问题的程序
有n个整数a1,a2...an,若满足a1<=a2<=...an,则认为在这n个数中有最大平台,在这种情况下,若n个数互不相同,则最大平台值为1,若n个数中最多有连续m个整数的值相等,则最大平台为m
例如:当n=10
1 2 3 4 5 6 7 8 9 10  最大平台为1
1 2 2 3 3 3 3 5 6 7    最大牌平台为4
2 1 6 5 9 6 2 3 4 5    无最大平台
搜索更多相关主题的帖子: 编写 最大 平台 整数 个数 
2018-04-21 15:07
小奶狗
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-4-10
收藏
得分:0 
求代码,这题实在想不出。
2018-04-21 15:11
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
收藏
得分:0 
程序代码:
#include<stdio.h>
int main(void)
{
    int a[100],n,i,max=1,t=1,flag=1;
    scanf("%d",&n);
    for(i=0;i<n;++i)
    {
        scanf("%d",&a[i]);
        if(i>0&&a[i]<a[i-1])
            flag=0;
    }
    if(flag)
    {
        for(i=0;i<n;++i)
            {
                if(i>0&&a[i]==a[i-1])
                    {
                        t++;
                        max=(max>t)?max:t;
                    }
                else
                    t=1;
           }
    }
    flag?printf("最大平台为%d\n",max):printf("无最大平台\n");
    return 0;
}


[此贴子已经被作者于2018-4-21 16:34编辑过]

2018-04-21 15:43
小奶狗
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-4-10
收藏
得分:0 
请问第二个for语句是什么意思,为啥还有问号和冒号?😥
2018-04-21 16:06
小奶狗
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-4-10
收藏
得分:0 
能解释一下这段代码吗
2018-04-21 16:07
小奶狗
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-4-10
收藏
得分:0 
如果第一个数就比第二个数大的话那第一个if语句嵌套在for岂不是多余了
2018-04-21 16:12
小奶狗
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-4-10
收藏
得分:0 
我知道了,那是一个符号,不用回复我的第一个疑问了,
2018-04-21 16:15
小奶狗
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-4-10
收藏
得分:0 
我在仔细看看代码哈
2018-04-21 16:15
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
收藏
得分:0 
回复 6楼 小奶狗
因为在没有最大平台时max是不输出的没有意义,所以不管。
我这你求max已经默认有最大平台,你也可以在前面加上一个if(flag){..........}
for(i=0;i<n;++i)
    {
        if(i>0&&a[i]==a[i-1])             //从a[1]开始如果a[i]等于a[i-1]表示当前最大平台数加1
        {                                 
            t++;
            max=(max>t)?max:t;            //如果当前最大平台数大于之前的最大平台数,最大平台数就是当前平台数
        }
        else
            t=1;                          //如果元素值改变了当前最大平台数重新计数
2018-04-21 16:18
小奶狗
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2018-4-10
收藏
得分:0 
if(i>0&&a【i】==a【i-1】)仅凭这一句吗,万一前面的数比后面的数小呢
2018-04-21 16:19
快速回复:编写求最大平台问题的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.081972 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved