進数変換でまず、十進数か二進数かを選んだ後、十進数の場合は二進数へ、二進数の場合は十進数へ変換するプログラムを作りたいと思っています。数値は入力します。
./a.out
2進数?10進数?(数字のみ)→2
10進数にしたい数字を入力してね
1010
10進数→ 0
10進数→ 10
10進数→ 10
10進数→ 10
10進数→ 10010
10進数→ 110010
10進数→ 1110010
10進数→ 11110010
10進数→ 111110010
10進数→ 1111110010
よろしければどこがダメなのか教えていただきたいです。よろしくお願いいたします。
発生している問題・エラーメッセージ
./a.out 2進数?10進数?(数字のみ)→2 10進数にしたい数字を入力してね → ### 該当のソースコード ```ここに言語名を入力 ソースコード
#include <stdio.h>
int main(void)
{
int no;
int decimal;
int binary = 0;
int base = 1;
int binary1;
int decimal1 = 0;
int base1 = 1;
/二進数か十進数かの入力/
printf("2進数?10進数?(数字のみ)→");
scanf("%d",&no);
/二進数だった場合/
if(no == 2){
printf("10進数にしたい数字を入力してね\n");
printf("→\n");
scanf("%d", &decimal);
/*二進数を十進数に変換*/ while(decimal>0){ binary = binary + ( decimal % 2 ) * base; decimal = decimal / 2; base = base * 10; /*変換した十進数の出力*/ printf("10進数→ %d\n",binary); } } /*十進数だった場合*/ else if(no == 10){ printf("2進数にしたい数字を入力してね\n"); printf("→\n"); scanf("%d",&decimal1); /*十進数を二進数に変換*/ while(binary1>0){ decimal1 = decimal1 + ( binary1 % 10 ) * base1; binary1 = binary1 / 10; base1 = base1 * 2; /* 変換した2進数の出力 */ printf("2進数 → %d\n", decimal1); }
}
/十進数と二進数以外の数字が入力された場合/
else {
printf("10進数か2進数で答えてください\n");
}
return 0;
}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。