我试图从十进制数转换成二进制数。C语言,运行失败,十进制为二进制
你有什么想法为什么我有一个“运行失败”? (我认为我的scanf函数附近有错误)。
P.S:我知道这个程序的算法还没有工作,但我想先尝试编译。但我打开的任何建议^^
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/**
* Uebung 1.3 - C Teil
* Programm, welches eine Integer-Zahl in Binärdarstellung ausgibt.
*/
#define DEBUG 1
/** Structure of a binary Value */
typedef struct{
int size;
int* valueInBin;
int valueInDec;
}Wert;
/** Global variables */
//nothing
/** Functions declarations */
void iToBinary(Wert* w);
void printBinaryValue(Wert w);
/** Main function */
int main(int argc, char** argv) {
/* Local variable*/
Wert myVal;
printf("Wert als Integer (auch negativ): ");
scanf("%d", &(myVal.valueInDec));
DEBUG ? printf("Mein Wert : %i", myVal.valueInDec):printf("");
myVal.size = sizeof(int)*8;
DEBUG ? printf("size: %i", myVal.size):printf("");
iToBinary(&myVal);
printBinaryValue(myVal);
return (EXIT_SUCCESS);
}
void iToBinary(Wert* w){
int i,temp = w->valueInDec;
w->size = sizeof(w->valueInDec)*8;
w->valueInBin = (int*) malloc(sizeof(int) * (int)(w->size)) ;
for(i=w->size-1; i>=0; i++){
if(temp > pow(2,i)){
*((w->valueInBin)+i) = 1;
}
else{
*((w->valueInBin)+i) = 0;
}
}
}
void printBinaryValue(Wert w){
unsigned int i;
printf("My int in bin : ");
for(i=0; i<w.size; i++){
printf("%i",(*(w.valueInBin)+i));
}
}
你应该为这个问题添加一个“家庭作业”标签。此外,有关错误的更多细节。您是否看到除“运行失败”以外的其他问题? –
什么是编译错误? –
没有编译错误,当我执行代码时只是一个“运行失败”:Wert als Integer(auch negativ):2 RUN FAILED(退出值1,总时间:5秒) – KeyMaker00