如何用C语言实现从键盘任意输入n个数。
答案:4 悬赏:10 手机版
解决时间 2021-11-17 17:14
- 提问者网友:蓝莓格格巫
- 2021-11-16 17:27
如何用C语言实现从键盘任意输入n个数。
最佳答案
- 五星知识达人网友:不如潦草
- 2021-11-16 18:27
手动管理内存
int max = 100;
int* tmp = 0;
int* buf = malloc(sizeof(int)*max);
for (int i = 0; scanf("%d", buf+i); ++i)
{
if (i > max) // 如果buf已经满了, 那么内存扩大一倍
buf = realloc(buf, sizeof(int)*(max*=2) );
}
可以一直安全的输入到2的32次方除以8个数字, 如果内存够的话
int max = 100;
int* tmp = 0;
int* buf = malloc(sizeof(int)*max);
for (int i = 0; scanf("%d", buf+i); ++i)
{
if (i > max) // 如果buf已经满了, 那么内存扩大一倍
buf = realloc(buf, sizeof(int)*(max*=2) );
}
可以一直安全的输入到2的32次方除以8个数字, 如果内存够的话
全部回答
- 1楼网友:鸠书
- 2021-11-16 21:36
#include
void main()
{
char *a;
printf("input in:");
gets(a);
printf("%s",a);
printf("\n至于具体怎么将字符处理成数字你自己设计吧\n\1\n");
}追问如果我要对输入的数进行操作呢,比如我要将输入的数排序,所以感觉把数字当字符来处理不太好,不过还是谢谢你的回答!
void main()
{
char *a;
printf("input in:");
gets(a);
printf("%s",a);
printf("\n至于具体怎么将字符处理成数字你自己设计吧\n\1\n");
}追问如果我要对输入的数进行操作呢,比如我要将输入的数排序,所以感觉把数字当字符来处理不太好,不过还是谢谢你的回答!
- 2楼网友:妄饮晩冬酒
- 2021-11-16 20:40
其实用vector创建数组的话,数组的长度是可以改变的!它自己内部自动根据大小调整数组长度!追问这个我还真不知道,我去查查资料,真心谢谢你了哈!
- 3楼网友:西风乍起
- 2021-11-16 19:38
用链表追问链表我也考虑过,也尝试写过,不过写出来后,发现代码完全没有上面手动管理内存的来的简洁,还是用指针显得有技术,哈哈!不过还是谢谢你的回答哈!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