C语言 怎么计算阵列中每一个不同元素出现的次数

如题所述

第1个回答  2022-11-17
C语言 怎么计算阵列中每一个不同元素出现的次数 如果可能出现的数的范围有限的话,可以用阵列来解决
int counter[100];只能解决0~99范围内的整数for(int i=0;i<sizeof(a)/sizeof(int);i++){ counter[a[i]]++;}for(int i=0;i<100;i++){ if(counter[i])printf("%d出现%d次\n",i,counter[i]);}
更复杂的情况(例如出现小数或特别大的数)就得用连结串列一类的容器来解决了
怎么计算阵列中元素的出现次数
使用array_count_values函式可以找出阵列中相同值出现的次数,array_count_values用法如下:
array_count_values — 统计阵列中所有的值出现的次数
array array_count_values ( array $input)
array_count_values() 返回一个数组,该阵列用 input 阵列中的值作为键名,该值在:input 阵列中出现的次数作为值
input:统计这个阵列的值
返回值:
返回一个关联阵列,用 input阵列中的值作为键名,该值在阵列中出现的次数作为值。
C语言中求阵列中元素出现的次数是多少?
#include <stdio.h>
#include <string.h>
void main()
{
int count[10]={0}; 记录各个字元的个数
char number[] = "11992003747823682482932487928392";
int i=0;
while( number[i]!='\0' ) 判断是否遇到字串结束符'\0'
{
switch (number[i++]) { i++用于指向下一个字元
case '0': count[0]++; break; 字元0 的个数加1
case '1': count[1]++; break; 字元1 的个数加1
case '2': count[2]++; break;
case '3': count[3]++; break;
case '4': count[4]++; break;
case '5': count[5]++; break;
case '6': count[6]++; break;
case '7': count[7]++; break;
case '8': count[8]++; break;
case '9': count[9]++; break; 字元9 的个数加1
default: beak;
}
}
for ( i=0;i<10;i++ )
printf("%d[%d]\n" , i , count[i] );
}
C语言计算阵列中任一元素a[i][j]在阵列中位置的公式
J是从0开始的 ,所以实际的位置应该加1,阵列嘛~~都是从零开始的,第一个数是0,第二个是1

c语言程式设计:输入两个整型阵列,每个阵列中各有10个不同的元素,输出在两个阵列中都出现的元素。
#include<stdio.h>
void main(){
int a[10];
int b[10];
int a1,a2;
printf("请输入第1个数组的10个整数");
printf("\n");
for(int i=0;i<10;i++){
scanf("%d",&a1);
a[i]=a1;
}
printf("请输入第2个数组的10个整数");
printf("\n");
for(i=0;i<10;i++){
scanf("%d",&a2);
b[i]=a2;
}
for(i=0;i<10;i++){
for(int j=0;j<10;j++){
if(a[i]==b[j])
printf("%d ",a[i]);
}
}
}
哪位师傅帮用Java我计算出阵列中每个元素出现的次数
解题思路,找出已给阵列a中的最大值,根据得到的最大值建立一个新的阵列b,新阵列b的index索引代表a中数值,b中的数值即为出现的次数。
class Untitled { public static void main(String[] args) { int[] a = {1,3,4,4,4,6,8,8,8,9,10,10}; int[] elements = new int[getBiggestNumber(a)]; for(int i = 0; i < a.length; i ++) { elements[a[i]] ++; } for(int i = 0; i < elements.length; i ++) { if(elements[i] != 0) { System.out.println(i + " 出现了 " + elements[i] + " 次"); } } } public static int getBiggestNumber(int[] array) { int max = 0; for(int i = 0; i < array.length - 1; i ++) { if(array[i] > max) { max = array[i]; } } return max + 1; }}
输出

1 出现了 1 次

3 出现了 1 次

4 出现了 3 次

6 出现了 1 次

8 出现了 3 次

9 出现了 1 次

10 出现了 2 次

【c语言演算法】 求一个3乘3矩阵中每个元素出现的次数??
#include <iostream.h>
int shu[9],yuansu[9],cishu[9];
void main()
{
int num=0;
int a,c;
while(1)
{
int x=0;
int b=9;
cout<<"请输入9个数,形成一个3*3矩阵"<<endl;
录入9个数组成3*3矩阵
for(int i=0;i<9;i++)
{
cin>>a;
shu[i]=a;
}
输出矩阵
cout<<"3*3矩阵如下:"<<endl;
for (int j=0;j<3;j++)
{
cout<<shu[3*j]<<" "<<shu[3*j+1]<<" "<<shu[3*j+2]<<endl;
}
对矩阵进行资料检测
while(b>0)
{
a=shu[0];
for (int y=0;y<b;y++)
{
if (a==shu[y])
{
num++;
c=y;
b--;
for (;c<b;c++)
{
shu[c]=shu[c+1];
}
y--;
}
}
yuansu[x]=a;
cishu[x]=num;
num=0;
x++;
}
输出矩阵中的元素及它们出现的次数
cout<<"元素: ";
for (int k=0;k<x;k++)
{
cout<<yuansu[k]<<" ";
}
cout<<endl;
cout<<"次数: ";
for (int l=0;l<x;l++)
{
cout<<cishu[l]<<" ";
}
cout<<endl;
cout<<"---------------------------------"<<endl;
}
}
c语言 输出阵列中元素个数
1、C语言中,定义阵列后可以用sizeof命令获得阵列的长度(即可容纳元素个数)。但是通过传递阵列名引数到子函式中,以获得阵列长度是不可行的,因为在子函式当中,阵列名会退化为一个指标。
2、例如:
int data[4],length;
length=sizeof(data)/sizeof(data[0]); 阵列占记忆体总空间除以单个元素占记忆体空间大小,即等于元素个数
printf("length of data[4]=%d", length ); 输出length of data[4]=4
C语言输入两个阵列(阵列元素个数自定),输出在两个阵列中都出现的元素
#define N 10
#define M 10
#include"string.h"
#include"stdio.h"
void main()
{
int a[N] ,b[M],*p,*q;
gets(a);
gets(b);
p=a;q=b;
while(*p) 当p不指向‘\0’时,执行回圈
{while(*q)
{if(*p==*q) 如果所指内容一样则输出内容
printf("%d",*q);
q++; q指向b中的下一个数
}
p++; p指向a中的下一个数
q=b; q重新指向b的首地址
}
}
怎么计算阵列中同样元素的个数
假设阵列a[n] 数字m
int i,N=0;
for(i=0;i<n;i++)
if(m==a[i])
N++;
相似回答