これはバイナリを10進値に変換する私のプログラムです。サブスクリプトされた値も配列もポインタもベクトルでもない
#include <stdio.h>
#include <string.h>
#include <math.h>
void con(){
unsigned long long int dec = 0, bin;
int i;
printf ("\n Binary : ");
scanf("%lld",&bin);
for (i = strlen(bin) - 1; i <= 0; --i){ // Warning in here
dec = dec + (bin[i] * pow (2, i)); // Error in here
}
printf(" Decimal : %lld",dec);
con();
}
int main(){
con();
return 0;
}
私がコードをコンパイルすると、このエラーは「添え字付きの値は配列もポインタもベクトルでもありません」と表示されます。また、この警告は、 "strlenの引数1を渡すと、ポインタはキャストのない整数から生成されます"。
なぜこれらを取得しているのですか。どのように修正できますか?この行で
'bin'は、だから私は、配列としてそれを使用する必要があります' unsigned long型の長int'、ないポインタや配列... – StoryTeller
@StoryTellerのですか? –
もしそれを1つとして使用しようとするならば、それを配列として宣言する必要があります。 – StoryTeller