35 lines
919 B
C
35 lines
919 B
C
|
// 编写一个程序,要求用户输入一个整数n,然后动态创建一个整数数组,并通过循环从用户输入中读取n个整数并存储到数组中。然后,使用realloc函数将数组的大小减半,并打印减半后的数组内容。
|
|||
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
int n;
|
|||
|
printf("请输入一个整数: ");
|
|||
|
scanf("%d", &n);
|
|||
|
int *nums = (int *)malloc(n * sizeof(int *));
|
|||
|
if (NULL == nums)
|
|||
|
{
|
|||
|
perror("malloc");
|
|||
|
exit(-1);
|
|||
|
}
|
|||
|
|
|||
|
printf("请输入 %d 个整数: ", n);
|
|||
|
for (int i = 0, temp = 0; i < n; i++)
|
|||
|
{
|
|||
|
scanf("%d", &temp);
|
|||
|
nums[i] = temp;
|
|||
|
}
|
|||
|
|
|||
|
int halfN = n / 2; // n 的一半
|
|||
|
nums = (int *)realloc(nums, halfN * sizeof(int *));
|
|||
|
|
|||
|
printf("减半后的数组内容打印如下: \n");
|
|||
|
while (halfN--)
|
|||
|
printf("%d ", *nums++);
|
|||
|
printf("\n");
|
|||
|
|
|||
|
free(nums);
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|