第二次作业

一:

作业要求链接:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502

二:

函数6-2 找两个数中最大者

1.实验代码

int max( int a, int b )
{
    int max;
    if(a>b)
    max=a;
    else 
    max=b;
    return max;
    
}

2.解题思路


(1)文字描述

第一步:首先定义a和b两个变量
第二步;然后使用if语句判断a大于b时候的情况
第三步:当a<b时max=b。
第四步:最后返回max;
(2)流程图

(3)
本题调试过程碰到问题及解决办法


遇到的问题是编译错误;
使用断点进行调试之后发现由于粗心大意在int max( int a, int b )后面多加了一个分号。
将分号删除之后就解决了问题。
数组一:7-2 输出数组元素

1.实验代码

#include<stdio.h>
int main()
{
    int i, n, cnt = 0;
    int a[10];
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n - 1; i++)
    {
        a[i] = a[i + 1] - a[i];
    }
    for (i = 0; i < n - 1; i++)
    {
        if (i == 0)
        {
            printf("%d", a[0]);
        }
        else if (cnt == 3)
        {
            printf("\n");
            printf("%d", a[i]);
            cnt = 0; 
        }
        else
        {
            printf(" %d", a[i]);
        }
        cnt++; 
    }
    return 0;
}

2.解题思路

(1)文字描述

第一步:定义i, n, cnt = 0
第二步:输入n,然后设置for循环输入数组
第三步:利用a[i] = a[i + 1] - a[i]计算后项减前项之差
第四步:每行三个元素的格式cnt == 3,
第五步:cnt循环;
(2)流程图

(3)
本题调试过程碰到问题及解决办法


遇到的问题是编译错误;
使用断点进行调试之后发现定义的a【N】出现了错误;
N不是实际的量,将N改为题目要求的10便迎刃而解了。

数组二:
7-4 选择法排序
1.实验代码

#include <stdio.h>
int main()
{
    int i, j, min, temp, a[10];
    for(i = 0; i < 10; i++)
    {
        scanf("%d",&a[i]);
    }
    
    for(i = 0; i < 3;i++)
    {
        min=i;
        for(j = i+1; j <10; j++)
        {
            if(a[min] > a[j])
            {
                min=j;
            }
        }
       temp=a[i];
       a[i]=a[min];
       a[min]=temp;
            
    }
    for(i = 0; i < 10; i++)
    printf("%5d",a[i]);
    return 0;
}

2.解题思路

(1)文字描述

第一步:定义变量 i,n,读入n个数  temp 临时变量
第二步:
定义1个数组a,它有10个整型元素
第三步:利用for(i = 0; i < 3;i++)进行趟数控制
第四步:利用for(j = i+1; j <10; j++)起始交换位置
第五步:

利用temp=a[i];
a[i]=a[min];
a[min]=temp;进行交换;

第六步:输出最后结果;

(2)流程图

(3)本题调试过程碰到问题及解决办法



遇到的问题是答案错误
再用Devc++进行调试时发现没有编译错误,但在输出结果上发现5和6的位置没有改变。
后来发现在for(i = 0; i <= 3;i++)这个位置上趟数的控制应该是<3,而不是<=3,
将问题纠正以后,5和6果然换了位置。
三:个人总结
(1)这几周我学习了有关函数,数组的知识。我的收获是了解了什么是数组,
为什么要使用数组,以及怎么去定义数组,
我还学到了引用数组元素,并且知道了二维数组的元素在内存中(按行存放)即在内存中线顺序存放第一行的元素,
再存放第二行的元素。
(2)我觉得在何时使用数组这个地方是个难点。我用了多打代码这个方法,
并且理解其内涵观看网上视频了解了何时使用数组,并去定义数组。
四,(1)互评和学习进度
赵豪
张学健
周文豪
(2)表格和折线图
  代码行数 代码时间/h 博客字数 博客时间/h
第十二周 2700 15 0 0
第十三周 3200 18 1000 6
第十四周 1800 11 0 0
第十五周 2200 13 1100 5







 






 

 

 

posted @ 2018-12-20 19:26  六月初夏  阅读(235)  评论(11编辑  收藏  举报