c语言输入多组数据和输出对应结果

该程序的的功能是:数列的第一项为n,以后各项为前一项的平方根,求数列的前m项和。
程序如下:
#include "stdio.h"
#include "math.h"
void main()
{
float n,sum=0;int m,i;
while(scanf("%f %d",&n,&m)!=EOF)
{
if(n==0&&m==0) break;
if(n<10000&&m<1000)
{
for(i=0;i<m;i++)
{
sum=sum+n;
n=sqrt(n);
}
printf("%.2f\n",sum);
}
}
}
但问题是每输入一个数据就有一个结果,但是我想输入多组数据后对应结果最后显示,请问该如何修改呢?
多组就是说直到输入的数据为0时终止,而且结果要最后显示而不是输入一个就显示一个。我今天参加程序设计大赛每个程序都是这么要求。弄的我一个都没对,郁闷到极点。

有两个问题我想说一下:第一、你用那个while语句虽然实现不断输入而不断输出结果,但后一结果是在前一结果基础上(累加)产生,这显然不合理;第二、你要实现的“输入多组数据后对应结果最后显示”中“多组”具体是多少呢?可以定义三个数组分别用来存储n、m和sum,注意每次计算sum前先初始化为0.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-22
用数组先暂时储存,最后一起输出。
第2个回答  推荐于2016-05-14
#include "stdio.h"
#include "math.h"
void main()
{
float n,sum=0;
int m,i,j;

char c = 'c';
float sum_array[128] = {0.0};
int cnt = 0;
int loop = 0;

printf("please input group num: ");
scanf("%d", &cnt);

for( loop = 0; loop < cnt; ++loop)
{
printf("n, m:");
scanf("%f, %d", &n, &m);
if(n<10000&&m<1000)
{
for(i=0;i<m;i++)
{
sum=sum+n;
n=sqrt(n);
}

sum_array[loop] = sum;
}
}
for( j = 0; j < cnt; ++j)
{
printf("%.2f\n",sum_array[j]);
}

}本回答被提问者和网友采纳
第3个回答  2012-05-26
#include<stdio.h>
#include<math.h>
main()
{
double n,m,s,w,i;
while(scanf("%lf%lf",&n,&m)!=EOF)
{
s=n;
for(i=1;i<m;i++)
{
n=sqrt(n);
s=s+n;
}
printf("%.2lf\n",s);
}
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网