C语言。编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并打印。

编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并把它打印出来。输入格式:输入为一个字符串,每个字符都是’0’或’1’,字符串的长度不... 编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并把它打印出来。
  输入格式:输入为一个字符串,每个字符都是’0’或’1’,字符串的长度不超过32。
  输出格式:输出一个整数。
  输入输出样例
  输入样例:
  1101
  输出样例:
  13
我的程序:
#include <stdio.h>
#include <string.h>
int main()
{
char data[33];
int dota[33];
int i, j, num, len;
gets(data);
len = strlen(data);
for (i = 0; i <= len; i++)
{

if (data[i] == '1')
{
dota[i] = (int)data[i] -48;
}
else if (data[i] == '0')
{
dota[i] = (int)data[i] - 48;
}
}
num = dota[0];
for (j = 1; j <= len; j++)
{
num = num * 2 + (int)dota[j];
}
printf("%d", num);
}

在学数组。请问哪里错了?
有什么简单的方法吗?
展开
 我来答
火烧山脚
推荐于2017-10-06 · 超过11用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:18.9万
展开全部
#include <stdio.h>
#include <string.h>
int main()
{
char data[33];
int dota[33];
int i, j, num, len;
gets(data);
len = strlen(data);
for (i = 0; i <= len; i++)
{
dota[i] = (int)data[i] -'0';
}
num = dota[0];
for (j = 1; j < len; j++)
{
num = num * 2 + (int)dota[j];
}
printf("%d\n", num);
}
//改了一下,自己看吧!不明可以问的!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式