c语言求数组里元素的个数除去空的元素
时间: 2023-05-19 12:01:58 浏览: 57
可以使用循环遍历数组,统计非空元素的个数,代码示例如下:
int count = 0;
for(int i=0; i<sizeof(arr)/sizeof(arr[0]); i++){
if(arr[i] != NULL){
count++;
}
}
printf("数组中非空元素的个数为:%d", count);
相关问题
用C语言统计数组中不同元素的个数
C语言中可以使用数组和循环来统计数组中不同元素的个数。
具体思路是,使用两个循环,第一个循环遍历数组中的元素,第二个循环遍历已经统计过的元素,如果有相同的元素,则不需要再次统计,直接跳过。如果没有相同的元素,则将当前元素加入统计结果中。
下面是C语言代码实现:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5, 1, 2, 3, 6, 7, 8, 9, 9, 8, 7, 6, 0};
int n = sizeof(arr) / sizeof(int);
int count = 0;
int result[n]; // 用于存储统计结果
for (int i = 0; i < n; i++) {
int j;
for (j = 0; j < count; j++) {
if (result[j] == arr[i]) { // 如果已经统计过该元素,则跳过
break;
}
}
if (j == count) { // 如果没有统计过该元素,则将其加入统计结果中
result[count++] = arr[i];
}
}
printf("不同元素的个数为:%d\n", count);
return 0;
}
```
程序输出:
```
不同元素的个数为:10
```
其中,`count` 表示不同元素的个数,`result` 数组用于存储统计结果。
c语言 删除数组重复的元素
在 C 语言中,删除数组中重复的元素可以通过以下步骤实现:
1. 遍历整个数组,找到重复的元素。
2. 把重复的元素删除,即把后面的元素往前移动一位。
3. 修改数组的长度,即把数组长度减去删除的元素的个数。
下面是一个示例代码,可以删除整型数组中的重复元素:
```c
#include <stdio.h>
void deleteDuplicate(int arr[], int len) {
int i, j, k;
int count = 0; // 重复元素的个数
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
count++;
for (k = j; k < len; k++) {
arr[k] = arr[k + 1]; // 把后面的元素往前移动
}
len--; // 修改数组长度
j--; // 继续从当前位置比较
}
}
}
printf("删除重复元素后的数组:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = { 1, 2, 2, 3, 4, 4, 5 };
int len = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:\n");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
deleteDuplicate(arr, len);
return 0;
}
```
该示例代码中定义了一个 `deleteDuplicate()` 函数,该函数接受一个整型数组和数组的长度作为参数。函数内部使用双重循环遍历整个数组,找到重复的元素,并将后面的元素往前移动一位。同时,函数还统计了重复元素的个数,并修改了数组的长度。最后,函数输出删除重复元素后的数组。