10進数から2進数に変換しようとしています。C言語、失敗しました、10進数から2進数へ
"実行に失敗しました"という理由はありますか? (私は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 実行に失敗しました(終了値1、合計時間:5秒) – KeyMaker00