数组清零

题目内容:

编写一个函数,用于将一个int类型的数组清零(即将指定前n项元素全部置为0)数组以-1结尾,且-1不包括在此数组中。要求数组使用地址传递(传指针)。


提示:本题只要在形参中使用整型指针,对应的实参是数组名(因为数组名是数组的首地址),函数中仍使用下标访问数组元素。

例如 int a[100],*p=a;   //a是数组a的首地址。

则p[i]相当于a[i]。


输入格式:

第一行数是数组元素,第二行的数是需清零的元素个数n


输出格式:

清零后的数组元素,注意最后一个元素后不要带空格。


输入样例:

503 87 512 61 908 170 897 275 653 426 154 509 612 677 765 703 -1

5


输出样例:

0 0 0 0 0 170 897 275 653 426 154 509 612 677 765 703


时间限制:500ms内存限制:32000kb
#include<iostream> 
using namespace std;
void reset(int *a,int n)
{
	int i=0;
	for(i=0;i<n;i++)
	{
		a[i]=0;
	}
}
int main()
{
	int a[100],i=0,n;
	static int num;
	do
	{
		cin>>a[i];
		i++;
		num++;
	}while(a[i-1]!=-1);
	cin>>n;
	reset(a,n);
	for(i=0;i<num-1;i++)
	{
		cout<<a[i];
		if(i != num-2)
			cout<<" ";
	}
	
}

### 数组清零函数的实现与用法 数组清零函数在不同的编程语言中有不同的实现方式。以下是几种常见的实现方法,包括 C 语言中的 `memset` 函数、Java 中的数组清零方法以及 VBA 中的 `Erase` 函数。 #### C 语言中使用 `memset` 清零数组 在 C 语言中,`memset` 是一个常用的函数,用于将一块内存设置为特定值。它可以用来清空数组[^5]。以下是其用法: ```c #include <string.h> void clear_array(void *arr, size_t size) { memset(arr, 0, size); // 将数组中的每个字节设置为 0 } ``` 此函数接受数组地址和数组大小作为参数,并将数组中的所有字节设置为 0。需要注意的是,`memset` 按字节操作,因此对于非字符类型的数组(如整型或浮点型),需要确保数据类型的一致性,以避免意外结果。 #### Java 中的数组清零方法 在 Java 中,可以通过循环或者使用 `Arrays.fill` 方法来清零数组。以下是一个示例[^4]: ```java import java.util.Arrays; public class ArrayClearExample { public static void clearArray(int[] arr) { Arrays.fill(arr, 0); // 将数组的所有元素设置为 0 } public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; clearArray(array); for (int value : array) { System.out.print(value + " "); } } } ``` 上述代码展示了如何使用 `Arrays.fill` 方法将整个数组的元素设置为 0。 #### VBA 中的 `Erase` 函数 在 VBA 中,`Erase` 函数可以用来清空数组。对于动态数组,`Erase` 会释放数组占用的内存;而对于固定大小的数组,它会将数组元素设置为默认值[^3]。以下是一个示例: ```vba Sub ClearArray() Dim fixedArray(1 To 5) As Integer Dim dynamicArray() As Integer ' 初始化固定数组 fixedArray(1) = 10 fixedArray(2) = 20 ' 清空固定数组 Erase fixedArray ' 初始化动态数组 ReDim dynamicArray(1 To 5) dynamicArray(1) = 100 dynamicArray(2) = 200 ' 清空动态数组 Erase dynamicArray End Sub ``` 在上述代码中,`Erase` 对于固定数组会将其元素设置为默认值,而对于动态数组则会释放其内存。 ### 注意事项 - 使用 `memset` 时需注意数据类型的一致性,特别是对于多字节类型的数据。 - 在 Java 中,`Arrays.fill` 是一种简单且安全的方法,但需要确保数组类型正确。 - 在 VBA 中,`Erase` 的行为取决于数组是否为动态数组
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值