第14、15教学周作业

7-2 查找整数
1.实验代码

#include <stdio.h>
int main()
{
	int a[20];
	int b,c,d,e;
	scanf("%d %d",&b,&c);
	for(d = 1,e = 0;d <= b;d = d + 1,e = e + 1)
	{
		scanf("%d",&a[e]);
	}
	d = 1;
	e = 0;
	while(d <= b)
	{
		if(a[e] == c)
		{
			printf("%d",e);
			return 0;
		}
		e = e + 1;
		d = d + 1;
	}
	printf("Not Found");
}

2.设计思路
(1)
第一步:定义输入数字数量,查找数字b,c数组a。
第二步:循环输入数组。
第三步:在循环中判定是否数组中的数字等于查找数字,符合输出并结束,不符合继续循环,结束后输出Not Found。
(2)

3.本题调试过程碰到问题及解决办法
运行结果发现数字和Not Found一同输出,之后在输出后添加return 0后结果正确。

7-3 选择法排序
1.实验代码

#include<stdio.h>
int main()  
{  
	int a[10];
  	int b,c,d,f;
  	scanf("%d",&b);
  	for(c = 0,d = 1;d <= b;c = c + 1,d = d + 1)
  	{
  		scanf("%d",&a[c]);
	}
	for(d = 1;d <= b;d = d + 1)
	{
		for(c = 0;c < b - d;c = c + 1)
		{
			if(a[c] < a[c + 1])
			{
				f = a[c];
				a[c] = a[c + 1];
				a[c + 1] = f;
			}
		}
	}
	d = 1;
	c = 0;
	while(d <= b)
	{
		if(d == 1)
		{
			printf("%d",a[c]);
		}else
		{
			printf(" %d",a[c]);
		}
		c = c + 1;
		d = d + 1;
	}
}  

2.设计思路
(1)
第一步:定义数组a[10],输入整数b,c,d,f,输入数量。
第二步:循环输入数组a。
第三步:循环b次判断a[c]小于a[c + 1],符合将a[c + 1]和a[c]交换。
第四步:循环输出数组。
(2)

3.本题调试过程碰到问题及解决办法
一开始定义数组范围太大,按照题目要求更改后正确。

7-1 求整数序列中出现次数最多的数
1.实验代码

#include<stdio.h>
int main()  
{  
	int a[1000];
	int e[1000] = {0};
	int b,c,d,f,g,h,m;
	scanf("%d",&d);
	if(d == 1)
	{
		scanf("%d",&m);
		printf("%d 1",m);
		return 0;
	}
	for(b = 0,c = 1;c <= d;b = b + 1,c = c + 1)
	{
		scanf("%d",&a[b]);
	}
	for(c = 1,f = 0,g = 0;c <= d;c = c + 1,f = f + 1,g = g + 1)
	{
		for(b = 0;b < d;b = b + 1)
		{
			if(a[g] == a[b])
			{
				e[f] = e[f] + 1;
			}
		}
	}
	c = 1;
	f = 0;
	while(c <= d)
	{
		if(c == 1)
		{
			h = e[f];
		}else
		{
			if(e[f] >= e[f - 1])
			{
				h = e[f];
				m = f;
			}else
			{
				h = h;
			}
		}
		c = c + 1;
		f = f + 1;
	}
	printf("%d %d",a[m],h);
}

2.设计思路
(1)
第一步:定义数组a[1000], e[1000],整数型b,c,d,f,g,h,m。
第二步:输入数字量,判断输入为1时输入数字再输出数字和1并结束。
第三步:循环输入数组a。
第四步:在循环中判断当数字在数组中相等时数组e加1。
第五步:找出数组e中最大值和对应项。
第六步:输出最大值和项。
(2)

3.本题调试过程碰到问题及解决办法
数组定义范围错误,更改后正确。

7-1 判断上三角矩阵
1.实验代码

#include <stdio.h>
int main()
{
	int a,b,c,d,e,f;
	int m[10][10];
	scanf("%d",&a);
	e = 1;
	while(e <= a)
	{
		scanf("%d",&b);
		for(c = 0;c < b;c = c + 1)
		{
			for(d = 0;d < b;d = d + 1)
			{
				scanf("%d",&m[c][d]);
			}
		}
		for(c = 0,f = 0;c < b;c = c + 1)
		{
			for(d = 0;d < b;d = d + 1)
			{
				if(c > d)
				{
					if(m[c][d] != 0)
					{
						f = 1;
					}
				}
			}
		}
		if(f == 0)
		{
			printf("YES");
		}
		else if(f == 1)
		{
			printf("NO");
		}
		if(e < a)
		{
			printf("\n");
		}
		e = e + 1;
	}
} 

2.设计思路
(1)
第一步:定义整数型a,b,c,d,e,f,数组m[10][10]。
第二步:输入待测矩阵的个数a。
第三步:输入数组m[c][d]。
第四步:判断当上三角矩阵不为零时令f等于1。
第五步:判断当f为零时输出YES为1时输出NO。
(2)

3.本题调试过程碰到问题及解决办法
一开始题意理解不对,经重新审题后正确。

要求三
1.git地址
https://git.coding.net/z732511533/ZYS.git
2.截图

个人总结
(1)本周你学习了哪些内容?
学习了数组的应用,冒泡排序法,二维数组。
(2)本周所学内容中你觉得哪些是难点?
冒泡排序的升降排序,二维数组的使用。

互评和学习进度
1.点评
高立彬:http://www.cnblogs.com/gao628526/p/7931800.html
班庆泽:http://www.cnblogs.com/wsbqz/p/7965666.html
于耀淞:http://www.cnblogs.com/jsjyys/p/7955576.html
2.表格和折线图

时间 代码行数 时间1(min) 博客字数 时间2(min) 知识点
11.20 120 40 0 0 数组
11.21 100 40 0 0 数组
11.22 180 50 0 0 数组
11.23 160 40 0 0 数组
11.24 150 40 0 0 数组
11.25 140 40 0 0 数组
11.26 100 40 0 0 数组
11.27 80 40 0 0 二维数组
11.28 100 40 0 0 二维数组
11.29 60 40 0 0 二维数组
11.30 70 30 0 0 数组
12.01 30 10 0 0 数组
12.02 20 10 0 0 数组
12.03 40 10 587 250 数组

posted @ 2017-12-03 23:45  左右羽  阅读(185)  评论(3编辑  收藏  举报