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 ";
?>