学习内容总结:
第一题:求整数序列中出现次数最多的数
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提交列表:
第二题:求最大值及其下标
#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即可;
原题输出样例:
要求三:
我的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/
表格:
折线图: