c语言中如何统计某列数据中出现的不同数据,并将这些数据存储起来以备后用。
来源:百度知道 编辑:UC知道 时间:2024/06/23 03:12:18
如题。
统计A数组中出现的不同数据的个数,并将这些数据存储起来以备后面使用。
请写出具体的C语言代码。
谢谢
上面问题中的描述有小小的错误,不是统计个数,而是将不同的元素统计出来将其存储起来。
数组int A[30];
统计结果放入数组int B[30];//因为不同数据出现的次数不定,所以定义B数组时定义成可能最多的情况,也就是说A数组中每个数据都互不相同。
B数组所有数组元素初始化成-1,约定-1不出现在A数组中。
统计A中出现的所有不同的数据,相应的数据存储在B数组中。
例如A数组中元素如下:
1,2,3,5,23,2,3,2,5,6,34,23
在A数组中出现过1,2,3,5,23,6,34
那么B数组中就应该是相应的1,2,3,5,23,6,34
统计A数组中出现的不同数据的个数,并将这些数据存储起来以备后面使用。
请写出具体的C语言代码。
谢谢
上面问题中的描述有小小的错误,不是统计个数,而是将不同的元素统计出来将其存储起来。
数组int A[30];
统计结果放入数组int B[30];//因为不同数据出现的次数不定,所以定义B数组时定义成可能最多的情况,也就是说A数组中每个数据都互不相同。
B数组所有数组元素初始化成-1,约定-1不出现在A数组中。
统计A中出现的所有不同的数据,相应的数据存储在B数组中。
例如A数组中元素如下:
1,2,3,5,23,2,3,2,5,6,34,23
在A数组中出现过1,2,3,5,23,6,34
那么B数组中就应该是相应的1,2,3,5,23,6,34
#include<stdio.h>
int main(void)
{
int i, j, x;
int a[30]={1,2,3,5,23,2,3,2,5,6,34,23};
int b[30]={0};
for(i=0;i<30;i++)
printf("%d ", a[i]);
printf("\n\n");
for(i=0; i<30; i++)
{
if(a[i]!=0) //数组a判断默认值0
{
j=0;
x=1;
while( b[j]!=0&&x) // 数组b判断默认值0
{
if(b[j]==a[i])
x=0;
j++;
}
if(x)
{
b[j]=a[i];
}
}
}
for(i=0;i<30; i++)
{
printf("%d ",b[i]);
}
return 0;
}
我用的空值是0,因为-1太麻烦,我懒得一个个改,就直接用的默认值0。你要用-1可以自己改。
这题目也太开放了吧..给点具体的