标签:t2016
/* ABC XYZ abc xyz i j i指向A if a[i]>=a i++ j指向a if a[j]<=Z j++ ABCabc i j aBCAbc i j abCABc i j abcABC i */ #include <iostream> #include <string.h> using namespace std; void fun(char*a) { int len=strlen(a); int i=0,j=0; char tmp=0; while(j<len-1) { cout<<a<<endl; while(a[i]>=‘a‘&&i<len) i++; j=i; while(a[j]<=‘Z‘&&j<len-1) j++; tmp=a[i];a[i]=a[j];a[j]=tmp; } cout<<a<<endl; } void test0() { char s[]="ABCabc"; fun(s); } void test1() { char s[]="AAAAAaaaaaaaaaaaaAAAAAAAAAAAAAAAAaaaaaaaa"; fun(s); } int main() { test1(); return 0; } /* 难点在于求间距最小的 只要有元素相同,距离为0,是最小的,而这些数据是离散的。 */ #include <iostream> using namespace std; void fun(int a[],int len) { //找到最大的数有多少个, 找最小的数有多少个,mmin找到间距最小的; int max=a[0],min=a[0],maxcount=0,mincount=0,mmin=a[0],mmincount=0; int b[len]; for(int i=0;i<len;i++) { if(a[i]>max)max=a[i]; if(a[i]<min)min=a[i]; } for(int i=0;i<len;i++) { if(a[i]==max)maxcount++; if(a[i]==min)mincount++; } cout<<maxcount<<"wwwwwwwwwwwwwwwwwwwwwwwwwww"<<endl; cout<<"maxdis : "<<maxcount*mincount<<endl; } int test0() { int a[]={1,2,3,4,5,6};// max : 1 min :5 int len=sizeof(a)/sizeof(a[0]); fun(a,len); } void test1() { int a[]={1,1,1,2,3,4,111,111,111};//max:9 min :6 //int a[]={1,1,1,2,2,3,4,111,111,111};//max:9 min :6+1 //int a[]={1,2,3,4,5,6};//max:1 min :5 //int a[]={6,6,6,6,6,6};//max:15 min :15 int len=sizeof(a)/sizeof(a[0]); fun(a,len); } int main() { //排序了才好处理,这里测试 均直接传排好序的数组 test1(); return 0; } 学习链接http://blog.csdn.net/minsophia/article/details/51836367
标签:t2016
原文地址:http://wzsts.blog.51cto.com/10251779/1834936