第14、15周作业
学习内容总结:
第一题:求整数序列中出现次数最多的数
1.代码:
#include<stdio.h> int main() { const int n; int i,j,max=0; scanf("%d",&n); int c[n],a[n]; for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) { c[i]=0; for(j=0;j<n;j++) { if(a[i]==a[j]) { c[i]++; } } } for(i=1;i<n;i++) { if(c[i]>c[i-1]) { max=i; } } printf("%d %d",a[max],c[max]); }
2.设计思路:
第一步:建立一个大小为n的数组;
第二步:使i j为整形,max为整形同时max初值等于0;输入n;
第三步:建立数组从c[n],a[n];
第四步:for语句循环,输入a[n]的值;
第五步:用c[n] 表示a[n]中出现的次数;
第六步:比较出现次数最多的值;
第七步:输出出现次数最多的值;
3. 流程图:
4.调试过程中遇到的问题及解决办法:
第一次编写程序时,输出的a[max],c[max] ,写成了a[i],c[i];
将a[i],c[i];改写成a[max],c[max]即可;
原题输出样例:
我的输出样例:
PTA提交列表:
第二题:求最大值及其下标
1.代码:
#include<stdio.h> #define n 10 int main() { int i,n,a[n],idx; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } idx=0; for(i=1;i<n;i++) { if(a[i]>a[idx]) { idx=i; } } printf("%d %d",a[idx],idx); return 0; }
2.设计思路:
第一步:输入数组长度为N;
第二步:使i,n,a[N],idx为整形;
第三步:输入给定的正整数的个数:
第四步:for循环语句输入a[i]的值:
第五步:使idx的初值为0;
第六步:运用for循环语句,确定idx的值;
第七步:输出a[idx],idx;
3.流程图:
4.调试中遇到的问题及解决办法:
在进行调试时,最后输出a[idx],idx; 写成了a[i],i;
将a[i],i;改成a[idx],idx即可;
原题输出样例:
我的输出样例:
PTA提交列表:
要求三:
我的coding.net 的地址:
https://git.coding.net/smj031915/dssswzzy.git
上传图片:
要求四:
(1)本周,我学习到了一维数组,二维数组的表示方法,定义及引用。学会了对数组内的值进行降次排序,冒泡排序法,选择排序法。
(2)我觉得选择排序法是个难点,背就好了。
要求五:
评论的博客:
王姝雯:https://home.cnblogs.com/u/phsudie/
张心悦:https://home.cnblogs.com/u/zxy980612/
顾安城:https://home.cnblogs.com/u/gu-an-cheng-wxm/
表格:
折线图: