第15周 啊哈算法 冒泡排序算法
2016-07-07 11:14
246 查看
1、问题及代码:
2、
第2道题:之所以i=1,而不是0,是为了与for循环匹配
/*冒泡排序:邻居互换,进行n-1趟,每趟比较n-i次*/ #include<stdio.h> int main() { int a[1000]; int i,j,n,t; scanf("%d",&n); //输入一个数n,表示接下来有n个数 for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n-1;i++) //n个数排序,进行n-1趟,比如3和2只走完一趟。 { for(j=1;j<=n-i;j++) //每趟比较n-i次 { if(a[j]>a[j+1]) //比较大小并交换 { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=1;i<=n;i++) printf("%d",a[i]); getchar();getchar(); //暂停程序 return 0; }
2、
/*功能:对分数排序,按顺序输出学生姓名*/ #include<stdio.h> struct student { char name[20]; char score; };//存储姓名和分数的结构体 int main() { struct student a[100],t; int i,j,n; scanf("%d",&n);//输入一个数n,表示学生的人数 for(i=1;i<=n;i++) scanf("%s %d",a[i].name,&a[i].score);//注意数组名即是首地址 for(i=1;i<=n-1;i++) //至少一趟 { for(j=1;j<=n-i;j++) //至少比一次 { if(a[j].score>a[j+1].score) { t=a[j];//注意不止是对a[j].score进行转换,而是结构内所有元素的置换 a[j]=a[j+1]; a[j+1]=t; } } } for(i=1;i<=n;i++) printf("%s",a[i].name); getchar();getchar(); //暂停程序 return 0; }
第2道题:之所以i=1,而不是0,是为了与for循环匹配
相关文章推荐
- bootstrap学习笔记-下拉菜单
- android xml详解
- Failed to load the JNI shared library
- eclipse生成boolean型变量的getter是is开头
- java list倒序输出及复制list集合
- 生活中的物理学、化学
- centos7 docker tomcat7
- InputStreamReader/OutputStreamWriter乱码问题解决
- NDK 学习笔记
- 用pcl读取xtion点云
- 从写博客开始
- spring-session
- 【机器学习】常见算法分类汇总
- ViewPager+RadioGroup实现微信UI界面
- PHP第一站,反思复习之路
- hdu 1075 What Are You Talking About STL的使用
- vim速查手册(随时更新)
- sql 在将 nvarchar 值 转换成数据类型 int 时失败。
- 背光亮度调节
- (C)理解 #define write(b,addr) (void)((*(volatile unsigned int *) (addr)) = (b))