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

       
    作业属于课程 C语言程序设计
    作业要求 普通链接
    课程目标 希望通过学习,学会更多排序的方法
    作业哪方面帮助我实现目标 学到了选择排序和冒泡排序算法,二维数组的定义和使用
    参考文献 [普通链接]https://baike.sogou.com/v111984.htm?fromTitle=冒泡排序法

    第一题

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

    实验代码

    #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 (a[i][k]!=a[k][i])  {      
    	        found=0;          
               	        break;
           	                 }
    		}
    		if (found==0){
    			break;
       		}
      	}
    
      	if (found != 0){
      		printf("Yes
    ");
      	}  
      	else{
      		printf("No
    ");
      	}  
    	return 0;
    }
    

    设计思路(只包含填空内容)

    第一步:a[i][k]不等于a[k][i],则found等于0,break跳出。
    第二步:跳出进行判断,found是否等于0
    第三步:输出结果

    本题调试过程遇到的问题及解决方法

    思路错误,答案错误。
    解决方法:助教在班上讲了一下,就明白了。

    运行截图:无

    完成时间:十几分钟

    第二题

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

    实验代码

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

    设计思路

    第一步:编译头文件
    第二步:定义变量
    第三步:输入n,输入a[i]
    第四步:max存放最大值所在的下标
    第五步:寻找最大值
    第六步:输出结果

    本题调试过程遇到的问题及解决方法

    问题:未注意题目格式要求,忘记先输出a[0]

    解决方法:助教帮助解决

    流程图

    运行结果截图

    完成时间及心得

    时间:十几分钟
    心得:和书上相似,学会举一反三

    第三题

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

    实验代码

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

    设计思路

    第一步:编译头文件
    第二步:定义变量
    第三步:输入数
    第四步:开始循环,规定循环次数
    第五步:开始比较大小,排序,每次n--i次
    第六步:输出结果

    本题调试遇到问题及解决方法

    问题:未找到循环次数的规律,代码不规范

    解决方法:问了学委,自己摸索。

    流程图

    运行结果截图

    完成时间及心得

    完成时间:一小时
    心得:好好学习,天天向上

    第四题

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

    实验代码

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

    设计思路

    第一步:编译头文件
    第二步:定义变量
    第三步:输入矩阵
    第四步:找出一行中最大的值,记下位置
    第五步:判断flag
    第六步:判断它所在列中是否有比它小的数
    第七步:再判断flag,输出结果

    本题调试过程遇到问问题及解决方法


    解决方法:调试许多次,问室友琢磨好久解决的

    流程图

    运行结果截图

    学习进度统计


  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/yuhaner/p/10581086.html
Copyright © 2011-2022 走看看