第三次作业
2018-11-28 20:14 樊宇烽 阅读(1252) 评论(8) 编辑 收藏 举报作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360。
第11周:
7-1 求简单交错序列前N项和 (15 分)
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
输入样例:
10
输出样例:
sum = 0.819
一、实验代码
#include<stdio.h> int main(void) { int x,N,a=1; double y=0; scanf("%d",&N); for(x=1;x<=1+3*(N-1);x=x+3){ y=y+a*1.0/x; a=-a; } printf("sum = %.3lf",y); return 0; }
二、解题思路
1.步骤
第一步:分析题意并定义四个变量x、y、N、a、令a=1,y=0。
第二步:输入一个正整数N。
第三步:利用for循环语句计算出每一项的值并求出他们的和y,即y=y+a*1.0/x。因为一项是正数、一项是负数,所以引入a=1并使每次的a=-a来改变正负。
第四步:输出y并保留3位小数。
2.流程图
3.本题调试过程碰到问题及解决办法
第12周:
7-1 求整数的位数及各位数字之和 (15 分)
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过109的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
一、实验代码
#include<stdio.h> int main(void) { int N,n=0,sum=0; scanf("%d",&N); do{ sum=sum+N%10; N=N/10; n++; } while(N!=0); printf("%d %d",n,sum); return 0; }
二、解题思路
1.步骤
第一步:定义三个变量 N,n,sum
第二步:根据题意写出循环条件
第三步:写出算法
第四步:输出位数n与个数字之和sum
2.流程图
3.本题调试过程碰到问题及解决办法
第13周:
6-1 求m到n之和 (10 分)
本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。
函数接口定义:
int sum( int m, int n );
其中m
和n
是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。
裁判测试程序样例:
#include <stdio.h>
int sum(int m, int n);
int main()
{
int m, n;
scanf("%d %d", &m, &n);
printf("sum = %d\n", sum(m, n));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
-5 8
输出样例:
sum = 21
一、实验代码
int sum(int m,int n){ int i,y=0; for(i=m;i<=n;i++){ y=y+i; } return y; }
二、解题思路
1.步骤
第一步:分析题意,得知自定义的函数sum是用于求m~n之间整数的和。
第二步:在sum函数内定义变量i,y=0。
第三步:写出循环条件和算法。
第四步:返还m~n之间整数的和y的值。
2.流程图
3.本题调试过程碰到问题及解决办法
个人总结:
通过这一段时间的学习,我学习到了几种循环语句和自定义函数的方法