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

输入一个正整数repeat(1≤repeat≤5),做repeat次下列运算:输入小数x,输出该数小数点后面有几位。其中小数x的有效位数不超过4位。main(){intr... 输入一个正整数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达人怎么修改?
简单的说就是要将数据一次输入,答案也是一次输出,而不是输一个出一个结果
展开
 我来答
Linux_糯米团
2011-03-10 · 超过25用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:0
展开全部
你看下吧,我给你代码改了下,在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);
}
}
垢朋有
2011-03-10 · TA获得超过202个赞
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:184万
展开全部
你把输入全部粘贴,然后运行时右击标题栏,“编辑”->“粘贴”试试?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3de52aa02
2011-03-10 · 超过30用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:86.2万
展开全部
用getline读取整行,在用个循环读出数据,输出数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
he036002
2011-03-10 · TA获得超过296个赞
知道小有建树答主
回答量:179
采纳率:100%
帮助的人:94.2万
展开全部
设定个数组,每输入一个数字就处理一下,把结果保存在这个数组中。等全部处理完,把这个数据显示出来。
这种事应该是往数组这方面想。同时处理多个数组,就是集合的 事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式