第四周编程总结

 

本次作业所属课程

C语言程序设计||

本次作业要求

不能晚交,迟交,缺交,抄袭

我在这个课程的目标是

熟练使用数组和循环

本次学习在哪些具体方面帮组我实现目标

学会画流程图

参考文献

排序算法:冒泡排

 

题目一:选择法排序

1)实验代码

#include<stdio.h>
int main(void)
{

  int i,j,max,n,temp,a[10];
  
  scanf("%d",&n);
  
  for(i=0;i<n;i++)
    {
      
    scanf("%d",&a[i]);
    
  }
  for(i=0;i<n;i++)
    {
    max=i;
    
      for(j=i+1;j<n;j++)
             {
           if(a[j]>a[max]) 
                   {
                     max=j;
                 }
          }
      temp=a[max];
      a[max]=a[i];
      a[i]=temp;
  }
    printf("%d",a[0]);
    
    for(i=1;i<n;i++)
         {
        printf(" %d",a[i]);
       }
    return 0;
}

2)设计思路

 

3)本题调试过程中遇到的问题及解决办法

这个题目主要是最后一句话行末不得有空格我理解错了,查了一下百度,其余的问题不大

4)运行结果截图

题目二:找鞍点

1)代码截图

 

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

2)设计思路

 

 

3)本题遇到的问题及解决方案

这题我是真的不会写,问了室友,自身能力有待加强写不出来

4)运行结果截图

题目三:冒泡法排序

1)代码截图

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

2)设计思路

 

 

3)本题调试过程遇到的问题及解决方案

这题我参考了书上191上的冒泡排序,利用指针及自定义函数解决了这道题,还是得多多练习,自身能力不足

4)运行结果截图

二、学习进度条

时间

这周所花时间

代码行数

学到的知识简介

目前比较迷惑的问题

第一周

5小时

80

初步了解数组

数组的引用

第二周

6小时

200

指针的了解

完全没听懂老师上课在讲什么,继续努力

第三周

7小时

200

文件与数组的使用

没看到代码运行后文件的内容发生改变

第四周

9小时

120

冒泡法,选择排序法

冒泡法不会

 

 

posted @ 2019-03-22 20:32  ღ阿ོ茶꧔ꦿ༊  阅读(168)  评论(1编辑  收藏  举报