您的位置:

数组统计c语言,数组计算c语言

本文目录一览:

C语言, 统计数组每个元素个数怎么做?

我没有随机种子函数,这样效果明显。所产生的随机数的范围你可以改变。

#includestdio.h

#includestdlib.h

main()

{

int a[100],b[100],c[100]={0},i,j;

//a数组放随机数

//b数组放是否被统计的标志,1未统计,0已统计

//c数组放对应a数组中随机数出现的次数

for(i=0;i100;i++)

{

a[i]=rand()%21;//产生0~20的随机数

b[i]=1;//未统计

printf("%5d",a[i]); //打印a数组的值

if((i+1)%10==0) //一行打印10个数

printf("\n");

}

printf("\n");

for(i=0;i100;i++)

{

if(b[i]) //若a[i]未被统计

{

c[i]++; //次数加1

for(j=i+1;j100;j++)//从下一个开始向后查找

if(a[j]==a[i]) //若相等

{

c[i]++; //则次数增1

b[j]=0; //改为已统计

}

}

}

for(i=0,j=1;i100;i++)

{

if(c[i]) //若某随机数出现了,则打印其值和出现次数

printf("%3d:%5d 出现 %3d次\n",j++,a[i],c[i]);

}

}

请问怎么用C语言统计一个数组中不同元素它们重复的个数啊?

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

c语言:编程统计数组a中的正数,0,负数的个数,并输出统计结果?

修改如下:

#include "stdio.h"

int main()

{int s[40],i=0,j,num=0,a=0,b=0,c=0;

for (i=0;i40 (scanf("%d",s[i])!=EOF);i++ )//当i40且没有结束输入的时候,循环

//结束输入,你要按ctrl+z+回车

{

num++;

}

for(j=0;jnum;j++)

{if (s[j]0) a++;else if (s[j]==0) b++;else c++;}

printf("数组a中正数有%d个,0有%d个,负数%d个",a,b,c);

}

C语言 统计数组每个元素个数

我没有随机种子函数,这样效果明显。所产生的随机数的范围你可以改变。

#includestdio.h

#includestdlib.h

main()

{

int a[100],b[100],c[100]={0},i,j;

//a数组放随机数

//b数组放是否被统计的标志,1未统计,0已统计

//c数组放对应a数组中随机数出现的次数

for(i=0;i100;i++)

{

a[i]=rand()%21;//产生0~20的随机数

b[i]=1;//未统计

printf("%5d",a[i]); //打印a数组的值

if((i+1)%10==0) //一行打印10个数

printf("\n");

}

printf("\n");

for(i=0;i100;i++)

{

if(b[i]) //若a[i]未被统计

{

c[i]++; //次数加1

for(j=i+1;j100;j++)//从下一个开始向后查找

if(a[j]==a[i]) //若相等

{

c[i]++; //则次数增1

b[j]=0; //改为已统计

}

}

}

for(i=0,j=1;i100;i++)

{

if(c[i]) //若某随机数出现了,则打印其值和出现次数

printf("%3d:%5d 出现 %3d次\n",j++,a[i],c[i]);

}

}

C语言字符数组统计

你把a[0-100]全部设置为NULL或者-1,然后在最后那里加个判断条件,不等于NULL或者-1,然后就OK了