第四周编程总结

一、作业

这个作业属于哪个课程 C语言程序设计ll
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2774)
我在这个课程的目标是 希望能多了解数组的算法,以后碰见类似的题目时能够不出错误的做出来
这个作业在哪个具体方面帮助我实现目标 这个作业让我大概了解了选择排序法和冒泡排序法,并且对数组有了更深入的了解
参考文献 https://blog.csdn.net/bruno231/article/details/6668024)

基础题

7-2 选择法排序

本题要求将给定的n个整数从大到小排序后输出。

输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

输入样例:
4
5 1 7 6
输出样例:
7 6 5 1

1、实验代码

#include<stdio.h>
int main(void)
{
    int i,k,n,temp,index; 
    int a[10];
    char op=' ';
    
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(k=0;k<n-1;k++) 
    {
        index=k;
        for(i=k+1;i<n;i++)
            if(a[i] > a[index])
                index=i;    
            temp=a[index];
            a[index]=a[k];
            a[k]=temp;
    } 
    printf("%d",a[0]);
    for(i=1;i<n;i++)
    {
        printf("%c%d",op,a[i]);
    }
    printf("
");
    
    return 0;
 }

设计思路

3、本题调试过程碰到问题及解决办法:

照着书上的例题弄没什么问题

4、运行结果截图:

1、实验代码

#include<stdio.h>
int main(void)
{
    int n,i,j,x,y,t,z;
    int a[6][6];
    
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    x=y=z=0;
    t=1;
    for(i=0;i<n;i++)          
    {
        z=i;
        for(y=0;y<n;y++)
        {
            if(a[i][x]<=a[i][y])
            {
               x=y;
            } 
        }
        for(j=0;j<n;j++) 
        {
            if(a[z][x]>a[j][x]) 
            {
                z=j;
                break;
             }  
        }
        if(i==z) 
        {
            t=0;
            break;
        }
    }
    if(t==0)
    {
        printf("%d %d",i,x);
    }
    else
    {
        printf("NONE");
    }    
    
    return 0;
 } 

2、设计思路

3、本题调试过程碰到问题及解决办法:

这个题书上也有例题稍微改一下就行问题不大

4、运行将结果截图

挑战题

**7-1 冒泡法排序 **

输入1个正整数n(1<=n<=10),然后输入n个整数并存放在数组中,将这n个整数从大到小排序后输出,相邻数字间有一个空格,行末不得有多余空格。

输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

输入样例:
4
75 71 77 76
输出样例:
77 76 75 71

1、实验代码

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

2、设计思路

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

这个题用前面的题也可以解决但是不行,出了一点问题,但不过稳同学还是搞定了

4、运行结果截图

学习进度条

周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较迷惑的问题
2/25-3/3 48h 45 数组的认识及用法 数组长度的理解
3/4-3/10 36h 37 编写程序时处理文件 fscanf与fprintf的具体用法
3/11-3/17 46h 55 定义文件,以及文件的导入导出和读写 二维数组的用法、上三角的判断及文件的处理
3/17-3/22 15h 66 选择排序法、二分查找法 不清楚选择排序法和冒泡排序法的区别

学习感悟

这周主要还是讲的数组,讲了二维数组,并且讲了选择排序法还有二分法,还有挑战题的冒泡法,还是对冒泡法存在疑惑
分布清楚选择排序法和冒泡法的区别。这周自己也将前面的知识复习了下,稍微跟进点了进度,但还是不够后面也会越来越难。还是要继续加油!!!

原文地址:https://www.cnblogs.com/zx666/p/10580988.html