如何计算矩阵中不同元素的数量?C程序设计语言
我有一个整数矩阵,需要计算矩阵中除了0之外的不同整数的数量。 比如说在这个里面, 01 0如何计算矩阵中不同元素的数量?C程序设计语言,c,matrix,C,Matrix,我有一个整数矩阵,需要计算矩阵中除了0之外的不同整数的数量。 比如说在这个里面, 01 0 300 07 907 程序应该给出结果4,因为您可以找到除0之外的4个不同整数。 请记住,我必须将其应用于以这种方式初始化的矩阵: celula ** matrizInit(int linhas, int colunas){ int i, j; celula ** matriz; matriz = (celula **)malloc(sizeof(celula)*linhas);
300
07
907
程序应该给出结果4,因为您可以找到除0之外的4个不同整数。 请记住,我必须将其应用于以这种方式初始化的矩阵:
celula ** matrizInit(int linhas, int colunas){
int i, j;
celula ** matriz;
matriz = (celula **)malloc(sizeof(celula)*linhas);
for(i = 0; i < linhas ; i++){
matriz[i] = (celula *)malloc(sizeof(celula)*colunas);
for(j = 0; j < colunas; j++){
matriz[i][j].linha = 0;
matriz[i][j].coluna = 0;
}
}
return matriz;
celula**matrizInit(林哈斯、科鲁纳斯){
int i,j;
苦参;
matriz=(celula**)malloc(sizeof(celula)*linhas);
对于(i=0;i
}
每个整数字段都可以使用matriz[i][j].[插入\u结构的\u字段\u]来访问。
提前谢谢 如果您要查找的整数范围为1到9,我的想法是获取一个数组,并将出现的情况存储在那里,然后在数组中循环计数
bool inMatrix[9] = {false};
因此,如果您找到了数字5,您将标记位置4(因为在C数组中,从0开始,我们将保留为1)
然后循环引用数组并计算真实值
for (occurrences=0,i=0; i < 9; i++) {
if (inMatrix[i]) occurrences++;
}
for(出现次数=0,i=0;i<9;i++){
if(inMatrix[i])出现次数++;
}
你在事件中有数字。瞧
但是,如果整数范围很宽,您肯定必须将所有数字存储在一个集合中,限制重复的数字,然后对集合中的元素进行计数。这是散列集合的作业,您可以循环遍历元素,将它们添加到集合中,然后获得集合的计数/大小/长度。您有什么问题?你想让我们为你编写整个程序吗?
(celula**)malloc(sizeof(celula)*linhas)代码>->(celula**)malloc(sizeof(celula*)*linhas)代码>使用散列,或者在工作序列排序后对其进行扫描。
for (occurrences=0,i=0; i < 9; i++) {
if (inMatrix[i]) occurrences++;
}