请问怎么用C语言统计一个数组中不同元素它们重复的个数啊? c语言如何判断一个数组中重复元素的个数,并输出这个个数的值?

\u8bf7\u95ee\u600e\u4e48\u7528C\u8bed\u8a00\u7edf\u8ba1\u4e00\u4e2a\u6570\u7ec4\u4e2d\u4e0d\u540c\u5143\u7d20\u5b83\u4eec\u91cd\u590d\u7684\u4e2a\u6570\u554a\uff1f

\u5148\u6392\u5e8f\uff0c\u518d\u76f8\u51cf\u5c31\u53ef\u4ee5\u5566\uff01
int
a[100];//\u5047\u8bbe\u6709100\u4e2a\u5143\u7d20
tint
b,t=0;
for(int
i=1;i<100;i++)
{
if(t<a[i])
{
t
=a[i];
a[i]
=
a[i+1];
a[i+1]
=
a[i];//\u5148\u7528\u5192\u6ce1\u6cd5\u6392\u5e8f;
}
}
for(int
i=1;i<100;i++)
{
if(a[i+1]-a[i]==0)
{
b++;//\u7528\u76f8\u90bb\u5143\u7d20\u76f8\u51cf\uff0c\u5047\u8bbe\u7b49\u4e8e0\u4ed6\u4eec\u5c31\u76f8\u7b49\u3002
}
}

\u5982\u4e0b\uff1a
#include #include int main(){int n;int *a;int i;scanf("%d", &n);a = (int *)malloc(sizeof(int) * n);for(i = 0; i a[j+1]) { int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } }}int tmp = a[0];int count = 1;for(i = 1; i 1) { printf("\u6570\u7ec4\u5171\u6709%d\u4e2a\u6570\u5b57%d\n", count, a[i - 1]); } tmp = a[i]; count = 1; }}if(count > 1){ printf("\u6570\u7ec4\u5171\u6709%d\u4e2a\u6570\u5b57%d\n", count, a[i - 1]);}free(a);return 0;}
\u6211\u7684\u601d\u8def\u662f\uff0c\u5148\u6392\u5e8f\uff0c\u518d\u8f93\u51fa\u3002

用C语言统计一个数组中不同元素重复的个数:

