COBOL Code
思路:
输入字符数组->整型数组->10进制转换->转换为所需要的进制->字符数组->输出
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
#include
"stdio.h"
#include "math.h" #include "string.h" int B(int b[],int n,int l) { int i= 0; double t= 0; for(;i<l;i++) { t=b[i] *pow((double)n,(double)(l-1-i))+t; } return t; } void Z(int k,int m) { int i= 0,q,a1[ 16]; char a2[ 16]; while(k> 0) { a1[i]=k%m; k=k /m; i++; q=i; } printf( "你想要的数:\n"); if(m<= 10) { for(i=q-1;i>= 0;i--) printf( "%d",a1[i]); } else for(i=q-1;i>= 0;i--) { switch (a1[i]) { case 0:a2[i]= '0';break; case 1:a2[i]= '1';break; case 2:a2[i]= '2';break; case 3:a2[i]= '3';break; case 4:a2[i]= '4';break; case 5:a2[i]= '5';break; case 6:a2[i]= '6';break; case 7:a2[i]= '7';break; case 8:a2[i]= '8';break; case 9:a2[i]= '9';break; case 10:a2[i]= 'a';break; case 11:a2[i]= 'b';break; case 12:a2[i]= 'c';break; case 13:a2[i]= 'd';break; case 14:a2[i]= 'e';break; case 15:a2[i]= 'f';break; } printf( "%c",a2[i]); } } int main() { char a[ 17]; int b[ 16],c[ 16],k; int n,m;int i= 0,l; //int *q; printf( "请输入进制:\n"); scanf( "%d",&n); printf( "请输入(最大16位数):\n"); getchar(); gets(a); l=strlen(a); for(i= 0;i<l;i++) { if( *(a+i)<='9') switch( *(a+i)<(48+n)?*(a+i):'-1') { case '0': *(b+i)=0;break; case '1': *(b+i)=1;break; case '2': *(b+i)=2;break; case '3': *(b+i)=3;break; case '4': *(b+i)=4;break; case '5': *(b+i)=5;break; case '6': *(b+i)=6;break; case '7': *(b+i)=7;break; case '8': *(b+i)=8;break; case '9': *(b+i)=9;break; case '-1':printf( "非法输入已将关闭"); return 0; } else switch( *(a+i)<(97+n-10)?*(a+i):'-1') { case 'a': *(b+i)=10;break; case 'b': *(b+i)=11;break; case 'c': *(b+i)=12;break; case 'd': *(b+i)=13;break; case 'e': *(b+i)=14;break; case 'f': *(b+i)=15;break; case '-1':printf( "非法输入已将关闭"); return 0; } } k=B(b,n,l); printf( "请输入要转化的进制:\n"); scanf( "%d",&m); Z(k,m); } |