t[n++]=s[i];
t[n]='\0';
}
19请编写函数fun,其功能是:
计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。
例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:
s=35.951014。
doublefun(doublex[9])
{inti;
doubleavg=0.0,sum=0.0;/*将变量avg、sum定义为双精度型,并给其赋初值为0.0*/
for(i=0;i<8;i++)
{avg=(x[i]+x[i+1])/2;/*通过for循环分别求出相邻两个元素的平均值放入变量avg中*/
sum+=sqrt(avg);/*使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量sum*/
}
returnsum;/*返回计算结果*/
}
20请编写函数fun,其功能是:
计算并输出下列多项式的值:
例如,在主函数中从键盘给n输入8后,输出为:
s=0.662872。
注意:
要求n的值大于1但不大于100。
doublefun(intn)
{inti;
doublesum=0.0;/*定义sum为双精度型变量,并给其赋初值为0.0*/
if(n>1&&n<=100)
{for(i=1;i<=n;i++)
sum+=1.0/(2*i-1)-1.0/(2*i);/*计算出1.0/(2*i-1)-1.0/(2*i)相应的每一个多项式的值,同时累加到变量sum中*/
}
returnsum;/*返回计算结果*/
}
21请编写函数fun,它的功能是:
计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
例如,在主函数中从键盘给n输入20后,输出为:
s=0.583333。
注意:
要求n的值不大于100。
#include
doublefun(intn)
{inti;
doublesum=0.0;/*将sum定义为双精度型变量,并给其赋初值为0.0*/
if(n>0&&n<=100)
{for(i=1;i<=n;i++)
if(i%5==0||i%9==0)/*判断i是否能被5或者9整除*/
sum+=1.0/i;/*累加自然数的倒数之和,放入变量sum中*/
}
returnsum;/*返回结果*/
}
22请编写函数fun,其功能是:
计算并输出当x<0.97时下列多项式的值,直到|S(n)-S(n-1)|<0.000001为止。
例如,在主函数中从键盘给x输入0.21后,输出为:
s=1.100000。
#include
#include
可以通过while循环求出各项表达式的值,然后进行累加。
doublefun(doublex)
{
intn=1;/*循环计数*/
doublesn=1;/*累计数*/
doublexn=1,xn1=0;/*x的n值,以及x的n-1值;*/
while(fabs(xn-xn1)>=0.000001)/*绝对值是否合格*/
{
xn=xn*x*(0.5-n+1)/n;/*表达式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/
n+=1;
sn+=xn;/*sn累加上xn*/
}
return(sn);
}
23请编写函数fun,其功能是:
计算并输出给定10个数的方差:
┌110┐0.5
S=│─∑(Xk-X')^2│
└10k=1┘
110
其中X'=─∑Xk
10k=1
例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。
#include
#include
doublefun(doublex[10])
{inti;/*定义变量*/
doubleavg=0.0;
doublesum=0.0;
doubleabs=0.0;
doublefc;
for(i=0;i<10;i++)/*循环开始*/
sum+=x[i];/*计算已结定的10个数之和,并将其值赋给变量sum中*/
avg=sum/10;/*计算已结定的10个数的平均值,并将其值赋给变量avg*/
for(i=0;i<10;i++)/*循环开始*/
abs+=(x[i]-avg)*(x[i]-avg);/*计算(Xk-X')的平方和,并将其值赋给变量abc*/
fc=sqrt(abs/10);/*sqrt(abs/10)函数是计算abs/10的平方根*/
returnfc;/*返回结果*/
}
24请编写函数fun,其功能是:
计算并输出3到n之间所有素数的平方根之和。
例如,在主函数中从键盘给n输入100后,
输出为:
sum=148.874270。
注意:
要求n的值大于2但不大于100。
#include
#include
doublefun(intn)
{
inti,j=0;/*定义两个整型变量*/
doubles=0;/*定义变量s为双精度型*/
for(i=3;i<=n;i++)
{for(j=2;j
if(i%j==0)break;/*如果i能被j整除就说明i不是素数,继而退出循环体*/
if(j==i)s=s+sqrt(i);/*sqrt(i)函数是计算i的平方根*/
}
returns;/*返回结果*/
}
25请编写函数fun,其功能是:
计算并输出S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……+(1+2^0.5+3^0.5+……+n^0.5)
例如,在主函数中从键盘给n输入20后,输出为:
s=534.188884。
注意:
要求n的值大于1但不大于100。
#include
#include
doublefun(intn)
{inti;/*定义一个整形变量*/
doublefac=1.0;/*定义变量fac、sum为双精度型*/
doublesum=1.0;
if(n>1&&n<=100)
for(i=2;i<=n;i++)
{fac+=sqrt(i);