このプログラムはn進数から10進数にするプログラムなのですが、数値と進数を選択させて、進数化するプログラムに直していただきたいです
数値と進数を選択して、その進数化された数値を出すプログラム
#include <stdio.h> #include <string.h> #include <math.h> int main(void){ int a,tmp, kisu, keta, result, i,j; int motoData[128]; printf("変換する数値と基数を入力して下さい。(入力形式は 数値/基数)\n"); scanf("%d/%d", &a, &kisu); tmp = a; /*** 桁数のカウント ***/ keta = 0; do{ //2行で書けます } while (a > 0); printf("桁数-->%d\n", keta); /*** 1ケタずつ配列に入れる ***/ a = tmp; for (i=keta; i>=1; i--){ //2行で書けます。 //ちなみに,10の2乗は、pow(10,2)です。 } /*** 10進数に変換 ***/ result = 0; for (i=keta; i>=1; i--){ //1行で書けます。 } /*** 結果出力 ***/ printf(" %d進数:", kisu); for (i=keta; i>=1; i--){ printf("%d", motoData[i]); } printf("\n"); printf("10進数:%d\n",result); return 0; } **ボールドテキスト**
質問の内容は何でしょうか?
呈示されたコードは「n進数から10進数にするプログラム」ではないような...
たとえば 2進数の1001を10進数に変換できますか?
16進数 FF を 10進数に変換しようと思って FF/16 と入力しても、
scanf("%d/%d", &a, &kisu); では a に FF を読み込めません。
こちらの質問から進んでいない、ということですね。
[進数のプログラムを作る]https://teratail.com/questions/299746
むしろ、自力でゼロから作れるようになってからでないと、「2行で書けます」「1行で書けます」という部分に当てはめられないかもしれないですね。