第二次作业

一。

作业连接     https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502

二。

 函数.统计个位数字:

int Count_Digit ( const int N, const int D )//接口定义
{
  int n = abs(N), m = 0;//定义初始值
  if(D == 0 && n == 0)  return 1;//如果n=0,则输出1
  while(n != 0)//当n不等于0
  {
    if(n % 10 == D)  m++;//n对10取余为D,m=m+1
    n /= 10;//n=n/10
  }
  return m;//输出m
}

过程描述:接口定义,定义初始值,判断n是否等于0,如果等于0则输出1,如果不等于0则进入while循环m++,n/=10.

 

 

 错误提示:最后结束时要输出的是m而不是0.

改正方法:看前面定义要输出的是什么,把0改成m.

 数组.1:7-4 求一组数中的最大值和次最大值

#include<stdio.h>
int main()
{
    const int N=10;
    int a[N];
    int i;
    int p,q;
    int cmax,max;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    max=a[0];
    cmax=a[0];
    for(i=1;i<10;i++)
    {
        if(max<a[i])
        {
            max=a[i];
            p=i;
        }
    }
    for(i=1;i<10;i++)
    {
        if(cmax<a[i]&&i!=p)
        {
            cmax=a[i];
        }
    }
    printf("max=%d,cmax=%d",max,cmax);
    return 0;
}

2.解题思路

第一步:定义变量

第二步:输入数组中的数,使max=a[0];cmax=a[0];

第三步:建立for循环

第四步:在for循环中建立if判断语句条件为max<a[i]?

第五步:在for循环中建立if判断语句条件为cmax<a[i]&&i!=p?

 

 第一次没有想到编号的用法导致一直没有满足题目要求,然后对比了其他的代码发现这点错了。

数组二:7-4 选择法排序

#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;
}

解题思路

(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;进行交换;

第五步:输出最后结果;

 

 

 

 

遇到的问题是答案错误
再用Devc++进行调试时发现没有编译错误,但在输出结果上发现5和6的位置没有改变。
后来发现在for(i = 0; i <= 3;i++)这个位置上趟数的控制应该是<3,而不是<=3,
将问题纠正以后,5和6果然换了位置。

三。个人总结

这几周一直学的是数组,我觉得我自己没有学到如何灵活运用数组,出现了错误后不知道该如何改正,需要看别人的代码。

看了教材上的觉得作业不是很大,就是感觉自己总是想不出来该如何往下进行。

四。互评和学习进度

1)https://www.cnblogs.com/hanjiale/p/10151736.html#4144586    韩家勒

      https://www.cnblogs.com/promise-781465023/p/10133773.html#4144593    周文豪

      https://www.cnblogs.com/dnayun/p/10139147.html#4144595    赵豪

2)

 

posted @ 2018-12-21 18:04  西水  阅读(329)  评论(10编辑  收藏  举报