第十四,十五周作业
Posted DavidPark
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十四,十五周作业相关的知识,希望对你有一定的参考价值。
一,pta:
1,交换最小值和最大值:
(1),实验代码:
#include<stdio.h> int main() { int i, n,idx,t; scanf("%d",&n); int a[n]; for ( i = 0; i < n; i++ ) { scanf ( "%d", &a[i] ); } idx=0; for ( i = 0; i < n; i++ ) { if ( a[i] < a[idx] ) { ; } } if(idx!=0){ t=a[0];a[0]=a[idx];a[idx]=t; } idx=0; for ( i = 0; i < n; i++ ) { if ( a[i] > a[idx] ) { idx=i;} } if(idx!=(n-1)){ t=a[n-1]; a[n-1]=a[idx]; a[idx]=t;} for ( i = 0; i < n; i++ ){ printf("%d ",a[i]); } }
(2),设计思路:
第一步:输入一个n用来了解总共有多少个数。
第二步:用一个遍历输入每个数并存储到相应的空间内。
第三步:用一个for语句依次输出所存储的数据,并用一个if语句判断这个数据和idx数位的数据,如果这个数据比idx的那个大就将i赋给idx,循环结束后idx就是最大的那个数所处的数位。最后,判断第一项是不是最大值不是的话经过交换结束。最小的数的交换与其相同。
第四步:最后经过一个遍历将数输出结束。
(3),遇到问题:
是因为上课的时候老师特别说了一下,便将问题解决。错误原因是在交换之前没有判断第一个是不是就是最大值。
解决办法,在交换之前加if语句,看是否第一项就是最大,最小值同理。
2,冒泡排序法:
(1),实验代码:
#include<stdio.h> int main() { int i,j,t=0,n,k; scanf("%d %d",&n,&k); int a[n]; for(i=1;i<=n;i++){ scanf("%d",&a[i]);} for(j=1;j<=k;j++){ for(i=1;i<=n-j;i++){ if(a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} } } for(i=1;i<=n;i++){ if(i==n){ printf("%d",a[i]);} else{ printf("%d ",a[i]);} } return 0; }
(2),设计思路:
第一步:输入数据个数n,比较次数k。用一个遍历输入每个数并存储到相应的空间内。
第二步:用一个for语句控制比较的趟数,在此for语句中再用一个for语句将最大的数放置在后面(因为每减少一趟所需比较的次数就少一次,所以每趟只需判断n-j次。)
第三步:用一个遍历将数据输出,因为末尾不能有空格所以在其中加一个if语句控制输出。
(3),遇到问题:
在Dev c++上运行的时候总是会拉掉一些点导致答案出现错误。
解决办法就是对比TXT进行错误查找。
3,四次pta:
二,Git:
(1),截图:
(2),Git地址:https://git.coding.net/DavidPark/123.git
三,学习总结:
这两周主要学习了数组,感觉数组包含的知识较多,尤其是for语句所以经过两周的训练for语句更加熟练,并且感觉学习了数组并做一些应用题后自己的思维更加开阔。
难点的话就是在做一些应用的时候有时会感觉手足无措。
四,学习进度与互评:
时间 |
代码行数 |
时间(min) |
博客字数 |
博客时间min |
知识点 |
11.20 |
100 |
90 |
0 |
0 |
Pta |
11.21 |
100 |
100 |
0 |
0 |
Pta,TXT事例练习 |
11.22 |
120 |
100 |
0 |
0 |
Pta,数组输入,输出 |
11.23 |
100 |
100 |
0 |
0 |
Pta,下标 |
11.24 |
150 |
110 |
0 |
0 |
数组实例练习 |
11.25 |
180 |
120 |
0 |
0 |
数组实例练习 |
11.26 |
150 |
120 |
0 |
0 |
Pta |
11.27 |
100 |
100 |
50 |
10 |
Pta |
11.28 |
100 |
90 |
0 |
0 |
Pta,二维数组输入输出 |
11.29 |
100 |
100 |
0 |
0 |
二维数组输入输出 |
11.30 |
200 |
110 |
0 |
0 |
Pta |
12.1 |
150 |
90 |
60 |
30 |
Pta |
12.2 |
160 |
110 |
110 |
90 |
数组实例练习 |
12.3 |
200 |
120 |
40 |
10 |
数组实例练习 |
互评:
1,高立彬:http://www.cnblogs.com/gao628526/p/7931800.html
2,班庆泽:http://www.cnblogs.com/wsbqz/p/7965666.html
3,张国庆:http://www.cnblogs.com/zgq947/p/7966299.html
以上是关于第十四,十五周作业的主要内容,如果未能解决你的问题,请参考以下文章