第14、15周作业
题目7-1 数组中偶数的和
1.实验代码
#include<stdio.h> int main() { int i,sum; int a[10]; for(i=0;i<=9;i++) { scanf("%d",&a[i]); if(a[i]%2==0) { sum=sum+a[i]; } } printf("s=%d",sum); return 0; }
2.设计思路
(1)题目算法
第一步:定义整数型变量i,sum,数组a[10]
第二步:使用for循环来执行程序,输入所有的数组
第三步:当a[i]除以2的余数为0时,运用sum=sum+a[i]来运算
第四步:输出sum的值
(2)流程图
3.本题调试过程碰到的问题及解决办法
编译没有出错但是运行结果与PTA给出的结果不符,后来发现应该是i<=9而不是i<9
题目7-2 输出小于均值的数
1.实验代码
#include<stdio.h>
int main()
{
int i,a[10],sum=0;
float average;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
average=sum/10.0;
for(i=0;i<10;i++)
{
if(a[i]<average){
printf("%d ",a[i]);
}
}
return 0;
}
2.设计思路
(1)题目算法
第一步:定义整数型变量i,sum=0,数组a[10];定义浮点型变量average
第二步:使用for循环运行程序,进行第一个循环,输入所有的数组,运用sum=sum+a[i]和avergge=sum/10.0来运算
第三步:进行第二个循环,当a[i]<average时,输出a[i]
(2)流程图
3.本题调试过程碰到的问题及解决办法
运行时得不到结果,但是编译没有错误。经询问同学知道题目中所说的每个数字后面必须有一个空格是在第二个scanf处需要留空格,在第一个scanf处不需要
题目7-3 将数组中的数逆序存放
1.实验代码
#include<stdio.h> int main() { int i,a[10]={0},n=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(i=n-1;i>=0;i--){ if(i!=0){ printf("%d ",a[i]); } if(i==0){ printf("%d",a[i]);}} return 0; }
2.设计思路
(1)题目算法
第一步:定义整数型变量i,n,数组a[10];n=0,令数组的第一个数等于0
第二步:用for循环运行程序,进行第一次循环,输入所有的数组
第三步:进行第二次for循环,令i等于数组中最后的数字,并且依次输出,如果i!=0,输出数组中的数;如果i=0,直接输出数组中的数
(2)流程图
3.本题调试过程碰到的问题及解决办法
运行结果与PTA不符,看数组的文件发现在递减循环时第一个数应该为n-1
题目7-4fibonacci数列
1.实验代码
#include<stdio.h> int main() { int i,a[12]={1,1}; for(i=2;i<=11;i++) a[i]=a[i-1]+a[i-2]; for(i=0;i<=11;i++) { printf("%6d",a[i]); if((i+1)%3==0) printf("\n"); } return 0; }
题目7-1 求最大值及其下标
1.实验代码
#include<stdio.h>
int main()
{
int n,i,index;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
index=0;
for(i=1;i<n;i++){
if(a[i]>a[index]){index=i;}
}
printf("%d %d",a[index],index);
return 0;
}
2.设计思路
(1)题目算法
第一步:定义整数型变量n,i,index=0,输入n
第二步:定义数组a[n]
第三步:第一次for循环,当i<n时,i++,输入a[i]
第四步:第二次for循环,当i<n时,i++,若a[i]>a[index],输出a[index]和index
(2)流程图
3.本题调试过程碰到的问题及解决办法
最开始没找出来自己的错误在哪,后来问同学才知道没有将index赋值导致错误
题目7-2 将数组中的数逆序存放
1.实验代码
#include<stdio.h> int main() { int n,i; scanf("%d",&n); int a[n]; for(i=0;i<n;i++) { scanf("%d ",&a[i]); } printf("%d",a[n-1]); for(i=n-2;i>=0;i--) { printf(" %d",a[i]); } return 0; }
2.设计思路
(1)题目算法
第一步:定义整数型变量n,i,输入n
第二步:定义数组a[n],第一次循环,当i<n时,i++,输入数组a[i]
第三步:输出数组a[n-1]的值,第二次循环,当i>=0时,i--,输出a[i]
(2)流程图
3.本题调试过程碰到的问题及解决办法
在2和1数字中间没有空格,一开始不理解“相邻数字中间用一个空格分开,行末不得有多余空格”这句话,然后问同学,知道是printf处%d的空格给出错
git地址:https://coding.net/u/sunmeiling/p/sunmeiling/git/tree/master/
git截图:
个人总结
(1)本周学习收获了
1.数组的定义,如何使用、定义、引用数组
2.一维数组与二维数组的不同
3.字符串的操作
4.部分元素以及数组的初始化
4.Fibonacci数列
5。求数组的最大值、最小值及下标
6.运用冒泡法、选择法排序
(2)难点以及不明白的知识点:我觉得数组这一部分就要比之前学的难的多,二维数组是难点,这两周收获了数组这一块的许多知识,但是我不明白初始化该怎么做
点评的同学以及截图
孙佳钰:http://www.cnblogs.com/woshisun/p/7918490.html
孙娜:http://www.cnblogs.com/sun-na-/p/7875394.html
马宇欣:http://www.cnblogs.com/mayuxin/p/7900356.html
学习折线图和表格
折线图: