历时一小时,只做了第一题,菜就是菜,没的说,看代码
项目一
代码:
/*求1到m的倒数和
求1到m的平方和
求1到m间所有奇数的和
求值
求m!*/
#include <stdio.h>
int main()
{
int s_baocun,n,square_s,odd_s,w,factorial;//定义一堆需要用到的变量,结果我自己看糊涂了
double m,sum,value;//好吧,标注下:s_baocun是用来存m值的,n是奇数和的变量,w用来转换正负符号
printf("请输入要求倒数和的数:");
scanf("%lf",&m);
sum=0;
square_s=0;
odd_s=0;
value=0;
factorial=1;
s_baocun=m;
m=1;
n=1;
w=1;
while(m<=s_baocun)
{
sum+=1/m;
square_s+=m*m;
value+=w*1/m;
factorial*=m;
m+=1;
w=-w;
}
while(n<=s_baocun)
{
odd_s+=n;
n+=2;
}
printf("所求倒数和结果为:%lf\n平方和为:%d\n奇数和为:%d\n一正一负倒数值为:%lf\n阶乘值为:%d",sum,square_s,odd_s,value,factorial);
return 0;
}
这里讲下,因为奇数求和每次递增2与m自增冲突,所以单独循环计算,w这里是用来作为切换正负符号来用
有个疑问是long long int 定义了该用什么输出呢?%lld 提示codeblocks提示错误,%l64d就直接输出64d了 这个问题明天跟贺老师求教
重新完善了下代码,又花了半小时
代码:
/*求1到m的倒数和
求1到m的平方和
求1到m间所有奇数的和
求值
求m!*/
#include <stdio.h>
int main()
{
int s_baocun,n,square_s,odd_s,w,factorial;//定义一堆需要用到的变量,结果我自己看糊涂了
double m,sum,value;//好吧,标注下:s_baocun是用来存m值的,n是奇数和的变量,w用来转换正负符号
printf("请输入要求倒数和的数:");
scanf("%lf",&m);
sum=0;
square_s=0;
odd_s=0;
value=0;
factorial=1;
s_baocun=m;
m=1;
n=1;
w=1;
if(s_baocun<0)
printf("请输入一个非负数\n");
else
{
while(m<=s_baocun)
{
sum+=1/m;
square_s+=m*m;
value+=w*1/m;
m++;
w=-w;
}
while(n<=s_baocun)
{
odd_s+=n;
n+=2;
}
if(s_baocun==0)
factorial=0;
else
{
m=1;
while(m<=s_baocun)
{
factorial*=m;
m+=1;
}
}
printf("所求倒数和结果为:%lf\n平方和为:%d\n奇数和为:%d\n一正一负倒数值为:%lf\n阶乘值为:%d",sum,square_s,odd_s,value,factorial);
}
return 0;
}
看项目二
代码:
/*求π的值*/
#include <stdio.h>
#include <math.h>
int main()
{
double p,m,pi;
int w;
p=0;
w=1;
m=1;
while(1/m>=fabs(0.00001))
{
p=p+w*(1/m);
m+=2;
w=-w;
}
pi=p*4;
printf("%lf",pi);
return 0;
}
项目二
代码:
/*Fibonacci数列*/
#include <stdio.h>
int main()
{
int m1,m2,sum;
m1=1;
m2=1;
sum=0;
printf("%d\n%d\n",m1,m2);
while(m1+m2<=10000)
{
sum=m1+m2;
printf("%d\n",sum);
m1=sum;
if(m1+m2<=10000)
{
sum=m1+m2;
printf("%d\n",sum);
m2=sum;
}
}
return 0;
}
这个代码有点勉强,参考了老师的发现可以更简单,不需要if 直接m1=m2,m2=sum。。。。。我绕了一大圈 哈 思维问题
继续项目三
代码:
/*阶乘和*/
#include <stdio.h>
int main()
{
int n,sum,f;
n=1;
sum=1;
f=0;
while(n<=10)
{
sum=sum*n;
f=f+sum;
n++;
}
printf("%d",f);
return 0;
}
2小题
代码:
/*求s=1!+2!+……10!*/
#include <stdio.h>
int main()
{
int p,n,f,m;
p=0;n=1;
while(n<=6)
{
f=1;m=1;
while(m<=n)
{
f=f*n;
m++;
}
p=p+f;
n++;
}
printf("%d",p);
return 0;
}