【问题标题】:how to find the number of elements present in an array in C如何在C中查找数组中存在的元素数
【发布时间】:2021-09-22 04:07:09
【问题描述】:

假设我有一个数组 a[10],它最多填充 6 个位置 例如 a[]={10,20,30,40,50,60} 现在剩下 4 个位置是空的,现在我该如何打印考虑到我事先不知道数组的情况,就像我不知道它的大小或里面的元素一样,在上述情况下填充类似数组的位置的数量应该打印 6 .

【问题讨论】:

  • 如果这就是你所拥有的所有信息,那么你不能。您需要知道数组中元素的数量,或者在数组中有一个标记值来表示有效数据的结束。
  • 考虑使用不同的存储类型,例如链表。或者单独跟踪数组大小(如它可以容纳的项目数量)和使用情况(如它实际拥有的数量)。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: arrays c


【解决方案1】:

int a[]={10,20,30,40,50,60} 初始化所有 6 个元素。

int b[10]={10,20,30,40,50,60} 初始化所有 10 个元素,最后一个为 0。

C 中没有部分初始化。 没有指定“空”。

在 C 中查找数组中存在的元素数

size_t elemnt_count_a = sizeof a / sizeof a[0];  // 6
size_t elemnt_count_b = sizeof b / sizeof b[0];  // 10

我事先不知道数组

在 C 中,当一个数组被定义时,它的大小是已知的。

【讨论】:

  • 嗨,当我说大小不知道时,这意味着我正在使用应该输入数组值的索引。例如。诠释一个[10];诠释n; printf("输入数组的大小"); scanf("%d", &n); //n
  • @AritraRoychowdhury 使用int a[10];,数组元素计数为10。使用scanf("%d", &n); //n<10,代码知道使用的子集,例如6。这些一起消除了代码知道的“大小未知”数组大小和要使用的数量:n。 “我如何打印已填充的位置数”--> 要打印数组的那些 n 元素,只需使用循环 for (i=0; i<n; i++) ...
  • @AritraRoychowdhury 如果首先有n,然后如果n 是正数且不太大,则声明数组int a[n];分配 数组元素。
【解决方案2】:

如果数组是 a[]={10,20,30,40,50,60} 这是我的伪代码 -

    int size = 0;
    if(i = 0; i < a.length(); i++) {
        if(a[i] != null)
           size++
    }

size 的值应该打印 6

【讨论】:

  • a.length 似乎是 C++ 代码(或其他某种语言)。这是一道 C 题。
猜你喜欢
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多