专升本C语言试题分析(四)
前言
尝试对C语言专升本题目进行分析,有不对的地方欢迎指正,在边学习边成长!
一、题目
编写程序,输入 10 个实数, x1,x2,x3…x10,按照以下公式计算并输出 S 值,s=(x1-x0)2+(x2-x0)2+(x3-x0)2+…+(x10-x0)2,(2代表平方)其中 x0 是 x1,x2,x3…x10 的平均值。
二、分析步骤
主函数编写
代码如下(示例):
#include<stdio.h>
int main()
{
double x[10],x0,s; /*也可以用x[11]来表示*/
int i;
printf("请输入10个实数:(空格隔开)");
for(i = 0;i<10;i++)
{
scanf("%lf",&x[i]);//必须使用lf
x0 += x[i]; //x0 = x0+x[i];
}
//----->x0的值是所有数组元素的和
x0 = x0/10.0;
//----->x0的值是所有数组元素的平均值
//s=(x1-x0)*(x1-x0)+.......+(x10-x0)*(x10-x0);
for(i = 0;i<10;i++)/*利用循环对数组中的元素进行遍历*/
{
s += (x[i]-x0)*(x[i]-x0);
}
printf("(x1-x0)2+(x2-x0)2+(x3-x0)2+......+(x10-x0)2=%lf",s);
return 0;
}
也可以用x[11]表示,省去了x0这个变量:
代码如下(示例):
#include<stdio.h>
int main()
{
double x[11],s;
int i;
printf("请输入10个实数:(空格隔开)");
for(i = 1;i<11;i++)
{
scanf("%lf",&x[i]);//必须使用lf
x[0] += x[i]; //x[0] = x[0]+x[i];
}
//----->x[0]的值是所有数组元素的和
x[0] = x[0]/10.0;
//----->x[0]的值是所有数组元素的平均值
//s=(x1-x0)*(x1-x0)+.......+(x10-x0)*(x10-x0);
for(i = 1;i<11;i++)/*利用循环对数组中的元素进行遍历*/
{
s += (x[i]-x[0])*(x[i]-x[0]);
}
printf("(x1-x0)2+(x2-x0)2+(x3-x0)2+......+(x10-x0)2=%lf",s);
return 0;
}
总结
以上就是今天的内容,思路大致是,将输入的十个实数分别赋值给数组中的元素,利用循环对数组中的元素进行遍历,每遍历出一个元素将其进行x[i]-x0(或x[0])的操作,并平方,最后s累加即可得到s。