zoukankan      html  css  js  c++  java
  • 第四周作业

    这个作业属于那个课程:C语言程序设计
    这个作业要求在哪里:https://pintia.cn/problem-sets?tab=1
    我在这个课程的目标是:熟练使用C语言
    这个作业在哪个具体方面帮助我实现目标:帮我认识了数组 及其使用的方法
    参考文献:C语言程序设计书及助教

    选择法排序

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

    输入格式:

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

    输出格式:

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

    输入样例:

    4
    5 1 7 6
    

    输出样例:

    7 6 5 1
    

    实验代码:

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

    设计思路:

    本体遇到的问题及解决办法:

    问题 : 格式错误
    解决方法 : 问同学改为正确格式

    运行截图:

    心得和用时:用时 1小时左右 这题的代码思路主要是参考pta的基础题的填空题延伸,理解做题

    找鞍点

    一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
    本题要求编写程序,求一个给定的n阶方阵的鞍点。

    输入格式:

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

    输出格式:

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

    输入样例:

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

    输出样例:

    2 1
    

    输入样例:

    2
    1 7
    4 1
    

    输出样例:

    NONE
    

    实验代码:

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

    设计思路:

    本体遇到的问题及解决方法:

    问题 :部分正确
    解决方法 :看书学习 在同学的帮助下修改代码运行正确

    运行截图:

    心得和耗时:用时3个小时左右 这个题目较难,但是也有助于我们的知识提高看书和同学协作也是可以做出来的

    挑战作业

    冒泡法排序

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

    输入格式:

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

    输出格式:

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

    输入样例:

    4 
    75 71 77 76
    

    输出样例:

    77 76 75 71
    

    实验代码:

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

    设计思路:

    本体遇到的问题及解决方法:

    问题 :格式错误
    解决方法 : 先输出第一个数值 然后再用for语句循环输出下面的数(空格加在前面)

    运行截图:

    心得和用时:用时1个小时左右 这题虽然代码较简单但是思路较为难想出。总之,有挑战性。

  • 相关阅读:
    搜索回车跳转页面
    登录验证码
    【排序算法】排序算法之插入排序
    PAT 乙级 1044 火星数字 (20 分)
    PAT 甲级 1035 Password (20 分)
    PAT 甲级 1041 Be Unique (20 分)
    PAT 甲级 1054 The Dominant Color (20 分)
    PAT 甲级 1027 Colors in Mars (20 分)
    PAT 甲级 1083 List Grades (25 分)
    PAT 甲级 1005 Spell It Right (20 分)
  • 原文地址:https://www.cnblogs.com/zzwwll/p/10579844.html
Copyright © 2011-2022 走看看