C语言题:一行输入多个数字,空格分开,回车结束,结果保存到数组

要求:
数字数目不事先指定
数字不限于整数,可以带小数,可以是负数
用C而不是C++实现

你好,我是2年前学的c与c++,具体怎么编写可能出错误,我告诉你我的思路吧;
定义数组,double数据类型以及char类型,将空格,回车(属于char类型数据)作为判断依据,用if语句就好,如果遇到space则将得到数据保存数组,遇到回车结束。得到字符貌似可以用getchar()语句。愿对你有所帮助。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-18
定义指针,用动态分配内存
将命令行的数据循环读入到指针指向的内存
设定 (ch=getchar()) == '\n' 结束读取
第2个回答  2012-07-18
/*
请输入数据(空格隔开) : 12.0 6.36 -98.25 33.65
^Z
12.00 6.36 -98.25 33.65
Press any key to continue
*/
#include <stdio.h>
int main() {
double a[100];
int i,n = 0;
printf("请输入数据(空格隔开) : ");
while(scanf("%lf",&a[n]) == 1) ++n;
for(i = 0; i < n; ++i) {
if((i + 1)%10 == 0) printf("\n");
printf("%.2lf ",a[i]);
}
printf("\n");
return 0;
}本回答被提问者和网友采纳
第3个回答  2012-07-18
Define a class that is capable of handling unknown number of input number elements.
1. malloc size N to pointer p
2. if received data size > N
then free p
then malloc size 2N (assuming 2N is larger than data size)
then let p points to this new memory
3. Play with the input characters, if space then ...., if enter ....
第4个回答  2012-07-18
楼上说的挺好的额。
相似回答