第十四周十五周作业

我爱学习,我爱C语言。
题目:7-4 交换最小值和最大值
1.实验代码:

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

2.设计思路:
第一步:定义 变量i,n,m,t,max,min;定义数组a[10]。
第二步:定义数组a[i]的外层循环,定义内层循环。
第三步:在内层循环中用if,else区分各种情况。
第四步:输出交换后的序列。

(2)流程图:

3.本题调试过程碰到问题及解决办法:
①本题在pta中未提交,提交pta之前没想到用内外两个循环,也是第二天上课才想到可以运用内外两个循环。在最初构思中都是采取将所有情况一一列出,而就是在这种情况下,编译器多次无法通过导致我放弃这道题。
②在内循环中多次将i=i+1错误编译为i=i++导致编译超时。回想可能出现超时的情况,发现了i++的错误。

7-5 冒泡法排序
1.实验代码:

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

2.设计思路:
第一步:定义 变量i,n,m,b,c;定义数组a[n+1]。
第二步:输入n和c。
第三步:将数据存入数组a[i]。
第四步:用for内外循环。
第五步:输出按照格式输出数组。
(2)流程图:

3.本题调试过程碰到问题及解决办法:
①for循环最初就是搞不懂谁应该在外面谁应该在里面,多次尝试后才确定下来。应该就是没有顺清思路导致出现的这个问题。

要求三:
代码托管:https://coding.net/u/zxb0419/p/zuoye/git/tree/master/

四:个人总结
(1)本周你学习了哪些内容?收获了什么?
学习了冒泡循环,一维数组,二维数组。掌握了循环的知识,学会了数组。
(2)本周所学内容中你觉得哪些是难点?有哪些知识点还不明白?
冒泡循环,多种循环在一起的嵌套。嵌套循环不能熟练掌握。

五:互评和学习进度
1、点评3个同学的本周作业,并邀请3名同学点评你的作业。
周天:http://www.cnblogs.com/zt123/p/7967080.html
曹琦:http://www.cnblogs.com/blueblog6/p/7886541.html
郑鑫:http://www.cnblogs.com/blueblog6/p/7886541.html

2、表格和折线图:


posted @ 2017-11-30 18:50  天才!  阅读(187)  评论(7编辑  收藏  举报