C语言程序为何只能输入一次 70

#include<stdio.h>#include<math.h>main(){intn,m;printf("请输入数据坐标点的个数n:");scanf("%d",&n)... #include<stdio.h>
#include<math.h>
main()
{int n,m;
printf("请输入数据坐标点的个数n:");
scanf("%d",&n);
double a,b,c=0,d=0,e=0,f=0;
double x[1000],y[1000];
for(m=1;m<=n;m++)
{printf("输入第%d个点的坐标:",m);
scanf("%f%f",&x[m-1],&y[m-1]);
c+=x[m];
d+=y[m];
e+=x[m]*y[m];
f+=pow(x[m],2);}
b=(n*e-c*d)/(n*f-pow(c,2));
a=(f*d-c*e)/(n*f-pow(c,2));
printf("您所求的回归方程为:y=%.2f*x+%.2f\n)\n",b,a);
return 0;
}

这个程序向数组内输入程序只能输入一个,但是printf可以一直循环,求问是哪里出了问题。
展开
 我来答
老朱1122332
2015-12-04 · 超过17用户采纳过TA的回答
知道答主
回答量:65
采纳率:66%
帮助的人:12.6万
展开全部
for(; ; ;){

printf("请输入数据坐标点的个数n:");
scanf("%d",&n);

}  加个for循环,你看些什么合适!因为你没有循环,所有酒只能输入一次,因为后面有循环,所以可以一直循环!

追问
兄弟,我语句中本来就带着for循环啊
追答
for(m=1;m<=n;m++)  
{printf("输入第%d个点的坐标:",m);
fpurge(stdin);//清除之前的缓存试试!
scanf("%f%f",&x[m-1],&y[m-1]);
c+=x[m];
d+=y[m];
e+=x[m]*y[m];
f+=pow(x[m],2);}
b=(n*e-c*d)/(n*f-pow(c,2));
a=(f*d-c*e)/(n*f-pow(c,2));
printf("您所求的回归方程为:y=%.2f*x+%.2f\n)\n",b,a);
return 0;
}
天雨下凡
2015-12-04 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65155
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
scanf("%f%f",&x[m-1],&y[m-1]); 改成scanf("%lf%lf",&x[m-1],&y[m-1]);
追问
兄弟,问题并不出在这里啊
追答

你试过了吗?%f表示接收float数据,而你的x与y都是存储的double数据,请照我的改试试,你的程序最后一个printf也有问题。我刚刚试了一下,是可以循环输入数据的,你开始的时候输入几,就会循环几次,只是最后一个printf有问题。运行截图如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式