c语言编程,计算并输出:S=1+(1+2^0.5)+...+(1+2^0.5+...+n^0.5)
3个回答
展开全部
#include<stdio.h>
#include <math.h>
int main()
{
double s=0, an=0,bn=0;
宏扰int n,i;
乱凳 scanf("%d",&n);
for(i = 1; i <= n; i ++)
哗绝旅 {
bn=sqrt(i);
an+=bn;
s+=an;
}
printf("%lf\n", s);
return 0;
}
更多追问追答
追问
无错误为什么输不出内容
追答
maybe I found a fool
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入 任意n值,按指定格式打印
还以为你要输出指定格式,白瞎了那么多时间= =
n输入111
#include<stdio.h>
#include<math.h>
#include<malloc.h>
void scpINTtoSTR(char ** str,int len,int num);
int getNumLen(int num);
int funPow10(int n);// 自定义10的次方 原pow函数计算10次方有误差,参数:次方数
int main()
{
float sum0=0,sum=0;
int i,j,n,len;
char *str,*p;
aa: sum0=0,sum=0;
printf("请输入n:");
scanf("%d",&n);
len=getNumLen(n);
str=(char *)malloc(sizeof(char)*(len+4)*n*n);
p=str;
for(i=1;i<=n;i++)
{
sum0=0;
*p++='(';
茄携团 for(j=1;j<=i;j++)
{
sum0=sum0+pow(j,0.5);
if(i==1)
{
*(--p)='1';
*(++p)='+';
p++;
}
else if(i>1 && j<i)
{
len=getNumLen(j);
if(len==1)
*p++=j+'0';
else
scpINTtoSTR(&p,len,j);
*p++='^';
隐汪 *p++='0';
*p++='.';
*p++='5';
*p++='+';
}
颤橘 else if(j==i)
{
len=getNumLen(j);
if(len==1)
*p++=j+'0';
else
scpINTtoSTR(&p,len,j);
*p++='^';
*p++='0';
*p++='.';
*p++='5';
*p++=')';
*p++='+';
}
}
sum=sum+sum0;
}
*(--p)='\0';
printf("%s=",str);
printf("%f\n\n",sum);
goto aa;
return 0;
}
void scpINTtoSTR(char ** str,int len,int num)//把数字转成字符串, 插入到数组指针中
//参数1:字符串指针的地址 参数2:数字字符长度 参数3:要转的整型数字
{
while(1)
{
**str=num/funPow10(len-1)+'0';
(*str)++;
num=num%funPow10(len-1);
len--;
if(len==1)
{
**str=num+'0';
(*str)++;
**str='\0';
break;
}
}
}
int getNumLen(int num)//获取整型数字 字符长度
{
int i,len;
i=1;
while(1)
{
if(num/pow(10,i)<10 && num>=10)
{
len=i+1;
break;
}
else if(num<10)
{
len=1;
break;
}
i++;
}
return len;
}
int funPow10(int n)// 自定义10的次方 原pow函数计算10次方有误差,参数:次方数
{
int i,num=1;
if(n==0)
return 1;
else if(n==1)
return 10;
else
{
for(i=1;i<=n;i++)
{
num=num*10;
}
return num;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询