C语言编写一个程序,定义一个整型数组intArr,从键盘接收10个长度的数字字符串,然后将该数组扩容一倍,并将扩容的元素全部填充为字符Z
时间: 2024-02-22 20:59:42 浏览: 65
好的,下面是用 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[11]; // 存储输入的数字字符串
int intArr[10]; // 存储输入的整数
int i;
// 读入数字字符串并转化为整数存入数组
for (i = 0; i < 10; i++) {
printf("请输入第%d个数字字符串(长度为10):", i + 1);
scanf("%s", str);
intArr[i] = atoi(str);
}
// 扩容数组
int* newIntArr = (int*)malloc(sizeof(int) * 20); // 动态分配内存
memcpy(newIntArr, intArr, sizeof(int) * 10); // 复制原数组
memset(newIntArr + 10, 'Z', sizeof(int) * 10); // 填充新元素
// 输出扩容后的数组
printf("扩容后的数组为:\n");
for (i = 0; i < 20; i++) {
printf("%d ", newIntArr[i]);
}
printf("\n");
free(newIntArr); // 释放动态分配的内存
return 0;
}
```
这个程序会先读入 10 个长度为 10 的数字字符串,并将其转化为整数存入数组 `intArr` 中。然后,它会动态分配内存,将 `intArr` 复制到新的数组中,再将新数组的后 10 个元素全部填充为字符 `'Z'`。最后,程序会输出扩容后的数组。
注意:这个程序中使用了动态内存分配,需要在程序结束时调用 `free` 函数释放动态分配的内存,否则会造成内存泄漏。
阅读全文