zoukankan      html  css  js  c++  java
  • 第四周编程总结

    这个作业属于哪个课程 c语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2774
    我在这个课程的目标是 我希望学习到更多的知识使自己编程越来越快
    这个作业在哪个具体方 这个作业让我知道了选择排序和冒泡排序算法,二维数组的定义和使用
    面帮助我实现目标 让我对数组的知识的了解更加深入了
    参考文献 选择排序算法,冒泡排序

    7-2 选择法排序 (20 分)

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

    输入格式:

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

    输出格式:

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

    输入样例:

    4
    5 1 7 6
    

    输出样例:

    7 6 5 1
    

    1.代码

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

    2.思路流程

    3.本题遇到的问题及解决办法

    问题:运行时报错
    解决办法:重新审题,发现忽视了题目要求的空格问题,改正后正确

    4.运行截图

    7-1 找鞍点 (20 分)

    一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

    本题要求编写程序,求一个给定的n阶方阵的鞍点。

    输入格式:

    输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。

    输出格式:

    输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。

    输入样例1:

    4
    1 7 4 1
    4 8 3 6
    1 6 1 2
    0 7 8 9
    

    输出样例1:

    2 1
    

    输出样例2:

    NONE
    

    1.代码

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

    2.思路总结

    3.本题遇到的问题及解决办法

    问题:做题时不知道如何去找到鞍点,思路没有顺明白
    解决办法:询问同学,知道分两种情况,一种是当n=0时,若数组存在鞍点,则输出a[0][0],但若不存在,则需先找出数组中每行中最大的数,然后判断这些最大的数哪一个在其所在的列中为最小的数,找出则得到了鞍点并输出,若找不出,则无鞍点并输出NONE。

    4.运行结果截图


    7-1 冒泡法排序 (10 分)

    输入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 karry,i,x,n;
    	int a[921];
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	scanf("%d",&a[i]);
    	for(i=0;i<n;i++)
    	{
    		for(x=0;x<n-i;x++)
    		{
    			if(a[x]<a[x+1])
    			{
    			karry=a[x];
    			a[x]=a[x+1];
    			a[x+1]=karry;	
    			}
    		}
        }
        for(i=0;i<n;i++){
        printf("%d",a[i]);
        if(i!=n-1)
        printf(" ");
        }
        return 0;
    }
    

    2.思路总结

    3.本题遇到的问题及解决办法

    问题:冒泡排序法的运用不了解
    解决办法:查询资料,理解其与选择排序法的不同之处,及运用方法。

    4.运行结果截图

    5.进度条

    周/日期 这周所花时间 代码行数 知识点简介 目前比较迷惑的问题
    3/4-3/10 五个多小时 30 编写程序时处理文件 fprintf语句和fscanf语句的运用有些地方还有稍许疑惑
    3/11-3/15 四天 65 二维数组的运用 二维数组的运用还存在稍许疑惑
    3/17-3/22 三天 108 二维数组的定义及运用,选择排序法和冒泡排序法的运用 冒泡排序法的运用还存在稍许问题

    6.本周感悟

    本周作业的截止时间提前了,增加了我早点完成作业的迫切感,提高了学习效率,当然也减少了自己许多的休息时间,同时我也学习到了许多新的知识,希望下周再接再厉

  • 相关阅读:
    API创建员工联系人
    API创建员工Element
    API创建员工
    API创建员工支付方式
    用API创建用户
    用API给用户添加职责
    创建银行API
    创建银行分行的API
    初探C++ 深拷贝与浅拷贝
    推断数据是否为整数
  • 原文地址:https://www.cnblogs.com/linkedashewaixueyuan/p/10580881.html
Copyright © 2011-2022 走看看