代码:
#include<stdio.h>
int main()
{
int n,m,L;
scanf("%d%d%d",&n,&m,&L);
int A;
int h[260]={0};
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&A);
h[A]++;
}
}
for(int i=0;i<L;i++)
{
printf("%d ",h[i]);
}
return 0;
}
此题很巧妙,因为统计的是矩阵中从0-L数字出现的次数,所以可以将0-L的数字作为下标,而出现次数作为数组储存的值,每次出现相同下标(即出现相同的数字),就将对应的h[]数组中的数字增加1,最后只需要输出数组即可。
还有一种暴力解法,就是三重循环遍历二维数组和0-L的数字进行逐个比较(每个0-L的数字循环结束后,记得将计数归为零),将计数存入一个新的数组当中,最后输出这个计数的数组。
代码:
#include<stdio.h>
int main()
{
int m,n,L;
scanf("%d%d%d",&n,&m,&L);
int huidu[500][500],count