c言語の課題である 5 進数の数字が A-E のアルファベットを用いた文字列で表現(A=0、B=1、C=2、D=3、E=4)されるとする。文字列として入力を受け付け、5 進数から 10 進数に変換せよと出たのですが文字列を数値に変換する段階でつまづいています。どなたか助けてください。また、文字列から数値への変換はユーザー関数で行うことするみたいです。OSはLinaxでコンパイラはC++です。
文字列から数値への変換して、5 進数から 10 進数に変 換する。
Re: 文字列から数値への変換して、5 進数から 10 進数に変 換する。
文字列から一文字を取り出すことは、できますか ?
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。
中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。
中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。
Re: 文字列から数値への変換して、5 進数から 10 進数に変 換する。
不正な文字を入力したときなどのエラー処理はしていません。
ご自由に改変してください。
ご自由に改変してください。
#include <stdio.h>
int QuinaryToDecimal(char *s)
{
int n, i, j;
char t[] = "ABCDE";
for (n = i = 0; s[i]; i++) {
for (j = 0; j < 5; j++) {
if (s[i] == t[j]) {
n = 5 * n + j;
}
}
}
return n;
}
int main(void)
{
char s[10];
printf("5進数の文字列を入力(A:0, B;1, C:2, D:3, E:4)\n");
scanf("%s", s);
printf("%d\n", QuinaryToDecimal(s));
return 0;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。