关于输入的几个问题【新手】
关于输入的几个小问题【新手求助】
1、如果我输入几个数字 中间用空格隔开 怎么用循环和scanf来输入呢?
比如:
当输入1 2 3 4时 分别给a[0],a[1],a[2],a[3]赋值
我的思路类似于
for(i=0;i<n;i++)
scanf("%d",&a[i]);
应该怎么写呢?
2、接上面的问题,我要输入几个数字,用空格隔开,遇到回车停止,但之前不知道会输入多少个数,就要用动态数组,每输入一个数,数组a[]就能继续往后开空间,这个怎么才能做到呢
谢谢
------解决方案--------------------
1用你的代码,只能一个一个输入,每写一个回车一下
如果要一起输入,就需要确定输入的个数
scanf("%d %d %d %d", a,a+1,a+2,a+3);
2见1,在一行上输入的话无法动态
------解决方案--------------------
链表
------解决方案--------------------
一次输入一个数据,用一个while循环
需要定义一个结束标志,即接收到这个值时输入结束
------解决方案--------------------
1、如果我输入几个数字 中间用空格隔开 怎么用循环和scanf来输入呢?
比如:
当输入1 2 3 4时 分别给a[0],a[1],a[2],a[3]赋值
我的思路类似于
for(i=0;i<n;i++)
scanf("%d",&a[i]);
应该怎么写呢?
2、接上面的问题,我要输入几个数字,用空格隔开,遇到回车停止,但之前不知道会输入多少个数,就要用动态数组,每输入一个数,数组a[]就能继续往后开空间,这个怎么才能做到呢
谢谢
------解决方案--------------------
1用你的代码,只能一个一个输入,每写一个回车一下
如果要一起输入,就需要确定输入的个数
scanf("%d %d %d %d", a,a+1,a+2,a+3);
2见1,在一行上输入的话无法动态
------解决方案--------------------
链表
------解决方案--------------------
一次输入一个数据,用一个while循环
需要定义一个结束标志,即接收到这个值时输入结束
------解决方案--------------------
- C/C++ code
#include<stdio.h> #include<stdlib.h> #define INIT_SIZE 100 //初始容量 #define CREM_SIZE 20 //增加容量 typedef struct arrList{ int *begin ; int *end ; int size ; //当前总容量 }List; int main() { List list ; list.begin = malloc(INIT_SIZE * sizeof(int)); list.end = list.begin ; list.size = INIT_SIZE ; while(scanf("%d",list.end)){ list.end ++ ; if(list.end >= (list.begin + list.size)){ list.begin = realloc(list.begin , list.size + CREM_SIZE); list.end = list.begin + list.size ; list.size += CREM_SIZE ; } } return 0 ; }