张照行 的第九次作业
Posted 16-3张照行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了张照行 的第九次作业相关的知识,希望对你有一定的参考价值。
1.果然第七次作业好难啊,做完之后增加了好多知识,现在用到一点都不费力啊,很方便就写出来了
#include <stdio.h> #include <string.h> void aaa() { char a[100]; int length,time=0,i; printf("请输入字符串:"); scanf("%s",a); length=strlen(a); for(i=0;i<length/2;i++) { if(a[i] != a[length-1-i]) time++; } if(time == 0) printf("该字符串是对称的\n"); else printf("该字符串不是对称的\n"); } int main() { aaa(); return 0; }
2.冒泡排序法,从最后一个开始与前一个依次对比
#include <stdio.h> #include <string.h> void aaa() { char a[100]; int length,j,i,temp; printf("请输入:"); scanf("%s",a); length=strlen(a); for(j=0;j<length;j++) { for(i=length-1;i>0;i--) { if(a[i]<a[i-1]) { temp=a[i]; a[i]=a[i-1]; a[i-1]=temp; } } } printf("将其升序排序为:"); for(i=0;i<length;i++) printf("%c",a[i]); } int main() { aaa(); return 0; }
3.
#include <stdio.h> #include <string.h> void aaa() { char a[100]; int length,j,i,temp,min; printf("请输入:"); scanf("%s",a); length=strlen(a); for(j=0;j<length;j++) { min=j; for(i=min+1;i<length;i++) { if(a[i]<a[min]) min=i; } temp=a[j]; a[j]=a[min]; a[min]=temp; } printf("将其升序排序为:"); for(i=0;i<length;i++) printf("%c",a[i]); } int main() { aaa(); return 0; }
4.插入排序法。。。老师课上没讲欸,百度之后知道是将一个数目插入该占据的位置,但是代码也就是从第二个开始与左边的对比然后交换,然后敲出来的代码也就和冒泡排序法差不太多,就是循环的条件变了变,不过应该就是这样的吧
#include <stdio.h> #include <string.h> void aaa() { char a[100]; int length,j,i,temp; printf("请输入:"); scanf("%s",a); length=strlen(a); for(j=0;j<length;j++) { for(i=1;i<length;i++) { if(a[i]<a[i-1]) { temp=a[i]; a[i]=a[i-1]; a[i-1]=temp; } } } printf("将其升序排序为:"); for(i=0;i<length;i++) printf("%c",a[i]); } int main() { aaa(); return 0; }
5.希尔排序法。。。说是选做,但是我不写估计又要说我了,然后我就百度,天啊,真的是,我差点以为我连百度百科都看不懂了,弄了好久才弄懂,真的是,好古怪的排序方法,还循环了三次,纠结好半天的说
#include <stdio.h> #include <string.h> void aaa() { char a[100]; int length,j,i,temp,shell; printf("请输入:"); scanf("%s",a); length=strlen(a); for(shell= length/2;shell>0;shell/=2) { for(i=shell;i<length;i++) { for(j=i-shell;j>=0;j-=shell) { if(a[j]>a[j+shell]) { temp=a[j]; a[j]=a[j+shell]; a[j+shell]=temp; } } } } printf("将其升序排序为:"); for(i=0;i<length;i++) printf("%c",a[i]); } int main() { aaa(); return 0; }
心得:唉,果然这种东西还是应该留到星期四来做,要不然做了会纠结,就必须做完才能停,像今天就做到大晚上的,明天还要考试,唉。还不错,相对来说不是太难(我果然是对第七次作业产生阴影了),而且很清楚的讲过,只是那个插入排序法没讲过,然后查了做出阿来后感觉跟冒泡排序法太像了,有点奇怪,但应该也没问题。还有那个希尔排序法,才看的时候一脸蒙蔽啊,还在想要定义多少数组啊,还好事实上不用,三重循环的话想的有点麻烦,循环的条件也麻烦,但是还好,也算是写出来了。大家一起加油吧!
以上是关于张照行 的第九次作业的主要内容,如果未能解决你的问题,请参考以下文章