Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:各位大虾看一下我的程序错在哪里?thx!In Reply To:各位大虾看一下我的程序错在哪里?thx! Posted by:project at 2004-09-24 16:28:15 模拟也能AC的话这道题就真是恶心了 > 检查了很久都发现不了哪里有错,麻烦帮忙看一下: > Codes: > #include<stdio.h> > #include<string.h> > void dao(int a[],int n)//数组倒序 > { > int i,k; > for(i=0;i<n/2;i++){ > k=a[n-i-1];a[n-i-1]=a[i];a[i]=k; > } > } > int main() > { > int i,j,k,l,m,n,total,n1,k1,x;int ch,min;int str[1024]; > while(scanf("%d",&m)!=EOF){ > for(x=0;x<m;x++){ > scanf("%d%d",&n1,&k1); > total=0; > for(i=0;i<n1;i++) > scanf("%d",&str[i]); > if(n1==1){printf("%d\n",str[0]);continue;} > do{ > k=0; > if(total==k1){ > printf("%d",str[0]); > for(j=1;j<n1;j++) > printf(" %d",str[j]); > printf("\n");k=0;break; > } > for(i=n1-2;i>=0;i--){//一个个的往后找下一个组合 > k=0;min=100000000; > for(j=i+1;j<n1;j++){ > if(str[j]>str[i]) > if(min>str[j]){ > min=str[j]; > l=j;k=1; > } > } > if(!k) continue; > ch=str[i];str[i]=str[l];str[l]=ch; > for(j=i+1;j<n1-1;j++){ //排序 > for(n=j+1;n<n1;n++){ > if(str[j]>str[n]) { > ch=str[j];str[j]=str[n];str[n]=ch; > } > } > } > total++; > if(total==k1){ > printf("%d",str[0]); > for(j=1;j<n1;j++) > printf(" %d",str[j]); > printf("\n");k=0;break; > } > } > if(!k&&total<k1){dao(str,n1);total++;}//已经找到了最后一个之后再循环 > else if(total==k1) break; > }while(1); > } > } > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator