想过二级C的朋友进来!(编程题)
偶以后每天都会发个二级C的编程题上来,
希望各位学C的新手支持偶啦,愿与大家互相学习,共同进步!
今天的题:
输入n输出s,n的范围是大于1小于100,公式s=1+(1+2^0.5)+(1+2^0.5+3^0.5)+(1+2^0.5+3^0.5+……+n^0.5) 搜索更多相关的解决方案:
朋友
----------------解决方案--------------------------------------------------------
偶做的:
#include<math.h>
#include<stdio.h>
double fun(int n){
int i,j;
double sum0=0,sum1=0;
for(i=1;i<=n;i++){
for(j=1;j<=i;j++)
sum0+=sqrt(j);
sum1+=sum0;sum0=0;
}
return sum1;
}
main()
{int n;
printf("enter n:\n");
scanf("%d",&n);
if((n<=1)||(n>=100)){printf("data error!retry!");scanf("%d",&n);}
printf("the s=%lf",fun(n));
}
----------------解决方案--------------------------------------------------------
只用一个循环: #include <math.h> int main() { int i,n; float sum;
printf("please input numner n:\n"); scanf("%d",&n); for(i=0;i<=n;i++) sum=2*sum+sqrt(i); printf("The sum is %f",sum); getch(); }
----------------解决方案--------------------------------------------------------
楼上的看着怪怪的~~
----------------解决方案--------------------------------------------------------
三楼的程序有问题喔,得不到预期的结果,给N输入20则输出为S=534.188884
错在:
s(n)-s(n-1)=1+2^0.5+3^0.5+4^0.5+……+n^0.5
而不是等于s(n-1)+n^0.5
所以不能用sum=2*sum+sqrt(i)求和
不过三楼的想法很好,很有启发性!
[此贴子已经被作者于2005-10-9 0:39:55编辑过]
----------------解决方案--------------------------------------------------------
#include<math.h>
main(){
double sum;
int n,i;
printf("Input n(1>=n<=100)");
scanf("%d",&n);
if(!(n>=0&&n<=100))
{ printf("Error !! Retry!");scanf("%d",&n); }
else
for(i=1;i<=n;i++)
sum=2*sum+sqrt(i);
printf("%f",sum) ;
}
----------------解决方案--------------------------------------------------------
楼上的:if(!(n>=0&&n<=100))中的"&&"应改为"||"
另外跟三楼的错误一样"sum=2*sum+sqrt(i);"这个表达式不能得到题目要求的结果
给N输入20则输出为S=534.188884
检验一下
----------------解决方案--------------------------------------------------------
最重要的是当N大于20或者更多的情况怎么办????????
----------------解决方案--------------------------------------------------------
一样的啊,我给的只是N=20只是为了检验程序的正确性,N>20不妨碍啊
----------------解决方案--------------------------------------------------------
n太大就会出现益出问题, 考虑没?
----------------解决方案--------------------------------------------------------