public class Test {

public int count(int[] array) {

int len = array.length;

for (int i = 0; i < array.length - 1; i++) {

for (int j = i + 1; j < array.length; j++) {

int num = array[i];

if (array[j] == num) {

// 重复,数组总长度减1

len--;

i++;

}

}

return len;

public static void main(String[] args) {

// 测试数据:总共是9个不同的元素,按照升序排好,其中有重复出现的元素。

int[] array = new int[] { 1, 1, 2, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 9 };

 

System.out.println(new Test().count(array));

}

}

扩展资料:

C程序中函数特性

C程序中函数的数目实际上是不限的,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名的函数,这个函数称为主函数,整个程序从这个主函数开始执行。

函数内部究竟是如何工作的,外部程序是不知道的。外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。

参考资料来源:百度百科—c语言



先排序,再相减就可以啦!

int a[100];//假设有100个元素
tint b,t=0;
for(int i=1;i<100;i++)
{
if(t<a[i])
{
t =a[i];
a[i] = a[i+1];
a[i+1] = a[i];//先用冒泡法排序;
}
}
for(int i=1;i<100;i++)
{
if(a[i+1]-a[i]==0)
{
b++;//用相邻元素相减,假设等于0他们就相等。
}
}

#include <stdio.h>
#include <conio.h>

int main(void)
{
int a[12],b[12],c[12] = {0};
int i,j,cnt = 0;

/* 输入数据 */
for(i=0; i<12; i++)
{
scanf("%d",&a[i]);
}

/* 排序 */
for(i=0; i<12-1; i++)
for(j=0; j<12-1-i; j++)
{
int t;

if( a[j] > a[j+1] )
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}

for(i=0; i<12; i++)
{
for(j=0; j<cnt; j++)
if( b[j] == a[i] )
break;

/* 判断 */
if( j == cnt ) /* 增加元素 */
{
b[cnt++] = a[i];
c[cnt-1]++;
}
else /* 记录重复次数 */
{
c[j]++;
}
}

puts("\nb[]");
for(i=0; i < cnt; i++)
printf("%4d",b[i]);

puts("\n\nc[]");
for(i=0; i < cnt; i++)
printf("%4d",c[i]);

getch();

return 0;
}

可以使用。。

so easy
该程序还顺便统计了除数字之外的,空白符(空格、制表符、换行符)以及其他所有字符出现的次数
#include <stdio.h>
/* count digits, white space, others */
main()
{
int c, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
ndigit[i] = 0;
while ((c = getchar()) != EOF)
if (c >= '0' && c <= '9')
++ndigit[c'
0'];
else if (c == ' ' || c == '\n' || c == '\t')
++nwhite;
else
++nother;
printf("digits =");
for (i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n",
nwhite, nother);
}

用链表实现比较好。链表第一个元素是key,用以存储数组a中的不同的元素,第二个元素用以存储该元素在数组a中出现的次数。

  • C璇█涓璁$畻涓涓暟缁勪腑鏌愪釜鍊煎嚭鐜版鏁扮殑鍑芥暟?
    绛旓細濡傛灉缁欏畾鏁扮粍鐨勫厓绱犲煎亸灏忥紝涓嶅鑰冭檻鐢ㄥ叏鏁扮粍锛屾弿杩板涓嬶細// 鍏冪礌鏈澶у间笉浼氳秴杩嘙AX-1 define MAX 101 // 淇濆瓨鍏冪礌鍑虹幇娆℃暟锛屽垵濮嬪寲涓0銆倁long count_arr[MAX] = {0};void func(int arr[], uint len) { int i;for i->len ++count_arr[i];} // ...// print int i;for i->MAX...
  • c璇█瀛楃鏁扮粍涓鏁板瓧瀛楃鐨缁熻
    绛旓細include<stdio.h>#include<string.h>int main(void){ int n,count,i,k,j,w; char a[100]; scanf("%d",&n); w = n;//鍏堟妸n瀛樿捣鏉 n鏄涓涓鐢ㄦ埛杈撳叆鐨勫父閲 鏈濂戒笉瑕佷慨鏀 灏辩畻淇敼涔熻鐭ラ亾鍘熷鍊 int b[100]={0}; while(n > 0) { count = 0; ...
  • c璇█ 鏁扮粍 缁熻姣忕鏁板瓧涓暟,鎵嶅垰瀛,涓嶆噦,甯屾湜绠鍗曚竴鐐,绋嬪簭鏈鍚庤繕瑕...
    绛旓細杈撳叆涓琛屾暟瀛楀瓧绗︼紝璇风敤鏁扮粍鍏冪礌浣滀负璁℃暟鍣ㄦ潵缁熻姣忎釜鏁板瓧瀛楃鐨勪釜鏁般傜敤涓嬫爣涓0鐨勫厓绱犵粺璁″瓧绗'0'鐨勪釜鏁帮紝涓嬫爣涓1鐨勫厓绱犵粺璁″瓧绗'1'鐨勪釜鏁帮紝...銆俰nclude <stdio.h> void main(){ int num[10]={0},i;char ch;printf("杈撳叆涓琛屾暟瀛楀瓧绗︼細\n");while((ch=getchar())!='\n')num[ch-'...
  • 鐢╟璇█杈撳叆涓涓4*6鐨勪簩缁存暟缁,姹鏁扮粍涓鐨勬渶澶у,鏈灏忓,骞冲潎鍊笺俖鐧...
    绛旓細include "stdio.h"int main(){ double a[4][6]={0};int i,j;double max,min,ave,sum=0;printf("璇疯緭鍏涓涓4X6鐨勪簩缁鏁扮粍:\n");for(i=0;i<4;i++)for(j=0;j<6;j++){ scanf("%lf",&a[i][j]);sum+=a[i][j];} max=min=a[0][0];ave=sum/24;for(i=0;i<4;i...
  • C璇█, 缁熻鏁扮粍姣忎釜鍏冪礌涓暟鎬庝箞鍋?
    绛旓細//a鏁扮粍鏀鹃殢鏈烘暟 //b鏁扮粍鏀炬槸鍚﹁缁熻鐨勬爣蹇楋紝1鏈粺璁★紝0宸茬粺璁 //c鏁扮粍鏀惧搴攁鏁扮粍涓闅忔満鏁板嚭鐜扮殑娆℃暟 for(i=0;i<100;i++){ a[i]=rand()%21;//浜х敓0~20鐨勯殢鏈烘暟 b[i]=1;//鏈粺璁 printf("%5d",a[i]); //鎵撳嵃a鏁扮粍鐨勫 if((i+1)%10==0) //涓琛屾墦鍗10涓暟 print...
  • C璇█ 缁撴瀯浣鏁扮粍 璁$畻涓暟
    绛旓細绗竴绉嶆柟娉曪紝璁剧疆涓涓缁撴瀯浣撳彉閲忕殑鎴愬憳涓烘煇涓叿浣撶殑甯搁噺锛岃繘琛岄亶鍘嗗鎵惧緱鍑哄彉閲忕殑鏁伴噺 绗簩绉嶆柟娉曪紝鍦ㄨ緭鍏ユ椂璁$畻 绗笁绉嶏紝寤虹珛涓涓湁鎸囬拡鍩熺殑鍔ㄦ侀摼琛 鐢ㄧ涓夌鏂规硶瀹炵幇鐨勪竴涓緥瀛愶紝鍙敤鏉ュ绫嶇鐞嗙郴缁 include <stdio.h> include <stdlib.h> include <conio.h> typedef struct student { int num;...
  • 鐢–璇█姹備簩缁鏁扮粍涓鐨勮繖鏍风殑涓涓鍏冪礌浣嶇疆:鍦ㄨ涓婃渶灏,鍦ㄥ垪涓婁篃鏈灏...
    绛旓細/*鐢–璇█姹備簩缁鏁扮粍涓鐨勮繖鏍风殑涓涓鍏冪礌浣嶇疆锛氬湪琛屼笂鏈灏忥紝鍦ㄥ垪涓婁篃鏈灏忋傚鏋滄病鏈夎繖鏍风殑鏁板垯杈撳嚭鐩稿簲淇℃伅銆/ define ROW 3 //鏁扮粍琛屾暟 define COL 3 //鏁扮粍鍒楁暟 include <iostream> using namespace std;void search(int array[ROW][COL],int m,int n) //m涓烘暟缁勮鏁帮紝n涓烘暟...
  • 浣跨敤鏁扮粍鍜屾寚閽堝疄鐜颁俊鎭缁熻,c璇█銆傜▼搴忚鏄
    绛旓細涓や釜绋嬪簭鏄涓涓闂鐨勪袱绉嶅仛娉 鍔熻兘鏄牴鎹產涓浗瀹朵汉鏁帮紝璁$畻鍑鸿繖鍑犱釜鍥藉鐨勫钩鍧囦汉鏁帮紝鏈灏忎汉鏁扮殑鍥介檯锛屼互鍙婅鍥藉鐨勪汉鏁帮紝鎵撳嵃杈撳嚭 鍏朵腑 鏁扮粍a[]涓璦[0]-a[4]瀛樻斁5涓浗瀹跺弬璧涗汉鏁帮紱a[5]瀛樻斁鍥藉鏁伴噺锛宎[6]瀛樻斁浜烘暟骞冲潎鍊硷紝a[7]瀛樻斁鏈灏忓 char *MeanLow[4]鎸囬拡鏁扮粍锛屽瓨鏀惧瓧绗︿覆]{"鍥藉鏁伴噺"...
  • 璁捐涓涓猚璇█绋嬪簭,鐢ㄦ渶灏戠殑姣旇緝娆℃暟,鎼滅储鏁村瀷鏁扮粍涓鐨勬渶澶у拰鏈灏忔暟
    绛旓細褰搃涓虹n/2缁勬椂锛堝嵆鏈鍚庝竴缁勶級缁撴潫锛歜ool find_MinMax(int a[], int n, int &Max, int &Min) { //浠巒涓暟涓壘鍑烘渶澶у糓ax涓庢渶灏忓糓in int max, min, i;if(n < 1) return false; /*濡傛灉鏄┖鍒楋紝鍒欒繑鍥炲け璐*/ if(n == 1){ /*濡傛灉鍙湁涓涓鍏冪礌锛屽垯杩欎釜鍏冪礌鏃㈡槸鏈澶...
  • 鐢–璇█缂栧啓:杈撳叆20涓瓧绗,瀛樻斁鍦涓涓瀛楃鏁扮粍涓,鐒跺悗鍒嗗埆缁熻鍏朵腑鏁 ...
    绛旓細include<stdio.h>int main(){char str[100];int i=0;int num=0,ch=0,blank=0,other=0;gets(str);while(str[i]!='\0'){if((str[i]>='A' && str[i]<='Z') || (str[i]>='a' && str[i]<='z'))ch++;//瀛楁瘝else if(str[i]>='0' && str[i]<='9')num++;//...
  • 扩展阅读:编程必背100个代码 ... 输入一个数组c语言 ... c语言数组的下标范围 ... 如何输入一个数组 ... c语言中如何输入n个数 ... c#输出一个数组 ... c语言输入数组怎么输 ... c#定义一个数组 ... c语言怎么把数字存入数组 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网