前提・実現したいこと
switch文だけ利用して、入力した正の整数に対して0以上10未満、10以上20未満、20以上30未満、30以上を判別して知らせるコードを書いたのですが、これに負の整数を入力したときにエラーメッセージ(「正の整数を入力してください」)が表示されるようにしたいです。
自分で下記の様に書いては見たのですが、どうやってもswitch文の中にif文を書かないと、負の整数が入力された場合に対応できません。
switch文だけを利用して書くことは不可能でしょうか?また他に効率の良い方法などがあればご教示くださいm(_ _;)m
該当のソースコード
c
1#include <stdio.h> 2int main(void){ 3 int a; 4 printf("0以上の整数を入力して下さい:\n"); 5 scanf("%d", &a); 6 7 8 9 switch(a / 10) { 10 case 0: 11 if(a < 0) { 12 printf("正の整数を入力してください\n"); 13 } 14 else { 15 printf("%dは0以上10未満.\n", a); 16 } 17 break; 18 case 1: 19 if(a < 0) { 20 printf("正の整数を入力してください\n"); 21 } 22 else { 23 printf("%dは10以上20未満.\n", a); 24 } 25 break; 26 case 2: 27 if(a < 0) { 28 printf("正の整数を入力してください\n"); 29 } 30 else { 31 printf("%dは20以上30未満.\n", a); 32 } 33 break; 34 default : 35 if(a < 0) { 36 printf("正の整数を入力してください\n"); 37 } 38 else { 39 printf("%dは30以上です\n", a); 40 } 41 break; 42 } 43 44 return 0; 45}
回答4件
あなたの回答
tips
プレビュー