c语言编程问题,大家好,新手上路,还请多多指教
输入一个不多于8位的二进制数,判断是否输入有误,错误提示重新输入,若正确输出十进制,十六进制,八进制。 麻烦提供一下思路,有代码最好,谢谢这是我写的转化十进制的一部分,有错
#include<stdio.h>
#include <string.h>
int main()
{
int i,chan=0,n,s,k;
char c[100],x;
printf("请输入一个不超过8位数的二进制:\n");
n=strlen(c);
gets(c);
for(i=0;x=c[i]!='\0';i++)
{
if(n>8||x!='0'||x!='1')
{
printf("二进制不符合要求,请重新输入:\n");
}
else
{
k=x*2^(n-i);
s=s+k; //字符转换成十进制数
}
}
printf("十进制为:%d\n",s);
return 0;
}
输出如下
请输入一个不超过8位数的二进制:
11111
二进制不符合要求,请重新输入:
二进制不符合要求,请重新输入:
二进制不符合要求,请重新输入:
二进制不符合要求,请重新输入:
二进制不符合要求,请重新输入:
十进制为:-858993460
Press any key to continue
[此贴子已经被作者于2018-8-29 23:02编辑过]