天天看点

第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提交列表:

第二题:求最大值及其下标

#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/

表格:

第14、15周作业

折线图:

第14、15周作业
第14、15周作业