导航:首页 > 源码编译 > 数组相同的个数算法

数组相同的个数算法

发布时间:2023-04-19 16:42:26

1. 怎样用C++找出一个数组中的相同的数的个数

循环就好了,这是最简单的森差烂算法。例如数组a为待处理数组。
int* b = (int*)malloc(n*sizeof(int));
for(int i = 0;i < n;i++)
{
for(int j = 0;j < m;j++)
{
if(a[n]==b[j])
b[j]++;
}
if(j==m)
b[m] = 1;
m++;
}
如果需此漏要知道重复的数字是什么,则b定义为庆灶结构体数组
struct record
{
int data,
int count
};

2. 求算法问题: 一个数组a中有n个整数,如何设计算法,使其中相同的数只有一个。并给出程序。

对数组进行排序,然后将相邻的如果相等的去掉就可以了

int m=0;
for(i=1;i<n;i++)
{
if(a[i] != a[m])
a[++m]=a[i];

}
m++;

排序可以调用库函数
c++ sort(a,a+n);
c qsort

3. VB计算数组中相同数字的个数

另外建立一个二维数组d(1 To 14,1 To 2) As Integer
用来存放各数值以及出现的次数,一开始都为0,或者其它一个特殊的数据-9999
然后,从a数组每读一个燃宏数,就去扫描数组d,找一找是否存在,若不存在辩伏就添加,若存在就加1

窗皮灶册体上添加一个按钮:
代码如下:

Option Explicit

Private Sub Command1_Click()
Dim a()
Dim d() As Integer
Dim i As Integer
Dim j As Integer
Dim n As Integer
a = Array(3, 5, 8, 1, 3, 2, 4, 5, 6, 6, 5, 4, 1, 3, 2)
n = UBound(a)
ReDim d(0 To n, 1 To 2) As Integer
For i = 0 To n
For j = 1 To 2
d(i, j) = -9999
Next j
Next i
For i = 0 To n
For j = 0 To n
If d(j, 1) <> -9999 Then
If a(i) = d(j, 1) Then
d(j, 2) = d(j, 2) + 1
Exit For
End If
Else
d(j, 1) = a(i)
d(j, 2) = 1
Exit For
End If
Next j
Next i

For i = 0 To n
If d(i, 1) <> -9999 Then
Print "有:"; d(i, 2); "个"; d(i, 1)
End If
Next i
End Sub

4. 如何MATLAB统计数组中相同元素的个数

MATLAB统计数组中相同元茄散素的个数步骤如下:

1、打开matlab,在命令行窗口中输入a=[1 3 5;6 7 8],创建一个二维数组。

5. 比较两个数字数组中相同的数字,写出O(n)算法

void main(){
int p1[10]={...},p2[10]={...};
int p1_max = p1[0];
int p1_min = p1[0];
int p2_max = p2[0];
int p2_min = p2[0];
int j = 0,i = 0;
int temp[10];//保存输出或谨相等的数字
for(i =1 ;i < 10 ;i++){
if(p1[i]>p1_max){
p1_max = p1[i];//求出p1数组最大值
p1max_xiaobiao = i;
}
if(p1[i]<p1_min){
p1_min = p1[i];//求出p1数组最小值
p1min_xiabiao =i;
}
}
for( i =1 ;i < 10 ;i++){
if(p2[i]>p2_max){
p2_max = p2[i];//求出p2数组最大值
p2max_xiao = i;
}
if(p2[i]<p2_min){
p2_min = p2[i];//求出p2数组最小值
p2min_xiabiao = i;
}
}

if(p1_min>p2_max || p2_min>p1_max){
printf("衫毁基没有相等的数字");
}else if(p1_min>p2_min&&p1_max<p2_max){ //p1属于p2
for(int j = 0, i = p1min_xiabiao;i <= p1max_xiabiao;i++){
if(p1[i] == p2[i]){
temp[j] = p1[i];
j++;
}
}
printf("余谨输出数组temp");//这里省略
}else if(p1_min<p2_min&&p1_max>p2_max){//p2属于p2

for(j = 0, i = p2min_xiabiao;i <= p2max_xiabiao;i++){
if(p1[i] == p2[i]){
temp[j] = p1[i];
j++;
}
}
printf("输出数组temp");//这里省略
}else{//叫什么忘了
if(p1_min>p2_min){//从p1_min开始到p2_max执行循环
for(j = 0,i = p1min_xiabiao;i <= p2max_xiabiao;i++){

if(p1[i] == p2[i]){
temp[j] = p1[i];
j++;
}
}
printf("输出数组temp");//这里省略
}else{//从p2_min开始到p1_max执行循环
for(j = 0,i = p2_min;i <= p1max_xiabiao;i++){
if(p1[i] == p2[i]){
temp[j] = p1[i];
j++;
}
}
printf("输出数组temp");//这里省略
}
}
}
//没调试过不知行不行,而且写的太烂

6. 找一个数组中最多相同的数的值,及它相同的次数。用C语言哈。谢谢了 !!

很简单,不过我不知道你数组a中的数据是怎么定义的,全是整数?上下限是多少,如果下限是0或者0以上的,上限不猜空是穗橘瞎很伍烂大的话。可以用数组来实现,比如有一个数组b,下标 为数组a中的值,每个值为出现的次数。
比如b[i]=num,表示i出现了num次。
实现的代码也很简单。
//初始化数组b全部为0
for(i=0; i<n; i++)
{
b[a[i]]++;

}
这样就可以了,直接找数组b中的最大值,就是出现次数,下表为出现的值。

7. perl 怎么计算数组中相同数字的个数

