一个数组存放1000个数据,要求不能使用for循环,两个函数,一个函数用于存放数据,数据超出1000,自动删除最开始的数据,一个函数用于调用数组内最新的数据
时间: 2024-03-20 12:41:00 浏览: 16
可以使用一个全局变量 `int index` 来记录数组内最新数据的位置,初始值为0。假设数组名为 `arr`,则可以设计两个函数:
1. 存放数据的函数 `void addData(int data)`:每次调用该函数,将参数 `data` 存入数组 `arr` 中,并将 `index` 自增1。如果 `index` 的值超过了999,即存满了1000个数据,就将数组的第一个数据删除,同时将 `index` 的值更新为999。代码如下:
```c
int arr[1000];
int index = 0;
void addData(int data) {
arr[index++] = data;
if (index >= 1000) {
for (int i = 1; i < 1000; i++) {
arr[i-1] = arr[i];
}
index = 999;
}
}
```
2. 调用数组内最新数据的函数 `int getLatestData()`:返回数组 `arr` 中下标为 `index-1` 的元素。代码如下:
```c
int getLatestData() {
return arr[index-1];
}
```
在主函数中,每次调用 `addData()` 函数存放数据,并调用 `getLatestData()` 函数获取最新数据即可,无需使用 `for` 循环。例如:
```c
int main() {
addData(1);
addData(2);
addData(3);
int latestData = getLatestData(); // latestData 的值为3
return 0;
}
```