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

    第一题:
    7-2 选择法排序 (20 分)
    本题要求将给定的n个整数从大到小排序后输出。

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

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

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

    实验代码:
    复制代码
    1 #include<stdio.h>
    2 #include<stdlib.h>
    3 int main(int argc,char argv[])
    4 {
    5 int n;
    6 scanf("%d",&n);
    7 int p=(int)malloc(sizeof(int)
    n);
    8
    9 for(int i=0;i<n;i++)
    10 {
    11 scanf("%d",&p[i]);
    12 }
    13
    14 int index=p[0];
    15
    16 for(int i=0;i<n;i++)
    17 for(int j=0;j<n;j++)
    18 {
    19 if(p[i]<p[j])
    20 {
    21 index=p[j];
    22 p[j]=p[i];
    23 p[i]=index;
    24 }
    25 }
    26 for(int i=n-1;i>=0;i--)
    27 {
    28 printf("%d",p[i]);
    29 if(i!=0)
    30 printf(" ");
    31 }
    32 }
    设计思路:

    本题调试过程中遇到的问题及解决方法:
    由于以前写过该题目,所以没有错误.

    运行结果截图:

    第二题:
    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>
    2 #include<stdlib.h>
    3 int main(int argc,char argv[])
    4 {
    5 int n;
    6 scanf("%d",&n);
    7 int p=(int)malloc(sizeof(int
    )n);
    8
    9 for(int i=0;i<n;i++)
    10 p[i]=(int
    )malloc(sizeof(int)*n);
    11
    12 for(int i=0;i<n;i++)
    13 for(int j=0;j<n;j++)
    14 {
    15 scanf("%d",&p[i][j]);
    16 }
    17
    18 int i,j,index,high,flag=1;
    19
    20 for(i=0;i<n;i++)
    21 {
    22 index=p[i][0];
    23 high=0;
    24 for(j=0;j<n;j++)
    25 {
    26 if(index<=p[i][j])
    27 {
    28 index=p[i][j];
    29 high=j;
    30 }
    31 }
    32 flag=1;
    33 for(j=0;j<n;j++)
    34 {
    35 if(index>p[j][high])
    36 {
    37 flag=0;
    38 break;
    39 }
    40 }
    41
    42 if(flag1)
    43 {
    44 printf("%d %d",i,high);
    45 break;
    46 }
    47 }
    48 if(flag
    0)
    49 printf("NONE");
    50 }
    设计思路:

    本题调试过程中遇到的问题及解决方法:
    首先一开始只会用malloc定义一维数组,后面在网上查了资料,然后才定义出的二维数组,其次就是一直没有理解当有两个相同的最大值取后面那个最大值.

    运行结果截图:

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

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

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

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

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

    实验代码:
    复制代码

    include<stdio.h>

    include<stdlib.h>

    int main(int argc,char argv[])
    {
    int n,temp;
    scanf("%d",&n);
    int row=(int)malloc(sizeof(int)
    n);
    for(int i=0;i<n;i++)
    scanf("%d",&row[i]);
    for(int i=0;i<n;i++)
    {
    for(int j=0;j<n-i-1;j++)
    {
    if(row[j]<row[j+1])
    {
    temp=row[j+1];
    row[j+1]=row[j];
    row[j]=temp;
    }
    }
    }
    for(int i=0;i<n;i++)
    {
    printf("%d",row[i]);
    if(i!=n-1)
    printf(" ");
    }
    }
    运行结果截图:

    设计思路:

    本题调试过程及解决方案:
    一开始不知道冒泡和选择的差别在哪,到后面去网上看了一下差别,冒泡是两两递增的比较,而选择是一个比一个往后的比.
    学习总结:

    学习感悟:
    学习的东西总会忘记,也曾经多次想过放弃这个专业,可是一想到学计算机的人哪个脑子会不聪明,我就想挑战一下那些聪明脑袋的思想

  • 相关阅读:
    android调试推荐使用BlueStacks模拟器调试Android应用
    目录文件Oracle11g彻底删除
    进程间通信学习APUE学习进程间通信(4)
    android选择Windows 8 下配置Cocos2dx + Android + Eclipse 的开发环境
    windbg API 跟踪
    symchk 获取符号文件(PDB)
    acs for PEAPMSCHAPV2
    peapMSCHAPV2
    vs2005 "Key not valid for use in specified state"
    NetUserGetInfo NetUserAdd
  • 原文地址:https://www.cnblogs.com/lwmzei6/p/10575969.html
Copyright © 2011-2022 走看看