zoukankan      html  css  js  c++  java
  • 春季学期第四周作业

    这个作业属于哪个课程 C语言程序设计2

    这个作业要求在哪里 2019年春季学期第四周作业
    我在这个课程的目标是 我希望能够通过学习C语言的知识,实现编写类似“五子棋”的游戏。
    这个作业在哪个具体方面帮助我实现目标 这个作业让我知道了选择排序法和冒泡排序算法,及其二者的区别,二维数组的定义和使用,让我对数组的知识更加深入的了解。
    参考文献 排序算法;冒泡算法

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

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

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

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

    输入样例:

    4
    5 1 7 6
    

    输出样例:

    7 6 5 1
    

    1、实验代码:

    #include<stdio.h>
    int main()
    {
    	int i, index, k, n, j;
    	int a[10];
    	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;
    			j=a[index];
    			a[index]=a[k];
    			a[k]=j;
    	}
    	printf("%d", a[0]);
    	for(i=1; i<n; i++)
    		printf(" %d", a[i]);
    	return 0;	
    }
    

    2、流程图:

    3、运行截图:

    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:

    2
    1 7
    4 1
    

    输出样例2:

    NONE
    

    1、实验代码:

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

    2、设计思路:
    1.循环输入数组
    2.先排序,用嵌套
    3.比较,最后输出
    3、运行截图:

    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>
    void bubble (int a[],int n);
    int main(void)
    {
    	int n,k,b=0,i=0;
    	int a[10];
    	scanf("%d",&n);
    	for(i=0;i<n;i++){
    		scanf("%d",&a[i]);
    	}
    	bubble (a,n);
    	for(k=0;k<n;k++){
    		if(k<=n-2){
    			printf("%d ",a[k]);
    		}
    		else{
    			printf("%d",a[k]);
    		}
    	}
    	return 0;
    }
    void bubble (int a[],int n)
    {
    	int i,k,b;
    	for(k=1;k<n;k++){
    		for(i=0;i<n-k;i++){
    			if(a[i]<a[i+1]){
    		        b=a[i];a[i]=a[i+1];a[i+1]=b;
    		    }
    		}
    	}
    }
    

    2、编程中的错误:
    开始以为是从小到大排序

    3、运行截图:

  • 相关阅读:
    LeetCode——Generate Parentheses
    LeetCode——Best Time to Buy and Sell Stock IV
    LeetCode——Best Time to Buy and Sell Stock III
    LeetCode——Best Time to Buy and Sell Stock
    LeetCode——Find Minimum in Rotated Sorted Array
    Mahout实现基于用户的协同过滤算法
    使用Java对文件进行解压缩
    LeetCode——Convert Sorted Array to Binary Search Tree
    LeetCode——Missing Number
    LeetCode——Integer to Roman
  • 原文地址:https://www.cnblogs.com/caoe666/p/10578564.html
Copyright © 2011-2022 走看看