|
main関数の間違ってるっぽいところを直しました。
Taiouはご自分で。
#include<stdio.h>
int Taiou(int i) //表の対応する数字を出す関数
{
int taiou_ans=0 , j=0;
if(i == 0){//ここを修正
taiou_ans = 1;
}
else{
taiou_ans = 2 * 2; //2つ分の乗数処理を行う
i = i - 2; //上の処理のため指数から2を引く
for(j=0 ; j<i ; j++) //残った指数をansにかけていく
{
taiou_ans = taiou_ans * 2;
}
}
return taiou_ans;
}
int main(void)
{
char a[20];
int mojisuu=0 , i=0 , ans=0;
printf("2進数を入力してください>");
scanf("%s",a);
while(a[mojisuu] != '\0'){ //ここを修正&strlen()を使うとよい
mojisuu++; //
} //
mojisuu--; //配列は0から始まるため、ズレの修正
while(mojisuu>=0){
if(a[mojisuu] == '1'){ //ここを修正
ans = ans + Taiou(i);
}
i++;
mojisuu--;
}
printf("結果[%d]\n",ans);
return 0;
}
|