首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于进制变换的程序

2012-10-15 
关于进制转换的程序#include stdio.h#include math.h#include string.hint BinaryToDecimal(char bi

关于进制转换的程序
#include "stdio.h"
#include "math.h"
#include "string.h"

int BinaryToDecimal(char bin[])
{
int dec = 0;
int i;
for (i = 0;'0' != bin[i];i++)
{
dec += bin[i] * (pow(2.0,i));
}
return dec;
}


int main()
{
int decimal = 0;
char *binary[4]={0};
printf("Please input a binary number!\n");
gets(binary[4]);
decimal = BinaryToDecimal(binary[4]);
printf("decimal = %d\n",decimal);
return 0;

}

在输入了2进制代码后就会出现错误导致结束程序.
我用的是VS2010,我是WIN7 64位的.

[解决办法]
这个其实是你定义了一个指针没有申请空间而已。
char *binary[4]={0};
这你是定义了四个指针,但是gets的时候你没有给他分配空间。

比如char *p; p = (char *)malloc(10 * sizeof(char));就相当于char p[10];
这样才可以

C/C++ code
#include <stdio.h>#include "math.h"#include "string.h"#include <stdlib.h>int BinaryToDecimal(char bin[]){    int dec = 0;    int i;    for (i = 0;'0' != bin[i];i++)    {        dec += bin[i] * (pow(2.0,i));    }    return dec;}int main(){    int decimal = 0;    char *binary[4]={0};    binary[4] = (char *)malloc(10 * sizeof(char));    printf("Please input a binary number!\n");    gets(binary[4]);    decimal = BinaryToDecimal(binary[4]);    printf("decimal = %d\n",decimal);    free(binary[4]);    return 0;} 

热点排行