第二次作业

作业要求: https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_3/homework/2503

函数:找出两个数中最大值;

实验代码:

#include <stdio.h>
int max( int a, int b ){
    int max;
    if(a>b)
    max=a;
    else
    max=b; 
}
int main()
{    
    int a, b;

    scanf("%d %d", &a, &b);
    printf("max = %d\n", max(a, b));

    return 0;
}

解题思路:

(1)

第一步:定义函数max,定义变量max,判断a、b的大小关系,将大的值赋给max;

第二步:定义主函数;

第三步:定义a、b;

第四步:输入a、b;

第五步:输出max;

(2)

调试中所遇问题及解决方法:

1、定义函数后加分号多余;(delete“;”)

2、max函数中返回值0,导致所得数据错误;(delete“return 0;”)

数组1:交换最大值和最小值;

实验代码:

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

解题思路:

(1)

第一步:定义数组、变量min、max及相应变量n、i;

第二步:输入数组中的元素个数输入数组中元素;

第三步:将数组中第一个元素的值赋给max与min,

第四步:依次将数组中的元素与min相比,将最小值赋给min;

第五步:将最小值与数组中第一个元素互换;

第六步:依次将数组中元素与max相比,将最大值赋给max;

第七步:将最大值与数组中最后一个元素互换;

第八步:输出数组元素;

(2)

编程中所遇问题及解决方法:

1、将数组第一个元素误以为是a[1];(数组中第一个元素为a[0])

2、输出数组输出有误;(应循环输出数组元素)

 

 

数组2:简化的插入排序;

实验代码:

#include <stdio.h>
main()
{
    int n,i,j,x,a[11];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    scanf("%d",&x);
    i=0;
    while(a[i]<x&&i<n)
         i++;
    for (j=n-1;j>=i;j--)
    {
        a[j+1]=a[j];
    }
    a[i]=x;
    for(i=0;i<n+1;i++)
    printf("%d ",a[i]);
}

解题思路:

(1)

第一步:定义数组及其相关变量;

第二步:输入数组元素个数及其元素;

第三步:输入所插入常数;

第四步:从第一个元素依次判断是否小于所插入常数,若判断完或数组元素大于所插入元素即停止;

第五步:将大于所插入常数的数组元素序列依次向后加一;

第六步:输入数组元素;

(2)

调试中所遇问题及解决方法:

1、”&&“与”||“算数符混淆;(将”||“换成”&&“)

2、最后输出数组元素时少输出一个;(将a[n]换成a[n+1])

 

 

 

 总结:

1、定义函数后加分号多余;

2、数组中第一个元素为a[0];

3、输出数组时用for循环语句输出;

4、定义函数后不用加”;“;

5、”&&“:与,”||“:或,”!“非;

6、三目运算符:”A?B:C;“,先判断A的值是否为真,若为真则执行B,若为假则执行C;

7、多维数组:int num[3][4]={{1,2,3,4}{5,6,7,8}{4,3,2,1}{8,7,6,5}};

<现在睡觉的话会做梦,而现在学习的话会让梦实现>

 评论:

于桐: 于桐同学的作业还是很优秀的,不过第一个流程图为什么要给两遍呢,第二个题的解题思路是否有点过于简单呢,个人观点仅供参考^-^。

王文琪:王文琪同学的作业完成的很完美 对于学习的总结很到位 值得我去学习 相信你在你的努力下会变得更加优秀

崔凤宇:崔凤宇同学的作业内容很清晰,不过我觉得解题步骤是否过于简化,没能明确反应接下来的流程图,相信你能在接下来的学习中更优秀。

图表:

时间

十三周 十四周 十五周 十六周 十七周
博客字数 0 0 0 129 217
代码行数 92 84 102 98 117

 

posted on 2018-12-17 19:33  知玹的男朋友  阅读(192)  评论(13编辑  收藏  举报