プログラミングのif文なのですが、どうやって表現すればいいのかわかりません。

文字を入れると小文字か大文字か数字かを表示させたいんです。

{
float a;
printf("判別したい文字:");
scanf("%f",a);

if((a>=65)&&(a<=90))
{
printf("英大文字");
}
else if((a>=97)&&(a<=122))
{
printf("英小文字");
}
else if((a>=48)&&(a<=57))
{
printf("数字");
}
else
{
printf(その他);
}
return 0;
}

お願いします。

A 回答 (2件)

以下で動きます。

どうしてそうなるかは、じっくり考えてみてくださいね。

char a;

printf("判別したい文字:");
scanf("%c",&a);

if((a>=65)&&(a<=90)) printf("英大文字");
else if((a>=97)&&(a<=122)) printf("英小文字");
else if((a>=48)&&(a<=57)) printf("数字");
else printf("その他");

なお、個人的にはこの方が好み。
else if((a>='a')&&(a<='z')) printf("英小文字");
else if((a>='0')&&(a<='9')) printf("数字");
else printf("その他");
    • good
    • 0
この回答へのお礼

&つけるのと、char型のところとかいろいろと忘れてました。
ありがとうございました。

お礼日時:2009/05/25 14:07

カテゴリー違いかも知れませんが、とりあえず回答しておきます。



特に問題は無いです。ただし、scanfのところが問題になるでしょう。
正確には、scanf("%d",a);です。
なぜならば、%fで読み込むと、floatになって、intで取り込めない。
float型は、大抵の場合にはIEEEの仕様になりますので、全然違う値になります。

仕事用に作る場合には、判別用の定数をマクロにしておいて、EBICDIC、ASCII、EUC、Unicodeのそれぞれに対応できるようにしておきます。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
%fでやってみましたがだめでした。
scanfにHを入れて実行したところ、”その他”としか表示できません。
小文字も試しましたが、同じ結果でした。

お礼日時:2009/05/22 16:22

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


人気Q&Aランキング