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

    1.基础题:
    程序填空题:

    输入一个正整数 n (1≤n≤10)和n 阶方阵a的元素,如果方阵a中的所有元素都沿主对角线对称,输出“Yes”, 否则,输出“No”。主对角线为从矩阵的左上角至右下角的连线,方阵a中的所有元素都沿主对角线对称指对所有i, k,a[i][k]和a[k][i]相等。输入输出示例如下:

    输入:

    3
    1 2 3
    4 5 6
    7 8 9
    输出:

    No

    实验代码:

    #include <stdio.h>
    int main(void)	
    {	
       	int found, i, k, n;
       	int a[10][10];
    
       	scanf ("%d", &n);
       	for (i = 0; i < n; i++)	
       		for (k = 0; k < n; k++)
    			scanf("%d", &a[i][k]);
    
     	found = 1;
       	for (i = 0; i < n; i++){	
       		for (k = 0; k < i; k++){
       			if ((3分)) {	
    			    ;          
               	            break;
           	                 }
    		}
    		if (){
    			break;
       		}
      	}
    
      	if (found != 0){
      		printf("Yes
    ");
      	}  
      	else{
      		printf("No
    ");
      	}  
    
    	return 0;
    }
    

    实验思路:

    7-2 选择法排序

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

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

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

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

    编程代码:

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

    实验思路:

    错误截图:

    错误分析:格式错误。
    解决方法:阅读题目要求,按要求空格。

    运行截图:

    7-1 找鞍点

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

    本题要求编写程序,求一个给定的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

    编程代码:

    #include <stdio.h>
    int main()
    {
      int a[6][6],n,i,j;
      int k=0,y=0,flag=1,p=0;
      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++)
        {
          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;
    }
    

    实验思路:

    错误截图:

    错误分析:编程过程中出现错误。
    解决方法:运用编程软件找出错误并改正。
    运行截图:

    评价:找一个好绘图软件真难,同时编程时需要更加认真仔细。

  • 相关阅读:
    PAT (Advanced Level) 1080. Graduate Admission (30)
    PAT (Advanced Level) 1079. Total Sales of Supply Chain (25)
    PAT (Advanced Level) 1078. Hashing (25)
    PAT (Advanced Level) 1077. Kuchiguse (20)
    PAT (Advanced Level) 1076. Forwards on Weibo (30)
    PAT (Advanced Level) 1075. PAT Judge (25)
    PAT (Advanced Level) 1074. Reversing Linked List (25)
    PAT (Advanced Level) 1073. Scientific Notation (20)
    PAT (Advanced Level) 1072. Gas Station (30)
    PAT (Advanced Level) 1071. Speech Patterns (25)
  • 原文地址:https://www.cnblogs.com/leichen210/p/10579184.html
Copyright © 2011-2022 走看看