第七周作业

7-5求1到100的和

1.实验代码

#include <stdio.h>
int main()
{
    int sum,i;
    sum = 0;
    for(i=1;i<=100;i++)
    sum = sum+i;
    printf("sum = %d",sum);
    return 0;
}

2 设计思路
(1)主要描述题目算法
第一步:首先对sum,i进行整型定义,sum赋初值为0。
第二步:运用for循环语句,循环变量赋初值i=1,循环条件为i<=100,循环变量增值为i=i+1。

第三步:输出sum。
(2)流程图

 

 

3.本题调试过程碰到问题及解决办法

因为课堂上老师讲过相同的例题,所以并没有什么错误。

7-2 求奇数分之一序列前N项和

1.实验代码

#include <stdio.h>
int main ()
{
    double m,sum;
    int i,N;
    sum = 0;
    scanf("%d",&N);
    for(i=1;i<=N;i++,i++)
    {
    m=1.000000/i;
    sum = sum + m;
    }
    printf("sum = %.6f",sum);
    return 0;
}

2 设计思路
(1)主要描述题目算法
第一步:对m,sum进行浮点型定义,i,N进行整型定义,sum=0。
第二步:输入N,运用for循环语句,循环变量赋初值i=1,循环条件为i<=N,循环变量增值为i=i+2。

第三步:注意循环里面的m=1.000000/i,最后输出sum的值。

(2)流程图

3.本题调试过程碰到问题及解决办法

遇到的主要问题是最后sum的输出结果为0.000000,原因写成在于m=1/i,m也应精确到小数点后6位,所以应为m=1.000000/i。

 

7-2求交错序列前N项和

1.实验代码

#include <stdio.h>
int main()
{
    int i,N,k;
    double sum;
    scanf("%d",&N);
    sum = 0;
    k = 1; 
    for(i = 1;i<=N;i++)
    {
        sum =sum + i/(2.00*i-1)*k;
        k = k*(-1);
    }
    printf("%.3f",sum);
    return 0;
}

2 设计思路
(1)主要描述题目算法
第一步:对sum进行浮点型定义,i,N,k进行整型定义,sum=0,k=1。
第二步:输入N,运用for循环语句,循环变量赋初值i=1,循环条件为i<=N,循环变量增值为i=i+1。

第三步:注意循环里面的sum =sum + i/(2.00*i-1)*k, k = k*(-1)。

第四步:最后输出sum的值,输出m的值时要注意不为%f,应为%.3f。

(2)流程图

3.本题调试过程碰到问题及解决办法

主要是和上题一样的问题,sum应为sum + i/(2.00*i-1)*k,当时也是忽略将2.00写成2。

7-4 找出最小值

1.实验代码

#include <stdio.h>
int main()
{
int i,n,min,m;//i为输入的个数n为后面的值
scanf("%d",&i);

scanf(
min = i;
for(m = 1;m<=i-1;m++)
{
scanf("%d",&n);
if(min>n)
{
min = n;
}
else
{
min = min;
}
}
printf("min = %d",min);

}

2 设计思路
(1)主要描述题目算法
第一步:i,n,min,m进行整型定义。

第二步:输入i,min = i,根据不同的情况将赋给min值。

第三步:注意最后输出格式中printf(""min = %d",min)。

(2)流程图

3.本题调试过程碰到问题及解决办法

for语句并不是很熟悉,m = 1;m<=i-1不明白其具体如何在循环中实现,后经过书籍查询和网上查询,大致了解了其具体的过程。

7-5 统计学生平均成绩与及格人数

1.实验代码

#include <stdio.h>
int main()
{
    int n,i,score,count,sum;//n为同学数 
    double avg;
    scanf("%d",&n);
    sum = 0;
    count = 0;
    for(i = 1;i<=n;i++)
    {
        scanf("%d",&score);
        sum = sum+score;
        if(score>=60)
        count = count+1;
    }
    avg = (double)(sum/n)*1.0;
    printf("average = %.1f\n",avg);
    printf("count = %d\n",count);
    return 0;
 } 

2 设计思路
(1)主要描述题目算法
第一步:n,i,score,count,sum进行整型定义,avg进行浮点型定义。

第二步:输入n,sum=0,count=0运用for循环语句,循环变量赋初值i=1,循环条件为i<=n,循环变量增值为i=i+1。

第三步:在for语句中满足条件则输入score,定义sum=sum+score,添加关于count的条件语句。

第四步:注意最后输出格式中avg=%.1f\n

(2)流程图

 

3.本题调试过程碰到问题及解决办法

做题时关于如何输出count并没有思路,后上网查询得到结果,相信在下一次遇到相似的问题时,自己可以会有一定的解决思路。

我的git地址:https://git.coding.net/exo07/disizhouzuoye.git

git提交列表:

我点评同学的作业:

 王姝雯:http://www.cnblogs.com/phsudie/p/7837488.html

张心悦:http://www.cnblogs.com/zxy980612/p/7850548.html

董欣:http://www.cnblogs.com/dx2017/p/7809786.html

本周主要学习了for循环语句,while语句,do   while语句,包括循环语句中使用break,countinue·

主要是对循环语句中用break,countine比较不熟练

 

posted @ 2017-11-17 21:48  董雅洁  阅读(277)  评论(6编辑  收藏  举报