プロが教えるわが家の防犯対策術!

至急教えてください!プログラミングの問題です。
正の整数nを入力させると、1からnまでの整数を出力して改行する処理をその末尾を1つずつ減らしながら繰り返すプログラムを完成させよ。

入出力例
5(ここは入力例)
5,4,3,2,1,
5,4,3,2,
5,4,3,
5,4,
5,

A 回答 (9件)

No2の方の回答を参考にしてつくりました。


#include <stdio.h>

int main(void)
{
int n;
int i, j;
scanf("%d", &n);
for (int i = n; i > 0; i--) {
for (int j = 0; j < i; j++) {
printf("%d,", n - j);
}
printf("\n");
}
return 0;
}
    • good
    • 0

でも、(問題を無視して)出力例のようにするなら、ループの部分は



for (int lastNumber = 1; lastNumber <= n; lastNumber++)
{
for (int j = n; j >= lastNumber; j--)
printf("%d,", j);
printf("\n");
}

にしたいかな。
    • good
    • 0

> 申し訳ないんですけどchar型はまだ習ってなくてわからないんですけど、、



そもそも、char型を習ってないのにscanfを使わせる、とか相当バカな学校に通ってる、かあるいは「先生がクソ」って意味なんですけどね・・・・・・。

元々、scanf自体が危険なんで、プログラミング学びたての人間に使わせる、って方針が間違ってるだけ、っつーか・・・・・・。
C言語教育の悪習なんだよな。

取り敢えずは#6氏が書いたようなコードになるんだろうねぇ。
でも今学期終わったらプログラミングの授業を受けるは止めた方が良さそうだね。
貴方の言う通りなら貴方が通ってる学校はダメだ。そこで学んでもロクな事にならんので、次の授業は受けない方がいいでしょう。
(大体、この程度の問題が解けない、って時点でおかしいし、あんまマトモな教育らしい教育を施してない、って事だな)
    • good
    • 1

普通の日本語だと



> 1からn(5)までの整数を出力

1,2,3,4,5 「末尾」は5
1,2,3,4 「末尾」は4
1,2,3 「末尾」は3
1,2
1

になると思うんだが。
    • good
    • 0

> 出力例は間違っていないです



例では、n = 5ですよね。
では、

> 1からn(5) までの整数を出力

は、具体的には?

また、

> 末尾を1つずつ減らしながら

末尾は減ってますか?
    • good
    • 0
この回答へのお礼

例ではn=5です。nは整数であればなんでも大丈夫なはずです。なのでnは100でも1000でも大丈夫です。
末尾は出力例では1行目は5.4.3.2.1.となっており2行目は5.4.3.2.と末尾の1が減っています。それを繰り返すようなプログラムを作れという課題です。

お礼日時:2022/07/17 15:34

「for文をネスト」とは、forループの中にもう一つのforループを入れるということです。


cametan_42 さんの回答でも、そうしていますね。
また、char型は、ここでは小さい整数型として使っているようです。
    • good
    • 0

> 1からnまでの整数を出力して改行する処理



明らかに出力例が間違っています。
    • good
    • 0
この回答へのお礼

出力例は間違っていないです。

お礼日時:2022/07/17 15:05
    • good
    • 0
この回答へのお礼

申し訳ないんですけどchar型はまだ習ってなくてわからないんですけど、、

お礼日時:2022/07/17 15:04

for文をネストすれば出来るんじゃないかなあ、と思います。

    • good
    • 0
この回答へのお礼

for文をネストとかどう言うことでしょうか?

お礼日時:2022/07/17 15:05

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング