c语言求数组里元素的个数除去空的元素
时间: 2023-05-19 07:01:58 浏览: 87
可以使用循环遍历数组,统计非空元素的个数,代码示例如下:
int count = 0;
for(int i=0; i<sizeof(arr)/sizeof(arr[0]); i++){
if(arr[i] != NULL){
count++;
}
}
printf("数组中非空元素的个数为:%d", count);
相关问题
C语言 统计数组中比邻元素小的数组元素的个数
在C语言中,统计数组中比邻元素小的数组元素的个数,可以使用遍历和条件判断的方式来实现。以下是一个简单的示例,假设我们有一个整型一维数组`arr`:
```c
#include <stdio.h>
int count_adjacent_smaller(int arr[], int n) {
int count = 0;
for (int i = 1; i < n; i++) { // 遍历数组,从第二个元素开始
if (arr[i] < arr[i - 1]) { // 检查当前元素是否小于前一个元素
count++; // 如果是,计数加1
}
}
return count;
}
int main() {
int array[] = {5, 2, 8, 4, 9, 1};
int array_size = sizeof(array) / sizeof(array[0]);
int smaller_count = count_adjacent_smaller(array, array_size);
printf("数组中有 %d 个相邻的较小元素。\n", smaller_count);
return 0;
}
```
在这个例子中,`count_adjacent_smaller`函数会返回数组中连续的小于前一个元素的元素数量。如果你想要处理更复杂的场景,例如查找非相邻元素间的大小关系,可能需要稍微调整算法。
C语言判断数组中重复元素的个数
在C语言中,判断数组中重复元素的个数可以采用哈希表、计数排序或者是遍历数组并用临时数组存储出现多次的元素。这里我会提供一种常见的简单方法,即遍历数组,使用一个计数器来记录每个元素出现的次数。
```c
#include <stdio.h>
int countDuplicates(int arr[], int n) {
int count[1000]; // 假设数组元素范围较小,最多1000种元素
int duplicates = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > 1000) {
printf("Array contains values outside the range.\n");
return -1; // 如果值超出预设范围,返回错误
}
count[arr[i]]++; // 对每个元素加一计数
if (count[arr[i]] > 1) { // 如果元素出现了两次以上
duplicates++;
}
}
return duplicates;
}
// 示例
int main() {
int arr[] = {1, 2, 3, 4, 5, 2, 6, 7, 2};
int n = sizeof(arr) / sizeof(arr[0]);
int duplicate_count = countDuplicates(arr, n);
if (duplicate_count != -1) {
printf("Number of duplicate elements: %d\n", duplicate_count);
}
return 0;
}
```
这个函数会统计数组`arr`中有多少个元素出现了超过一次的情况,并返回结果。如果数组包含超出预设范围的元素,它会返回-1表示错误。
阅读全文