C语言 读入若干整数,输出它们的平方。(程序中不能定义整型变量,用动态内存技术实现)
时间: 2024-05-09 09:18:18 浏览: 72
好的,这个问题可以回答。以下是实现该功能的代码示例:
```c++
#include <stdio.h>
#include <stdlib.h>
int main() {
int num;
printf("请输入要输入的整数个数:\n");
scanf("%d", &num);
int *arr = (int *) malloc(num * sizeof(int));
printf("请输入要输入的%d个整数:\n", num);
for (int i = 0; i < num; ++i) {
scanf("%d", arr + i);
}
for (int i = 0; i < num; ++i) {
printf("%d ", (*(arr + i)) * (*(arr + i)));
}
printf("\n");
free(arr);
return 0;
}
```
以上代码中动态分配了一个长度为 `num` 的整型数组 `arr`,使用 `scanf` 读入 `num` 个整数,然后计算它们的平方并输出。最后别忘了使用 `free` 释放 `arr` 空间。
相关问题
C语言读入若干整数,输出它们的平方。(程序中不能定义整型变量,用动态内存技术实现)
你可以使用动态内存分配函数malloc来动态开辟一个int类型的数组,然后使用scanf读入若干整数,并将它们的平方存入动态分配的数组中,最后使用循环输出数组中的所有元素。以下是一个可能的解决方案:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
int *a = (int*) malloc(n * sizeof(int)); // 动态分配大小为n的int数组
for (int i = 0; i < n; ++i) {
scanf("%d", a + i); // 将读入的整数存入动态分配的数组中
*(a + i) = (*(a + i)) * (*(a + i)); // 计算平方并存回数组中
}
for (int i = 0; i < n; ++i) {
printf("%d ", *(a + i)); // 输出数组中的所有元素
}
free(a); // 释放动态分配的内存
return 0;
}
```
阅读全文