情報
大学生・専門学校生・社会人

c言語プログラム
本当に分かりません。
どなたか教えてください

(2点) 【演習3】 if-else と繰り返し文 最大値(整数)と整数xをキー入力すると、1から最大値までの整数を順に表示するプログラムを if-else 文および for文を使って作成せよ。 ただし、最大値が10~50以外の場合、または整数 x が 2~9以外で 入力された場合は、「範囲エラー」 を表示すること。 また、1から最大値までの整数を表示する際、表示 する整数が整数xで割り切れる場合は を、 割り切れない場合はその整数を表示すること。 xで割り切れる値は☆を表示 <ソースプログラム> #include <stdio.h> int main (void){ イント2 ント5 } printf("最大値: "); /* 変数宣言*/ return 0; printf(" 整数x: "); cats ; /*キー入力*/ // *キー入力*/ <実行例①> |最大値: 10 ↓ 整数x2↓ 13579☆ <実行例②> |最大値: 50 ↓ 整数x 91 12345678 10 11 12 13 14 15 16 17 19 | 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 ★ 37 38 39 40 41 42 43 44 46 47 48 49 50 <実行例③> 最大値: 9 整数x2↓ 範囲エラー <実行例⑤ > 最大値: 10 ↓ 整数X : 1↓ 範囲エラー <実行例④ > | 最大値: 51 ↓ 整数X ↓ 範囲エラー <実行例⑥ > 最大値: 50 ↓ 整数x : 10↓ 範囲エラー (下線部はキー入力を、↓は Enter を示す)
c言語

回答

scanf() で数字以外の入力をするとご動作するので、実際にCでコーディングする人はscanf()よりも fgets()などを利用しますが、
ここでは単純にscanf()を用いて回答します。

#include <stdio.h>
int main(void) {
int i, n, max; /*変数宣言*/
printf("最大値: "); /*キー入力*/
scanf("%d", &max);
printf("変数x: "); /*キー入力*/
scanf("%d", &n);

if ( max < 10 || 50 < max || n < 2 || 9 < n ) {
printf("範囲エラー\n");
} else {
for (i = 1; i <= max; i++) {
if ( i % n ) {
printf("%d ", i);
} else {
printf("✮ ");
}
}
printf("\n");
}
}

この回答にコメントする
疑問は解決しましたか?