第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 | 数组 |