第四周编程总结
一、作业
这个作业属于哪个课程 | C语言程序设计ll |
---|---|
这个作业要求在哪里 | (https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2774) |
我在这个课程的目标是 | 希望能多了解数组的算法,以后碰见类似的题目时能够不出错误的做出来 |
这个作业在哪个具体方面帮助我实现目标 | 这个作业让我大概了解了选择排序法和冒泡排序法,并且对数组有了更深入的了解 |
参考文献 | (https://blog.csdn.net/bruno231/article/details/6668024) |
基础题
7-2 选择法排序
本题要求将给定的n个整数从大到小排序后输出。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4
5 1 7 6
输出样例:
7 6 5 1
1、实验代码
#include<stdio.h>
int main(void)
{
int i,k,n,temp,index;
int a[10];
char op=' ';
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(k=0;k<n-1;k++)
{
index=k;
for(i=k+1;i<n;i++)
if(a[i] > a[index])
index=i;
temp=a[index];
a[index]=a[k];
a[k]=temp;
}
printf("%d",a[0]);
for(i=1;i<n;i++)
{
printf("%c%d",op,a[i]);
}
printf("\n");
return 0;
}
设计思路
3、本题调试过程碰到问题及解决办法:
照着书上的例题弄没什么问题
4、运行结果截图:
1、实验代码
#include<stdio.h>
int main(void)
{
int n,i,j,x,y,t,z;
int a[6][6];
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
x=y=z=0;
t=1;
for(i=0;i<n;i++)
{
z=i;
for(y=0;y<n;y++)
{
if(a[i][x]<=a[i][y])
{
x=y;
}
}
for(j=0;j<n;j++)
{
if(a[z][x]>a[j][x])
{
z=j;
break;
}
}
if(i==z)
{
t=0;
break;
}
}
if(t==0)
{
printf("%d %d",i,x);
}
else
{
printf("NONE");
}
return 0;
}
2、设计思路
3、本题调试过程碰到问题及解决办法:
这个题书上也有例题稍微改一下就行问题不大
4、运行将结果截图
挑战题
**7-1 冒泡法排序 **
输入1个正整数n(1<=n<=10),然后输入n个整数并存放在数组中,将这n个整数从大到小排序后输出,相邻数字间有一个空格,行末不得有多余空格。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4
75 71 77 76
输出样例:
77 76 75 71
1、实验代码
#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、运行结果截图
学习进度条
周/日期 | 这周所花的时间 | 代码行数 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
2/25-3/3 | 48h | 45 | 数组的认识及用法 | 数组长度的理解 |
3/4-3/10 | 36h | 37 | 编写程序时处理文件 | fscanf与fprintf的具体用法 |
3/11-3/17 | 46h | 55 | 定义文件,以及文件的导入导出和读写 | 二维数组的用法、上三角的判断及文件的处理 |
3/17-3/22 | 15h | 66 | 选择排序法、二分查找法 | 不清楚选择排序法和冒泡排序法的区别 |
学习感悟
这周主要还是讲的数组,讲了二维数组,并且讲了选择排序法还有二分法,还有挑战题的冒泡法,还是对冒泡法存在疑惑
分布清楚选择排序法和冒泡法的区别。这周自己也将前面的知识复习了下,稍微跟进点了进度,但还是不够后面也会越来越难。还是要继续加油!!!