#include<stdio.h> int rely(int x,int y) //判断是否相关,相关则返回1,否则0 { int a[10],b[10],i=0,j=0; while(x) //这里要分别把要检验的数存储到两个数组中 { a[i++]=x%10; x=x/10; } while(y) { b[j++]=y%10; y=y/10; } if(i!=j) return 0; //开始检验相关性,位数不同不行 else for(int m=0;m<i;m++) for(int n=0;n<j;n++) { //printf("%d %d\n",a[m],b[n]); if(a[m]==b[n]) { a[m]=0; b[n]=0; } } for(int m=0;m<i;m++) for(int n=0;n<j;n++) { if(a[m]==0&&b[n]==0); else return 0; //数字不同不行 } return 1; } int main() { int n; while(scanf("%d",&n)&&n) { int a[1000],flag=0,temp,sum=0; //sum是为了None的情况准备 for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++) { flag=0; //flag每次置0才能保证去除了所有的相关数 for(int j=i+1;j<n;j++) //此处去除当前位以后的所有相关数 if(rely(a[i],a[j])) { a[j]=0; flag=1; } if(flag)a[i]=0; //去除当前位置相关数 } for(int i=0;i<n-1;i++) //来冒个泡 for(int j=0;j<n-i-1;j++) { if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } for(int i=0;i<n;i++) { if(a[i]) printf("%d ",a[i]); sum=sum+a[i]; } if(sum==0)printf("None"); printf("\n"); } }
0.0分
6 人评分
WU-陶陶摘苹果2 (C++代码)浏览:970 |
C语言考试练习题_保留字母 (C语言代码)浏览:700 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:661 |
输出九九乘法表 (C语言代码)浏览:1048 |
简单的a+b (C语言代码)浏览:535 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:445 |
DNA (Java代码)浏览:922 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:444 |
简单的a+b (C语言代码)浏览:462 |
C二级辅导-求偶数和 (C语言指针动态内存法)浏览:634 |