gpt4 book ai didi

c - C 中的数组清理

转载 作者:行者123 更新时间:2023-11-30 19:31:58 25 4
gpt4 key购买 nike

我不知道如何从存储在另一个数组中索引的元素中清除数组。我需要完成以下由 main(...) 和函数组成的 C 程序

void clear_MSBs( unsigned char dest_array[], unsigned char array_indices []). 

代码开头:

#define N 8
#define M 5
int main()
{
unsigned char dest_array[N] = {248,249,250,251,252,253,254,255};
unsigned char array_indices[M] = {0,2,3,6,7}; // contains M=5 elements
clear_MSBs(dest_array, array_indices);
// print the modified dest_array[] here
return 0;
}

注意:保证第二个数组中存储的所有索引都在允许的范围。我非常感谢您的帮助。

最佳答案

如果通过清理,您的意思是将元素标记为无效(这可能是您想要的),那么您可以只循环索引数组,并使用索引数组的第 i 个元素作为目标的索引数组。

示例:

#include <stdio.h>

#define N 8
#define M 5

void clear_MSBs(unsigned char dest_array[], unsigned char array_indices [])
{
for(int i = 0; i < M; ++i)
dest_array[array_indices[i]] = 0;
}

int main()
{
unsigned char dest_array[N] = {248,249,250,251,252,253,254,255};
unsigned char array_indices[M] = {0,2,3,6,7}; // contains M=5 elements
clear_MSBs(dest_array, array_indices);
// print the modified dest_array[] here
for(int i = 0; i < N; ++i)
if(dest_array[i] != 0)
printf("%d ", dest_array[i]);
printf("\n");
return 0;
}

输出:

249 252 253

PS:代码假定无效元素的值为 0。

关于c - C 中的数组清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47609957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com