c语言如何判断一个数组中重复元素的个数,并输出这个个数的值?

作者&投稿:幸支 (若有异议请与网页底部的电邮联系)
c语言编程:输出数组中重复出现的数~


#includeint main(){int i,j,k=0,k1,p,a[10],b[5]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[j]==a[i]) {p=1; for(k1=0;k1<k;k1++) if(a[i]==b[k1])p=0; if(p) {printf("%d ",a[i]); b[k++]=a[i]; } }; return 0;}

用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语言

如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
int *a;
int i;
scanf("%d", &n);
a = (int *)malloc(sizeof(int) * n);
for(i = 0; i < n; i ++)
{
    scanf("%d", &a[i]);
}
for(i = 0; i < n - 1; i ++)
{
        for(int j = 0; j < n - i - 1; j ++)
        {
            if(a[j] > 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 < n; i ++)
{
    if(tmp == a[i])
    {
        count ++;
    }
    else
    {
        if(count > 1)
        {
            printf("数组共有%d个数字%d
", count, a[i - 1]);
        }
        tmp = a[i];
        count = 1;
    }
}
if(count > 1)
{
    printf("数组共有%d个数字%d
", count, a[i - 1]);
}
free(a);
return 0;
}

我的思路是,先排序,再输出。



代码如下 :

#include <stdio.h>

#define MAX 100 // 数组最大数

typedef struct _Node {
int value;
int count;
}Node;

typedef struct {
Node values[MAX];
int size;
}List;

Node *List_Add(List *pList, int value) {

Node *pNode = &pList->values[pList->size];

pNode->value = value;
pNode->count = 1;

pList->size++;

return pNode;
}

Node *List_Find(List *pList, int value)
{
int i;

for (i = 0; i < pList->size; i++) {
if (pList->values[i].value == value) {
return &pList->values[i];
}
}

return NULL;
}

int main()
{
int numbers[MAX], n, i;
List list;

scanf("%d", &n);

for (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}

list.size = 0;

for (i = 0; i < n; i++) {

Node *pNode = List_Find(&list, numbers[i]);

if (pNode != NULL) {
pNode->count++;
}
else {
List_Add(&list, numbers[i]);
}
}

for (i = 0; i < list.size; i++) {
if (list.values[i].count >= 2) {
printf("数组共有%d个数字%d
", list.values[i].count, list.values[i].value);
}
}

return 0;
}

运行结果:




c语言判断一个数是奇数还是偶数
1、一般是直接将输入的数字用2取余,如果为零则为偶数,反之则是奇数。详细代码如下:include<stdio.h>int main(){ int mun;printf("请输入一个数:\\n");scanf("%d",&num);if(num%2==0){ printf("%d是偶数!\\n");}else{ printf("%d是奇数!\\n");} return 0;} 2、通过位运算来判断...

c语言判断一个数是奇数还是偶数
在C语言中,我们可以使用模运算符(%)来判断一个数是奇数还是偶数。模运算符会返回两个数相除的余数。 模运算符(%)在C语言中利用取模运算,也就是求两个整数相除的余数。例如,10%3的结果是1,因为10除以3的余数是1。和模运算符指定输出格式。例如,%d表示输出整数,%f表示输出浮点数,%s表示输出字符串等等。 在...

c语言:编程:判断一个数的奇偶性
二、C语言中最常用的判断方式:根据定义,只需对2取余即可,所以可以通过取余运算符%,判断奇偶性。要对整数n判断,则可以:if(n%2==0) \/\/可以整除为偶数\/\/这里判断可以写作 !(n%2) 等效。或 if(n%2==1) \/\/不能整除为奇数。\/\/这里判断也可以写作n%2,或者n%2!=0,都是等效的。三...

c语言中怎么判断一个数值的范围?
逻辑判断中确定某数在某个范围内。比如判断数c在[a,b]区间内可以写作 (a<=c)&& (c <= b)2 使计算结果处于某个范围内。比如计算时间时,当前时间为n点,经过m小时后是几点,由于时间仅取值在0点到23点,所以对数值范围需要做约束。对于此可以用模除(%)来限定。(n+m)%24 其它关于数值范围...

C语言编译器怎样判断一个整数各位数字之和是不是9?
最后,我们检查是否存在各位数字之和为 9 的数,如果存在,则输出它们的平均值。如果不存在,则输出提示信息。以下是一个可以解决这个问题的 C 代码:#include int main() { int n;int sum = 0;int count = 0;printf("请输入一个正整数n:");scanf("%d", &n);for (int i = 1; i <...

c语言判断给定的一个数是否是基数,偶数,合数,完数,水仙花的代码?_百度...
以下是 C 语言判断一个数是否是奇数、偶数、质数、完数、水仙花数的代码:```c include <stdio.h> \/* 判断是否为奇数 *\/ int is_odd(int num) { return num % 2 != 0;} \/* 判断是否为偶数 *\/ int is_even(int num) { return num % 2 == 0;} \/* 判断是否为质数 *\/ int is...

在c语言编程中,要如何判断一个数是否为整数?
方法1:include<stdio.h> include<math.h> float x;...if(fabs(x-(int)x)<1e-8)printf(“x是一个整数\\n”);else printf(“x不是一个整数\\n”);方法2:int c=(int)b,d=(int)(b+0.999999)if(c==d)printf(“是整数\\n”);else printf(“不是整数\\n”);方法3:float b;...if...

在C语言中,如何判断一个数是奇数还是偶数?
include<stdio.h> int main(){ int s=0,i;for(i=1;i<20;i=i+2){ s+=i;} printf("1-20内的奇数和为%d",s);return 0;}

c语言编程中如何判断一个数是否为整数
一、判断思路:1、整数中,按十进制计算,合法字符为0到9,另外在最初位置可以有符号,即+或者-。2、对于输入的值,可以先存储到字符串中,这样转换为判断字符串中是否为整数。3、先判断第一个字符是否为+或者-, 如果是,则从第二个开始判断,否则从第一个开始判断。4、对每一个需要判断的字符,...

c语言如何判断一个数是几位数
c语言代码如下:include<stdio.h> int main(){double sum=0,x=1;while(sum<5){sum+=(1\/x);x++;} printf("出满足不等式1+1\/2+1\/3+...+1\/n≥5的最小n值为%.0lf\\n",x-1);return 0;}

雅安市19522866294: C语言用数组检查一组数字中是否有重复 -
由朱门冬: // 判定一个数组中是否存在相同的数. // 拿每个数和它后面所有的数比较,有相同的就返回真. // 全部比较完都没有相同的就返回假. int HasIdentical(const int* arr, int n) {int i = 0, j = 0;for (i = 0; i < n; ++i){for (j = i + 1; j < n; ++j){if (arr[i] == ...

雅安市19522866294: 判断数组内部重复元素除了嵌套循环还有什么办法 C语言 -
由朱门冬: 你这个代码就是检查有没有重复元素,所以只要检查到一旦有重复就应该退出循环;因为有一个重复是重复,有10个100个重复还是重复,所以一旦有了重复就没有必要向下再做了.给你提供一个试试看行不行——#include "stdio.h"#include ...

雅安市19522866294: C语言怎么算 同或,找一个数组中重复出现了一次的元素 -
由朱门冬: 方法1:先快速排序,然后遍历 方法2:遍历数组,把遍历的元素计算一个hash放到另外的数组里去,如果一个位置放了2次,就表明有2个.

雅安市19522866294: c语言怎么判断两个数组中重复数字的个数? -
由朱门冬: 判断两个数组中重复数字的个数方法如下:#include #include int main(){ int n; int *a; int i; scanf("%d", &n); a = (int *)malloc(sizeof(int) * n); for(i = 0; i < n; i ++) { scanf("%d", &a[i]); } for(i = 0; i < n - 1; i ++) { for(int j = 0; j < n - i - 1; j ++) { if(a[j] > ...

雅安市19522866294: C语言判断数组是否重复,
由朱门冬: chachong(a[6]);//函数调用int chachong(int a[]);//函数声明这问题需要楼主了解数组知识a[6]只是一个值;而且是一个未定义的值;因为数组a不存在下标为6的元素;建议改为chachong(a);//函数调用int chachong(int *a);//函数声明

雅安市19522866294: 在C语言中判选一个数组是否有重复值,,,比如a[10]是否有数相同,相同为一,不同为0 -
由朱门冬: 如果已知数组大小,则 直接赋给 n, 否则用 n = sizeof(数组名)/sizeof(数组变量类型); 计算.可用: flag=0 for (j=0;j<n;j++) for (i=0;i<n;i++) if (i != j) if (a[i]==a[j]) {flag=1;break;}; 若flag=1,则有相同的,若flag=0,则没有相同的.#include ...

雅安市19522866294: c语言数组元素判断是否相同以及相同的个数 -
由朱门冬: 不知道你想过这个问题没有:当相同的数中相同个数的最大值是相等的! 比如说有一组数据:4 4 4 6 6 6 相同数位3 可是相同的却有两组了! 楼下的代码只能解决没有相同的最大值的情况! 我必须的说考虑问题不严谨! 不过要是存在相同的数最大值有多组的情况就会复杂了! 相同的数的最大的个数可能有1个:也就是全都不相同的数如:1 2 3 4 5 6 相同的数的最大个数可能有2个:也就是 2 2 3 3 4 4 相同的数的最大个数可能有3个,也就是:2 2 2 3 3 3 4 4 4 ...............这个问题看似简单却是在考验你逻辑思维的严谨性!

雅安市19522866294: 一个C语言算法,关于筛选重复数据 -
由朱门冬: 用两个for 第一个for为历遍数组. 嵌套的另一个for用来判断本数之前是否有与其相同的数. 没有就输出. 有就忽略. 参考这个: #include<stdio.h> main() { int a[20],i,j,n=0; for(i=0;i<20;i++) scanf("%d",&a[i]); for(i=0;i<20;i++) { for(j=0;j<i;j++) if(a[i]==a[j]&&i!=j) {n++;break;} } printf("%d\n",20-n);}

雅安市19522866294: 用C语言写一个函数,判定任意给定的两维数组(100*100)中是否有相同元素. -
由朱门冬: #include<stdio.h>#define NUM 3 void main() { int i=0,j=0,k=0,m=0; int cnt=0; int c[NUM*NUM]; int a[NUM][NUM]={{45,12,95},{47,58,21},{48,52,33}}; int b[NUM][NUM]={{45,87,55},{95,44,55},{88,99,77}}; for(i=0;i<NUM;i++) { for(j=0;j<NUM;j++) { for(k=...

雅安市19522866294: C语言用数组检查一组数字中是否有重复,一个程序,怎么改成结果为YES或NO? -
由朱门冬: int HasIdentical(const int* arr, int n) { int i = 0, j = 0; for (i = 0; i < n; ++i) { for (j = 0; j < n && j != i; ++j) { if (arr[i] == arr[j]) { return 1; } } }return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网