您的位置:首页 > 其它

第14、15教学周作业

2017-12-03 23:45 218 查看
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);
}
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.本题调试过程碰到问题及解决办法

数组定义范围错误,更改后正确。



[b]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.201204000数组
11.211004000数组
11.221805000数组
11.231604000数组
11.241504000数组
11.251404000数组
11.261004000数组
11.27804000二维数组
11.281004000二维数组
11.29604000二维数组
11.30703000数组
12.01301000数组
12.02201000数组
12.034010587250数组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: