用C语言创建一个数组,实现初始化、清空数组、数组元素逆置

问题:创建一个数组,
实现函数init()初始化数组、实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
(1)函数init()将数组各元素初始化为0,1,2,3…
(2)函数enpty()将数组各元素清空为0.
(3)函数reverse()将数组元素逆置,即逆序输出。
思路:给定数组元素为10 的一个数组,需要完成arr[0]和arr[9]、arr[1]和arr[8]…的元素交换。定义变量left和right,初始化left为0,right为数组元素个数减一,即最后一位元素的下标,两个变量依次递增、递减完成数组元素交换,直至left>=right,表示交换结束,也就实现了我们想要的功能。
实现代码:

#include<stdio.h>
#include<stdlib.h>
void Init(int arr[10]) {//将数组初始化为{0,1,2,3,4,5,6,7,8,9}
    for (int i = 0; i < 10; ++i) {
      arr[i] = i;
      printf("%d", arr[i]);
 }
    printf("\n");
}
void Empty(int arr[10]) {//清空数组,使数组每位元素为0
    for (int i = 0; i < 10; ++i) {
      arr[i] = 0;
      printf("%d", arr[i]);
 }
    printf("\n");
}
void Reverse(int arr[10], int size) {//逆置数组元素
    int tmp = 0;
    int left = 0;
    int right = size - 1;//[left,right]为
    for (int i = 0; i < 10; ++i) {
      while (left < right) {
       tmp = arr[left];
       arr[left] = arr[right];
       arr[right] = tmp;
       ++left;
       --right;
  }
     printf("%d", arr[i]);
 }
   printf("\n");
}
int main() {
    int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };
    int size = sizeof(arr) / sizeof(arr[0]);
    printf("数组元素逆置:\n");
    Reverse(arr, size);
    printf("初始化数组:\n");
    Init(arr);
    printf("清空数组的每位元素为0:\n");
    Empty(arr);
    system("pause");
    return 0;
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/swag_wg/article/details/88884697
今日推荐