アプリ版:「スタンプのみでお礼する」機能のリリースについて

自分で、プログラムを作ったのですが、エラーがしこたまでます、どこがわりのか、みていただきたいのですが、どこが違うのでしょうか?よろしくお願いします。
#include<stdio.h>

main()
{
int x;
int a,b,c,d,e,f;
printf("5桁までの数値を入力してください");

scanf("%d",&x);
if(x>11111) printf(”警告5桁以上です。");


a=(x/10000);
if(a!=0) x=x-10000;

b=(x/1000);
if(b!=0) x=x-1000;

c=(x/100);
if(c!=0) x=x-100;

d=(x/10);
if(d!=0) x=x-10;

e=(x/1);
if(e!=0) x=x-1;

f=a*16+b*8+c*4+d*2+e*1;


}

A 回答 (5件)

> if(x>11111) printf(”警告5桁以上です。

");
ここのprintfが全角ダブルコーテーションで始まっているのが原因ではないかな。
これを直せばエラーは止まりそうな予感。
    • good
    • 0

yasuyuki007と申します。


#1さんがご指摘の箇所を修正すれば、
コンパイル&リンクは正常に通ります。

ただ、このままではこのプログラムは期待通りの結果は出しません。以下に改善すべき点を記述しておきますので、ご参考までに。

変換元の数値を入力する際、"%d"で受け取っている。
→十進数での入力となってしまい、二進数での入力にならない。#4さんのアドバイスにもある通り、
"%s"での入力にして、その後で0または1以外の入力はエラーとするようなチェックルーチンを入れるべき。

#3さんが指摘されているように、せっかくの変換結果を出力しないのはもったいないと思う。
    • good
    • 0

エラーがでた時は、エラーのでた最初の行を


// にするとかしたらいいよ。

ところで、
2進数の入力を、scanf("%d" ~ でするって?
"%s"で文字として受け取れば?その方が何かといい
と思う。
    • good
    • 0

提示したソースでは5桁以上入力しても変換処理が行われるし、変換結果って画面に表示しないの?

    • good
    • 0

No.1の方がご指摘の箇所を直せば、


エラーなく動作しました。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!