c语言:读入若干整数,输出它们的平方。(程序中不能定义整型变量,用动态内存技术实现) 输入样例: 1 2 3 4 输出样例: 1 4 9 16
时间: 2023-11-27 13:55:01 浏览: 33
以下是使用动态内存技术实现读入若干整数并输出它们的平方的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *nums = NULL;
int num, count = 0;
// 读入数字直到输入结束
while (scanf("%d", &num) != EOF) {
count++;
// 为nums数组动态分配内存
nums = (int *) realloc(nums, count * sizeof(int));
// 将读入的数字存入数组
nums[count - 1] = num;
}
// 输出每个数字的平方
for (int i = 0; i < count; i++) {
printf("%d ", nums[i] * nums[i]);
}
// 释放nums数组所占用的内存
free(nums);
nums = NULL;
return 0;
}
```
在程序中,我们首先定义了一个指针`nums`,并将其初始化为`NULL`。然后,我们使用`scanf`函数从标准输入读入数字,并将其存入一个整型变量`num`中。接着,我们使用`realloc`函数为`nums`数组动态分配内存,以便将新读入的数字存入该数组中。在读入所有数字之后,我们使用一个循环输出每个数字的平方,然后使用`free`函数释放`nums`数组所占用的内存。需要注意的是,我们在使用`realloc`函数时需要将数组的当前大小乘以`sizeof(int)`,以便计算出需要分配的内存大小。