一
(1) 所属课程:选择法排序 。
作业要求:https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937281
课程目标:学会运用数组运算,学习数组运算方法。
作业的运用:运用选择排序法将数组从大到小排序。
参考文献:c语言程序设计
#include<stdio.h>
int main ()
{
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]);
}
return 0;
}
(2)设计思路
(3)问题与解决办法
问题1:按照书上的例题写,少了一个步骤。
解决办法:重新阅读所写代码,发现最大值下标未变。
问题2:未按照要求输出,输出无空格。
解决办法:发现输出后数字无空格,便添加空格并将第一个数字做无空格处理。
(4)运行结果
(1)所属课程:找鞍点
作业要求:https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937282
课程目标:学会运用数组运算,学习数组运算方法。
作业的运用:找出行中最大,列中最小值。数组进一步运用。
参考文献:c语言程序设计
#include<stdio.h>
int main ()
{
int i,j,k,row=0,col=0,flag=1,n;
int a[6][6];
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
if(n==1)
printf("0 0");
else{
for(i=0; i<n; i++)
{
row=i;
for(k=0;k<n;k++)
if(a[i][k]>=a[i][col]){
col=k;
}
for(j=0;j<n;j++)
if(a[j][col]<a[row][col]){
row=j;
break;
}
if(i==row)
{
flag=0;
break;
}
}
if(flag==0)
printf("%d %d",i,col);
else
printf("NONE");
}
return 0;
}
(2)设计思路
(3)错误及解决办法
错误1:编写代码时运用for 的嵌套时赋值错误。
解决办法:运用Dev-c++运算,答案错误,修改代码。
错误2:定义数组后,循环次数用6.一开始row col没有赋值。
解决办法:因为只是部分错误,所以运用Dev-c++不断编译运行,修改。
(4)运行结果
7-1作业所属课程: 冒泡法排序
作业要求:https://pintia.cn/problem-sets/1107461872653131776/problems/1107464690202009600
课程目标:学会运用数组运算,学习数组运算方法。
作业的运用:冒泡排序法
参考文献:网上资料。
#include<stdio.h>
int main ()
{
int i,k,n,temp;
int a[10];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(k=0;k<n;k++){
for(i=0;i<n-1-k;i++){
if(a[i]<a[i+1]){
temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
}
}
printf("%d", a[0]);
for(i=1;i<n;i++){
printf(" %d", a[i]);
}
return 0;
}
(2)设计思路
(3)错误及解决办法
错误:写代码时把最大值运用进去,造成代码编写混乱。
解决办法:查找冒泡排序法根据网上的资料,询问搭档。弄清两个排序法的区别。
(4)运行结果
二.学习进度统计
三.心得
这次作业难度并没有上次难度那么大,但是花的时间却更多。比如制作图表等,其实都没有真正完成。而对于代码,冒泡排序法一开始我并没有学过,搭档教的具体流程。此外,还存在一些代码格式问题的错误,下次看代码时会比较注意代码的缩进。