序曲-创新互联

1.判断一串从小到大排序数组中的相同元素最多的个数。序曲

例:

公司主营业务:成都网站建设、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出中卫免费做网站回馈大家。

 数组  1,1,2,2,2,2,3,3,3,3,3,6,6,6,6  中做多的元素是3,有5个;(最长平台)

说明:

(1)使用的变量越少越好

(2)只能用一个循环语句

(3)程序语句越少越好

#include "stdio.h"
void main()
{
  int a[] = {1,1,2,2,2,2,3,3,3,3,3,6,6,6,6};
   int length = 1;

 for(int i = 1; i < 15; i++ )
    if(a[i] == a[ i - length])
    length++;

printf("%d ",length);
}

2.支配值数目已知f[] 和 g[] 两个从小到大排序好的数组(没有重复的)

 编写程序算出f[] 中的元素比 g[] 中元素达的个数的总和;

例:f[] ={1,3,5,7,9}; g[] ={2,3,4,7,8};

比g[0] 的有f[1]~f[4],  比g[1] 的有f[2]~f[4],   比g[2] 的有f[2]~f[4],  比g[3] 的有f[4],   比g[4] 的有f[4],

因此答案是4+3+3+1+1 = 12;

#include "stdio.h"

void main()
{
   int f[5] = {1,3,5,7,9};
  int g[5] = {2,3,4,7,8};

  int m,n,coun;
  coun = m = n = 0;

 while(m < 5 && n < 5)
   if(f[m] > g[n]) {
   coun += 5 - m;
   n++;
  }
   else
   m++;
printf("%d ",coun);
}

3.等值数目

还是上面的例子,求两数组中相同的对 共有几对?

#include "stdio.h"
void main()
{
int f[5] = {1,3,5,7,9};
int g[5] = {2,3,4,7,8};

int m,n,coun;
coun = m = n = 0;

while(m < 5 && n < 5)
   if(f[m] > g[n])
    n++;
   else if(f[m] < g[n])
    m++;
   else
    n++,m++,coun++;

  printf("%d ",coun);
}


分享题目:序曲-创新互联
当前链接:http://scyanting.com/article/dijopd.html