while(<>){
chomp;
unless(/^M/){
@tmp=split;
$count{$tmp[0]}++;##统计第蚂局圆一列闷塌数字个数
腊宏}
}
print"$count{1} ";##1的个数


你的代码没贴完不知道到底是哪里。。

8. javascript计算数组重复元素个数,并计算个数

楼上的回答,如果只针对题主的需求,应该可以解决问题了。

但是,如果考虑的更全面些,我们应该考虑到JS数组中的数据类型可以是多样的(有可能是Object、Array、String...)

所以我写了一个比较复杂的,效率可能比较低,可以慢慢优化:

(function(){
functionisObject(o)绝埋{
returnObject.prototype.toString.call(o)==='[objectObject]';
}
functionisArray(o){
returnObject.prototype.toString.call(o)==='[objectArray]';
}
functionplicate(arr){
vartmp;
if(!arr||arr.length===0){
return[];
}
for(vari=0,len=arr.length;i<len;i++){
tmp=arr[i];
if(isArray(tmp)){
for(varj=i+1;j<len;j++){
if(isArray(arr[j])&&tmp.length===arr[j].length){
varflag=false;
for(vark=0;k<tmp.length;k++){
if(tmp[k]!==arr[j][k]){
flag=true;
break;
}
}
if(!flag){
arr.splice(j,1);
len--;
j--;
}
}
}
}elseif(isObject(tmp)){
for(varj=i+1;j<len;j++){
if(isObject(arr[j])){
vartmpKey=[],objKey=[],flag=false;
for(varkintmp){
tmpKey.push(k);
}
并慎蚂for(varlinarr[j]){
objKey.push(l);
}
if(tmpKey.length===objKey.length){
for(varkeyintmp){
if(tmp[key]!==arr[j][key]){
flag=true;
break;
}
}
}
if(!flag){
arr.splice(j,1);
len--;
孝历j--;
}
}
}
}else{
for(varj=i+1;j<len;j++){
if(tmp===arr[j]){
arr.splice(j,1);
len--;
j--;
}
}
}
}
returnarr;
}

varlist=[{"id":1,"name":"AA"},{"id":1,"name":"AA"},{"id":1,"name":"AA"},{"id":2,"name":"BB"}];
varls=[{"id":1,"name":"AA"},{"id":1,"name":"AA"},[12,23],[12,23],[12,23,34],{"xxx":"yyy","id":2},"aa","aa","aabb"];
varlist2=plicate(list);
varls2=plicate(ls);

console.log(list2);
console.log(ls2);
})();

希望能解决题主的问题...

9. 计算数组中每个数字重复的个数,并输出这个数字和它重复的个数

本题的一个完整碰卖旅的c程序如下,程序在win-tc和Dev-c++下运行通过。程序提示先输入数组中的各个数值(这里设定为20个),然后提示再输入一个笑凳和上面所有输入数值都不同的数值;程序执行配衡后输出结果,第一行是按原来输入顺序的各个不同的数值,第二行对应的是该数值出现的重复次数。
/*
数小时艰辛试验,成功。
计算数组中每个数字重复的个数,并输出这个数字和它重复的个数
*/
# include <stdio.h>
# include <stdlib.h>
# include <conio.h>
# define MAX 20
int main()
{
int i,j,num;
int a[MAX];
int b[MAX]={0};
printf("Please input %d numbers one by one:\n",MAX);
for(i=0;i<MAX;i++)
scanf("%d",&a[i]);
printf("Please input a number which is different from any of them:\n");
scanf("%d",&num);
for(i=0;i<MAX-1;i++)
for(j=i+1;j<MAX;j++)
if(a[i]!=num&&a[j]==a[i])
{ b[i]++;
a[j]=num;
}
for(i=0;i<MAX;i++)
if(a[i]!=num)
b[i]++;
printf("The result is:\n");
for(i=0;i<MAX;i++)
if(a[i]!=num)
printf("%6d",a[i]);
printf("\n");
for(i=0;i<MAX;i++)
if(b[i]!=0)
printf("%6d",b[i]);
getch();
return 0;
}

10. thinkphp php 判断两个数组array中值相同的个数

只需要定义一个变量用来统计相同个数

然后对第一个数组进行遍历

通过in_array函数检查第一个数组中的元素是否在第二个数组中

如果在就进行统计

这样循环结束后就能得到两个数组相同值的个数


下面是一个简单的代码

<?php
$array1=array(1,2,3,4,5);
$array2=array(4,5,6,7,8);
$count=0;

for($i=0;$i<count($array1);++$i)
if(in_array($array1[$i],$array2))
++$count;

echo"相同的个数为:$count ";
?>
阅读全文

与数组相同的个数算法相关的资料

热点内容
截图怎么保存文件夹然后压缩 浏览:4
幻影服务器怎么样 浏览:27
具体哪些广东公司招程序员 浏览:867
嵌入式编译器教程 浏览:302
ssl数据加密传输 浏览:86
51单片机定时器方式2 浏览:330
命令行查看开机时间 浏览:812
python微博复杂网络分析 浏览:550
rf3148编程器 浏览:505
浙江标准网络服务器机柜云主机 浏览:587
设置网络的服务器地址 浏览:600
java图形界面设计 浏览:751
纯前端项目怎么部署到服务器 浏览:538
瓜子脸程序员 浏览:505
如何保证服务器优质 浏览:94
小微信aPP怎么一下找不到了 浏览:299
算法纂要学术价值 浏览:976
程序员你好是什么意思 浏览:803
倩女幽魂老服务器如何玩 浏览:563
电子钟单片机课程设计实验报告 浏览:1001