C语言程序设计问题(高手帮下忙)

给定一个已升序排好的整数数组,求得此数组的最长平台的长度。所谓平台就是数组中连续相等的元素组合。如X[]={1,2,3,3,4,4,5,5,5,6}则此数组当中有1,2,... 给定一个已升序排好的整数数组,求得此数组的最长平台的长度。所谓平台就是数组中连续相等的元素组合。如X[]={1,2,3,3,4,4,5,5,5,6}则此数组当中有1,2,33,44,555,6共六个平台,最长平台为555,长度为3。 展开
 我来答
百度网友f83e4b8d5
2008-05-31 · TA获得超过223个赞
知道答主
回答量:75
采纳率:0%
帮助的人:30.6万
展开全部
#include<stdio.h>
main()
{
int i,men,num=1,len=1,sum=1;
int x[]={1,2,3,3,4,4,5,5,5,6};

for(i=1;i<10;i++){
if(x[i]==x[i-1]){
sum=sum+1;
}
else{
num=num+1;
if(len<sum){
len=sum;sum=1;men=x[i-1];
}
}
}
printf("%d",num);//平台的个数
printf("\n");
printf("%d",len);//最长平台的长度
printf("\n");
printf("%d",men);//构成最长平台的那个数组值
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
加油ningbo
2008-05-31 · 超过17用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>
#include <stdlib.h>
#define max 20

int main(int argc, char *argv[])
{int N,arr[max];
int arr1[max][max]={0};
int k,j,i,count;
int m=0,max1=0;
printf("please input total number:");
scanf("%d",&N);
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
for(i=0;i<N;)
{k=0;
m++;
arr1[m-1][k]=arr[i];
for(j=i+1;j<N;j++)
if(arr[j]!=arr[i]) {i=j;break;}
else
{arr1[m-1][k++]=arr[j];i=j;}
}
for(i=0;i<m;i++)
{count=0;
for(j=0;arr1[j]!=0;j++)
count++;
if(max1<count) {max1=count;k=i;}
}
printf("the lengthest is:\n");
for(j=0;arr1[j]!=0;j++)
printf("%d",arr1[k][j]);
printf("%d",max1);

system("PAUSE");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luosiyong
2008-05-30 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1738万
展开全部
#include <stdio.h>

int fun(int x[],int size)
{
int * p0,* p1,* pos;
p1=p0=x;
int max=0;
while(p1<x+size)
{
if(* p1==* p0)
p1++;
else
{
if(p1-p0>max)
{
max=p1-p0;
pos=p0;
}
p0=p1;
}
}
for(p0=pos;p0<pos+max;p0++)
printf("%d",* p0);
printf("\n");
return max;
}

void main()
{
int X[]={1,2,3,3,4,4,5,5,5,6};
printf("%d\n",fun(X,sizeof(X)/sizeof(int)));
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式