題目1. 求N分之一序列前N項和
本題要求編寫程序,計算序列 1 + 1/2 + 1/3 + ... 的前N項之和
1).實驗代碼
#include<stdio.h>
int main()
{
int N,i;
double sum;
scanf("%d",&N);
sum=0; //初始化sum
for(i=1;i<=N;i++) //累加i的值
sum+=1.0/i; //累加求和
printf("sum = %.6f",sum);
return 0;
}
2). 設計思路
第一步:定義變量
第二步:輸入變量
第三步:調用for語句
第四步:累加求和
第五步:輸出答案
3).本題調試過程碰到的問題及解決方法
問題:計算的答案錯誤
解決方法:累加求和時將1更改為1.0
4).運行結果截圖
題目2. 求奇數分之一序列前N項和
本題要求編寫程序,計算序列 1 + 1/3 + 1/5 + ... 的前N項之和。
1)實驗代碼
#include<stdio.h>
int main()
{
int N,i;
double sum;
scanf("%d",&N);
sum=0; //初始化sum
for(i=1;i<=N;i++) //累加i的值
sum+=1.0/(2*i-1); //累加求和
printf("sum = %.6f",sum);
return 0;
}
2).設計思路
第一步:定義變量
第二步:輸入實數
第三步:調用for語句
第四步:累加求和
第五步:輸出答案
3).本題調試過程碰到的問題及解決方法
問題:分式的分母錯誤
解決方法:更正分母
4).運行結果截圖
題目3. 求簡單交錯序列前N項和
本題要求編寫程序,計算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N項之和。
1).實驗代碼
#include<stdio.h>
#include<math.h>
int main()
{
int N,i,y,x;
double d,sum; //d為每一項的值,sum為和
scanf("%d",&N);
x=1; // 初始化x,y,sum
y=1;
sum=0;
for(i=1;i<=N;i++){ //累加i的值
d=x*1.0/y; //計算每一項的值
sum+=d; //累加求和
y+=3;
x=-x; //改變符號,為下次循環做准備
}
printf("sum = %.3f",sum);
return 0;
}
2).設計思路
第一步:定義變量
第二步:調用for語句
第三步:計算每一項的值
第四步:累加求和
第五步:輸出答案
3).本題調試過程碰到的問題及解決方法
問題:變量沒有進行初始化
解決方法:將變量進行初始化
4).運行結果截圖
題目4. 求平方與倒數序列的部分和
本題要求對兩個正整數m和n(m≤n)編寫程序,計算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
1).實驗代碼
#include<stdio.h>
#include<math.h>
int main()
{
int m,n,i;
double sum;
scanf("%d %d",&m,&n); //輸入整數m,n
sum=0;
for(i=m;i<=n;i++) //累加i的值
{
sum+=pow(i,2)+1.0/i; //累加求和
}
printf("sum = %.6f",sum);
return 0;
}
2).設計思路
第一步:定義變量
第二步:輸入變量
第三步:調用for語句
第四步:累加求和
第五步:輸出答案
3).本題調試過程碰到的問題及解決方法
問題:變量初始化位置輸入錯誤
解決方法:將初始化語句放在for語句外
4).運行結果截圖
題目5. 求交錯序列前N項和
本題要求編寫程序,計算交錯序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N項之和。
1).實驗代碼
#include<stdio.h>
int main()
{
int m,N,i,f,d;
double y,sum; //y為每一項的值,sum為和
scanf("%d",&N);
sum=0; //初始sum,f,d,m
f=1;
d=1;
m=1;
for(i=1;i<=N;i++){ //累加i的值
y=f*m*1.0/d; //計算每項的值
sum+=y; //將每項累加
m++;
d+=2;
f=-f; //改變符號,為下次循環做准備
}
printf("%.3f",sum);
return 0;
}
2).設計思路
第一步:定義變量
第二步:調用for語句
第三步:計算每項的值
第四步:累加求和
第五步:輸出答案
3).本題調試過程碰到的問題及解決方法
問題:輸出格式錯誤
解決方法:按輸出樣例重新輸出