7-10 jmu-c-二进制转10进制 (20分)
输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input!
输入样例1:
11111111
输出样例1:
255
输入样例2:
34
输出样例2:
error input!
c语言:
#include <stdio.h>
int main()
{
char c[100]={
0};
int i=0,n=0,j,sum=0,k=1,flag=0;
gets(c);
while(c[i++])
{
n++;//统计c[]的长度
if(c[i-1]-'0' != 1 && c[i-1]-'0' != 0)
flag=1;
}
for(j=0;j<n;j++)
{
//输入的是字符所以需要减去'0'得到对应的数值
sum+=(c[n-j-1]-'0')*k; //从二进制整数最小位开始
k*=2; //权乘2
}
if(flag==0)printf("%d",sum);
else printf("error input!");
}
Java:
待更新