| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 764 人关注过本帖
标题:返回给定的二位整数数组中出现次数最多的元素
只看楼主 加入收藏
billjyc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-12-15
结帖率:100%
收藏
 问题点数:0 回复次数:5 
返回给定的二位整数数组中出现次数最多的元素
返回给定的二位整数数组中出现次数最多的元素;
 例如sz[2][3]={{3,1,3},{1,3,5}}
 打印3
求指教
搜索更多相关主题的帖子: 元素 
2011-12-15 21:37
燃高
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:140
注 册:2011-12-13
收藏
得分:0 
#include<stdio.h>
#include<math.h>
main()
{
    int i,j,k,a,sz[2][3]={{3,1,3},{1,3,5}};
     int *q;
     int max=0;   
     q=sz;
         for(i=0;*(q+i)!='\0';i++)
         {
               for(k=0,j=i;*(q+j)!='\0';j++)
               {
                   if(*(q+j)==*(q+i))
                       k++;
               }
               if(k>max)
               { a=*(q+i);
                 max=k;
               }
     }
     printf("%d",a);
}
2011-12-15 23:25
billjyc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-12-15
收藏
得分:0 
回复 2楼 燃高
好像不对啊
2011-12-16 15:00
燃高
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:140
注 册:2011-12-13
收藏
得分:0 
怎么情况呢!!!
2011-12-17 14:04
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 楼主 billjyc
#include <stdio.h>
#define  N 2
#define  M 3
#define  K   N * M
#define  STRING  " element           times \n "
int main( )
{
    void arr_conv(int array[][M], int a2[K]);
    void elem_count(int array[K]);
    int  a1[N][M], a2[K];
    int  i, j;
    while (888)
    {
        printf("Please input a  two-dimensional array:");
        for (i = 0; i < N; i++)
            for (j = 0; j < M; j++)
                scanf("%d", &a1[i][j]);
            printf("\nNow original array a1[N][M] is :\n");
            for (i = 0; i < N; i++)
            {
                for (j = 0; j < M; j++)
                    printf("%-6d ", a1[i][j]);
                 printf("\n");
            }
            arr_conv(a1,a2);
            elem_count(a2);
    }
    return 0;
}

void  arr_conv(int array[][M], int a2[K])
{
    int i , j ;
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
            a2[i * M + j] = array[i][j];
    }
    printf("a2[K] = {");
    for(i =  0; i < K - 1; i++)
    printf("%d,", a2[i]);
    printf("%d}.\n", a2[K - 1]);

}


void elem_count( int array[K] )
{   
    int i , j, n , m = 0, len = K, s ,a3[K];
    for (i = 0; i < len; i++)
    {
        for ( j = i + 1 , n = 0 ; j < len; j++)
          if (array[i] == array[j])
          {   
             for (s = j; s < len ; s++)   
              array[s] = array[s + 1];             // Delete the same number
              len--;
              j--;
              n++;
              a3[i] = n;
          }
          if (m < n)
              m = n;
          printf(STRING);
          printf("%6d  ----->      %d\n", array[i], n + 1 );
    }
    for (i = 0; i < len; i++)
    {
        if (a3[i] == m)
        printf("Element %d appeared mostly, it appeared %d times.\n", array[i], m + 1);
    }
}

[ 本帖最后由 有容就大 于 2011-12-18 01:28 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2011-12-17 20:01
倚楼听风雨
Rank: 2
等 级:论坛游民
帖 子:33
专家分:38
注 册:2011-9-25
收藏
得分:0 
两次循环  用数组统计每个数出现的次数  ok
2011-12-18 12:59
快速回复:返回给定的二位整数数组中出现次数最多的元素
数据加载中...
 
   



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

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