第14.15周作业
1.
14.2.5题
#include<stdio.h> int main() { int n,i,k,T,j; scanf("%d %d",&n,&k); int a[n]; for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<k;i++) { for(j=1;j<n-i;j++) { if(a[j]<a[j-1]) { T=a[j]; a[j]=a[j-1]; a[j-1]=T; } } } for(i=0;i<n;i++) { printf("%d",a[i]); if(i==n-1) break; printf(" "); } return 0; }
第一步:输入扫描的遍数k,数个数为N,定义数组。
第二步:利用循环输入每个数的值。
第三步:循环镶套,外层为扫描遍数,内层依次比较相邻两数大小,若后项比前项小,则交换两位置的值。
第四步:利用循环依次输出每位的值。
流程图:
错误:
错误原因:第二个循环大条件应该i<k,忘记了题目要求,后发现k没用上并改正。
提交列表:
2.
15.1
#include<stdio.h> int main() { int n,m,i,j,sum=0; scanf("%d %d",&m,&n); int a[m][n]; for(i=0;i<m;i++) { for(j=0;j<n;j++) { scanf("%d",&a[i][j]); sum=sum+a[i][j]; if(j==n-1) { printf("%d\n",sum); sum=0; } } } return 0; }
第一步:输入行列数大小m,n。
第二步:循环,输入每行每列每个数的值,求每行的和。
第三步:求出每行的和后再使sum=0.
流程图:
错误:
错误原因:求出答案与所给答案不符,没重新将和调整就进行计算。
提交列表:
要求三:https://coding.net/u/asdfg145632/p/a7/git
要求四(1)学习内容:这两周学习了利用循环排序,利用双数组解决问题等,学习内容较多,需要利用好循环镶套,代码难度明显增加。但解决问题能力也略有增加。
(2)本周利用好循环是难点,代码长度加长,需要明确每个符号代表的作用,需要细心才能解决问题。
要求五:http://www.cnblogs.com/wangzhiheng/p/7967143.html
http://www.cnblogs.com/mayuxin/p/7900356.html
http://www.cnblogs.com/simalang/p/7965750.html