C语言菜鸟问题:C语言里怎么将要算的数据一次输入一次输出

输入一个正整数repeat (1≤repeat≤5),做repeat次下列运算:
输入小数x,输出该数小数点后面有几位。
其中小数x的有效位数不超过4位。

main()
{
int r, repeat,s;
float x;
int n;
scanf("%d", &repeat);
for(r=1; r<=repeat; r++)
{
n = 0;
scanf("%f", &x);
s = x * 1000;
if(s%1000>= 1)
n = n + 1;
if(s%100>=1)
n = n + 1;
if(s%10>=1)
n = n + 1;
printf("%d\n", n);
}
}
上面这个程序如
输入
3
3.14
1.234
0.05
输出
2
3
2
但是我这样编输出是没错,但是每输一个x才能输出一个结果,求教C达人怎么修改?
简单的说就是要将数据一次输入,答案也是一次输出,而不是输一个出一个结果

你看下吧,我给你代码改了下,在vs2005下执行通过了。
#include <stdio.h>
#include <stdlib.h>

main()
{
int r, repeat,s;
float *x; //将x定义成一个指针。
int n;

scanf("%d", &repeat);
x = (float *)malloc(sizeof(float)*repeat);
//得到repeat的值后,对x申请内存空间,x就是一个repeat大小的数组
for(r=0; r<repeat; r++)
{
scanf("%f", &x[r]);//将值一次全部输入到x数组中
}
for (r=0;r<repeat;r++) //计算,得到你想要的结果
{
n = 0;
s = x[r] * 1000;
if(s%1000>= 1)
n = n + 1;
if(s%100>=1)
n = n + 1;
if(s%10>=1)
n = n + 1;
printf("%d\n", n);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-10
你把输入全部粘贴,然后运行时右击标题栏,“编辑”->“粘贴”试试?
第2个回答  2011-03-10
用getline读取整行,在用个循环读出数据,输出数据
第3个回答  2011-03-10
设定个数组,每输入一个数字就处理一下,把结果保存在这个数组中。等全部处理完,把这个数据显示出来。
这种事应该是往数组这方面想。同时处理多个数组,就是集合的 事
相似回答
大家正在搜