从键盘上输入8个数字和9个字母,要求顺序混乱,然后将8个数字升序排列后以2*4的矩阵形式输出,9个字母降序后以3*3的矩阵形式输出
从键盘上输入8个数字和9个字母,要求顺序混乱,然后将8个数字升序排列后以2*4的矩阵形式输出,9个字母降序后以3*3的矩阵形式输出
程序代码:
/******************************************************************************* 从键盘上输入8个数字和9个字母,要求顺序混乱,然后将8个数字升序排列后以2 *4的矩阵形式输出,9个字母降序后以3*3的矩阵形式输出. *******************************************************************************/ #include<stdio.h> #include<string.h> void sort(char a[])/*----排序 ---------*/ { int i,j; char t; for(i=0;i<strlen(a);++i) for(j=i+1;j<strlen(a);++j) if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } int main(void) { char a[18],CHAR[10],num[9]; int i,j,k; printf("input a[]:\n"); gets(a); for(i=j=k=0;i<strlen(a);++i) { if(a[i]>='0'&&a[i]<='9') num[j++]=a[i];/*----当某个数据等于数字时,存入数字的字符串 */ if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')) CHAR[k++]=a[i];/*---当某个数据等于字母时,存入字母的字符串 */ } num[++j]='\0'; CHAR[++k]='\0';/* 人工添加结束标记 */ sort(CHAR); sort(num);/* 两个字符串排序*/ printf("----------------------------------------\n\nnum :\n"); for(i=0;i<9;++i) { printf("%c",num[i]); if(i!=0&&i%4==0) printf("\n");/*升序输出数字字符串,并输出正确格式*/ } printf("-----------------------------------------\n\nchar :\n"); for(i=9;i>0;--i) { if(i%3==0) printf("\n"); printf("%c",CHAR[i]);/* 降序输出字母字符串,并输出正确格式*/ } printf("\n"); return 0; }