第十四、十五周作业

要求二

题目 14、1--7-1 数组中偶数的和

1、实验代码

#include <stdio.h>
int main(void){
  int i,sum=0;
  int a[10];
  for(i=0;i<10;i++){
    scanf("%d",&a[i]);
  }
  for(i=0;i<10;i++){
    if(a[i]%2==0)
      sum=sum+a[i];
    }
    printf("s=%d",sum);
return 0;
}

 

2、设计思路

(1)主要描述

第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。

第二步:定义一个大的数组空间a[10],在定义循环需要的整型变量i,sum(和)。

第三步:使用for循环将数组中的数据输入进去,如果满足a[i]%2==0,则证明输入的这个数据是偶数,满足后在循环中进行加和。

第四步:循环到数据空间到头时候,结束,输出数组中偶数的和sum。

(2)流程图

 

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

 提示截图:

解决:此题没有什么问题,可以用多种方式写出来、

题目 14、2--7-1求最大值及其下标

1、实验代码

#include <stdio.h>
int main(void)
{
  int i,index,n;
    printf("Enter n:");
      scanf("%d",&n);
  int a[n];
    printf("Enter %d integers:",n);
  for(i=0;i<n;i++)
        scanf("%d",&a[i]);
  index=0;
   for(i=0;i<n;i++)
    if(a[i]>a[index])
        index=i;
   printf("max is %d\n index is %d\n",a[index],index);
return 0;
}

 

2、设计思路

(1)主要描述

第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。

第二步:定义变量i,index(下标标示),max(最大值),定义数组a[n]。

第三步:使用for循环输入数据,让index=0相当于保证输入的数据从第一个开始。

第四步:再次使用for循环,用if语句判断出符合要求的数组中的数据,如果a[i]>a[index],那么就进行交换,保证max一直最大。

第五步:最后输出最大值及其下标。

(2)流程图

 

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

错误提示截图:

解决:那个max没有给出定义,还有没有初始输入,要先输入数据的。我也在百度上看了这道题的代码,又经过问同学解决的。

题目 15、1--7-2方阵左下角元素的和

1、实验代码

#include <stdio.h>
int main(void)
{
  int i,j,sum=0;
  int a[4][4];
  for(i=0;i<4;i++)
 {
   for(j=0;j<4;j++)
    {
    scanf("%d ",&a[i][j]);
      if(j<=i)
      {sum=sum+a[i][j];}
  }
  }
    printf("%d",sum);
return 0;
}

 

2、设计思路

(1)主要描述

第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。

第二步:定义变量i,j,sum,同时定义一个数组a[4][4]就相当于申请这么大一个空间。

第三步:定位出j<=i的位置,使用for的多层循环输入符合要求的数据,进行循环累加。

第四步:最后输出方阵左下角元素的和sum。

(2)流程图

 

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

错误提示截图:

 

解决:虽然在Dec++上没有错误,但在PTA上是不正确的,此题由于做PTA时忘记了截图。在c++上没有错误说明程序写的没有错误,但在PTA上由于和题意不符,所以会编译错误,经过检查发现如上圈出来的问题,题意要求输入4行4列的方阵,每行第一个数前没有空格,每行的每个数之间各有一个空格。但是我的并没有空,还有就是第二个圈点出来的那个,输出不能放入循环体里。

题目14--7-4 fibonacci数列

1、实验代码

#include <stdio.h>
int main(void){
  int i;
  int fib[12]={1,1};
  printf("%6d",fib[0]);
  printf("%6d",fib[1]);
  for(i=2;i<12;i++){
      fib[i]=fib[i-1] + fib[i-2];
      printf("%6d",fib[i]);
    if((i+1)%3 == 0){
  printf("%c",'\n');
  }
  }
return 0;
}

 

2、设计思路

(1)主要描述

第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。

第二步:定义一个数组为十二的空间,直接给出第一个数据,第二个数据的值,定义整型变量i。

第三步:根据要求,没有输入,利用for循环和if进行判断。

第四步:输出 使用%6d的格式输出;注意输出最后一个数字后,有一个换行。所以用%6d输出结果。

(2)流程图

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

提示截图:

解决:这个题目老师上课讲过的,通过自己敲及看老师的ppt,思考解决出来的。

 提交列表:

要求三

上传截图:

我的coding地址:http://coding.net/u/linmeng123

要求四

个人总结

(1)我学习到的内容:本周主要学习了数组,先学习了数组的定义,数组元素的引用,数组的初始化,及一些对应的程序。我们从一维数组开始学起,逐渐深入学习了二维数组,还学习了选择法排序及重要的冒泡排序,及一些数组中的数逆序存放,记录下标一些程序。

我的收获:让我觉得用数组,比以往老式写代码方便多了,用起来很好,本周我最大大收获就是学习了数组,及其对它的应用,使得我对编程进一步产生了兴趣。本周我觉得收获最大的就是上一次课,老师带着一边敲,一边提问,让同学来说,并一步一步来改,我听懂了好多,感觉平时光听效率高很多,希望以后多一些这种方式上课。

(2)我认为的难点:选择法和冒泡法不太理解,有点复杂,可能是我没有真正理解,如果理解可能一环套一环很简单吧。

不明白的:复杂一点的我总是蒙,可能我内心存在对复杂程序的恐惧,但每一次PTA作业我都自己努力去做,但每次都是有错误,都是找会的同学,帮我改半天。不明白的就是带有复杂的,比如冒泡和选择排序。别的看看还能扣明白。

要求五

互评和学习进度

1、点评的同学:

孙娜:http://www.cnblogs.com/sun-na-/

张乐;http://www.cnblogs.com/1999-09-22/

汪志恒:http://www.cnblogs.com/wangzhiheng/

截图

2、表格

时间 代码行数 代码时间 博客字数 博客时间 知识点
11.10 30 15 0 0 for
11.15 35 22 150 15 for,交换,记录下标
11.17 46 35 260 45 选择,冒泡排序
11.19 50 60 300 90 矩阵,循环移动

 

折线图

 

posted on 2017-12-02 13:52  linmenga5  阅读(272)  评论(10编辑  收藏  举报

导航