作者arashi2011 (QQ)
看板C_and_CPP
标题[问题] 阵列宣告问题
时间Mon Apr 17 17:15:38 2017
关於阵列的一个小问题 如果我想要这样的结果
Enter numbers of points: 5
Enter points: -1 2 3 6 -3 -5 -1 0 10 -24
The points are: (-1.00, 2.00), (3.00, 6.00), (-3.00, -5.00), (-1.00, 0.00),
(10.00, -24.00)
我目前是想用二维阵列把数字存起来 像这样
printf("Enter numbers of points: ");
scanf("%d", &n);
for(i=0; i<n; i++){
for(j=0; j<2; j++) scanf(" %d", &num[i][j])
for(i=0; i<n; i++){
for(j=0; j<2; j++) printf("%lf", num[i][j]); }
但是这样数字只能一个一个输入 如果要像题目一次输入的话 要怎麽改比较好呢
另外想问像这样类似的问题 如果输入n之後才能知道需要的阵列大小
宣告的时候要怎麽宣告呢 我目前是把大小设成一个相对大的数字 但我想应该有更好的方法 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.114.123.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1492420540.A.118.html
1F:→ MOONRAKER: 当一个大字串输入 然後照空白自己劈开转换 04/17 17:20
2F:→ MOONRAKER: 够大就好了 1024也可以 不要纠结什麽「最好」的方法 04/17 17:20
3F:→ MOONRAKER: 新手会在这种地方想很久还发明很奇葩的作法 04/17 17:21
4F:→ MOONRAKER: 以前在本版看过一个不断malloc 一次增加一个byte 04/17 17:22
5F:→ MOONRAKER: 初学阶段後可以用其他更方便的资料结构 04/17 17:22
6F:→ Hazukashiine: 如果接受 C99 的话, Variable-length Array 试试看 04/17 17:22
7F:→ Hazukashiine: 如果不行的话 还是可以 malloc 出刚刚好大小的阵列 04/17 17:25
8F:推 longlongint: 读档 把档案重导到标准输入 04/18 07:47
9F:→ longlongint: 楼上讲的方法 or 用 c++ vector or 动态配置 04/18 07:49
10F:推 steve1012: 可以用stl 的话可以用vector of pair 04/18 14:03
11F:→ ilms49898723: 你的写法不是就能一次输入了...? 04/18 15:04
12F:→ hunandy14: 空白会自己变成下一个,这样写就可以一次导入了,试试 04/19 02:13
13F:推 bbalabababa: 开够大的阵列while scanf!=EOF 04/19 03:48