黑白图像

摘要: 输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数。如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连块。(题意是让求连在一起的块有几个,图见书本)SamInput6 100100 001010 000000 110000 111000 010100 1 #include 2 using namespace std; 3 const int MAXN=30; 4 int mat[MAXN][MAXN],vis[MAXN][MAXN]; 5 void dfs(int x,int y) 6 { 7 if(!mat[x][y]||vis[x][y])//当... 阅读全文
posted @ 2014-04-02 21:14 一颗向上的草莓 阅读(189) 评论(0) 推荐(0) 编辑

9*9乘法表

摘要: #includeint main(){ int i,j,result=0; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { result=j*i; printf("%d*%d=%d ",i,j,result); } printf("\n"); }return 0;} 阅读全文
posted @ 2014-03-29 19:43 一颗向上的草莓 阅读(171) 评论(0) 推荐(0) 编辑

输入5 个数按从小到大的顺序输出

摘要: #includeint main(){ int a[5],i,j,t; for(i=0;ia[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } for(i=0;i<5;i++)//一定要看清代码,这里把i错写成了1,不报错,但运行结果有误,很隐蔽 printf("%d ",a[i]);} 阅读全文
posted @ 2014-03-29 18:18 一颗向上的草莓 阅读(1902) 评论(0) 推荐(0) 编辑

一个整数,他加上100后是一个完全平方数,再加上168又是一个完全平方数,求该数

摘要: #include#includeint main(){ long int i,x,y; for(i=1;i<100000;i++) { x=sqrt(i+100); y=sqrt(i+268); } if(x*x==i+100&&y*y==i+268) printf("%ld\n",i); return 0;} 阅读全文
posted @ 2014-03-29 17:31 一颗向上的草莓 阅读(508) 评论(0) 推荐(0) 编辑

输入年月日,输出这是一年中的第几天

摘要: #includeint main(){ int year,month,day,leap,sum=0; printf("输入年月日:\n"); scanf("%d%d%d",&year,&month,&day); switch(month) { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=1... 阅读全文
posted @ 2014-03-29 17:30 一颗向上的草莓 阅读(926) 评论(0) 推荐(0) 编辑

1,2,3,4可以组成多少互不相同且没重复数字的三位数

摘要: #includeint main(){ int i,j,k; for(i=1;i<5;i++) for(j=1;j<5;j++) for(k=1;k<5;k++) { if(i!=j&&j!=k&&k!=i) printf("%d%d%d\n",i,j,k); } return 0;} 阅读全文
posted @ 2014-03-29 16:49 一颗向上的草莓 阅读(193) 评论(0) 推荐(0) 编辑

菱形

摘要: * ******************** *** *// 这几天奇怪了,要输出菱形程序的人好多。#include#includeint main() {constint row = 5; // 5行,对于行对称的,使用绝对值来做比较好const int max = row / 2 + 1;for (int i = -max + 1; i < max; ++i) {for (int j = 0; j < abs(i); ++j, std::cout << " ");for (int j = 0; j < (max - abs(i)) * 2 阅读全文
posted @ 2014-03-26 21:18 一颗向上的草莓 阅读(124) 评论(0) 推荐(0) 编辑

C语言中冒泡法、选择法、插入法三种常见排序算法分析

摘要: 一、冒泡法(起泡法)算法要求:用起泡法对10个整数按升序排序。 算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。 算法源代码:# include main(){ int a[10],i,j,t; printf("Please input 10 numbers: "); /*输入源数据*/ for(i=0;ia[i+1]) /*相邻元素比较,逆序则交换*/ { t=a[i]; a[i]= 阅读全文
posted @ 2014-03-20 20:50 一颗向上的草莓 阅读(1661) 评论(0) 推荐(0) 编辑

铁轨问题 用栈解决

摘要: #include#includeusing namespace std;const int MAXN=1000+10;int n,target[MAXN];int main(){ while(scanf("%d",&n)==1) { stack s; int A=1,B=1; for(int i=1;i<=n;i++) scanf("%d",&target[i]); int ok=1; while(B<=n) { if(A==target[B]) {A++; B++; } else if(!s.em... 阅读全文
posted @ 2014-03-20 20:48 一颗向上的草莓 阅读(217) 评论(0) 推荐(0) 编辑

5个数求最值

摘要: 描述设计一个从5个整数中取最小数和最大数的程序输入输入只有一组测试数据,为五个不大于1万的正整数输出输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。样例输入1 2 3 4 5样例输出1 5 1 #include 2 using namespace std; 3 int main() 4 { 5 int i,j,temp; 6 int a[5]; 7 for(i=0;i>a[i]; 9 for(i=0;i=a[j])12 {13 temp=a[i];14 a[i]=a[j];15 a[j]=temp;16 }17 c... 阅读全文
posted @ 2013-12-04 15:27 一颗向上的草莓 阅读(180) 评论(0) 推荐(0) 编辑