诡异的进制数
程序代码:
#include<stdio.h> #include<string.h> main() { int i, t, n, lon; long sum=0;//扩大其接受范围 char a[100]; loop: printf("please input the string\n");//输入数组 scanf("%s",a);//gets(a); strupr(a);//大写 lon=strlen(a);//求长度 printf("please input the n(2/8/16)scale\n");//输入进制数 scanf("%d",&n); for(i=0;i<lon;i++) { if(a[i]-'0' >=n && a[i]<'A' || a[i]-'A'+10 >=n)//判断数组中的元素是否合法 { printf("date error\n"); exit(0);//关闭当前文件 } if(a[i] >='0' && a[i] <='9') t=a[i]-'0'; else if(n>=11 && (a[i] >='A' && a[i] <= 'A'+n-10)) t=a[i]-'A'+10; sum=sum*n+t; } printf("the decimal base is %ld\n",sum); goto loop; }将N进制数转为十进制数 似乎结果不对 大家测试下 看哪有问题 我搞了半天也对了半天觉得没问题 就是数据错误