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

このプログラミングの問題がいくら考えてもわかりません。for文とif文を組み合わせて使うと言われたのですが、よろしければ教えてください

「このプログラミングの問題がいくら考えても」の質問画像

質問者からの補足コメント

  • 日本語で書いてみましたがやはりよくわかりません…

      補足日時:2018/11/07 15:13
  • このようにしてみましたがエラーになります。

    「このプログラミングの問題がいくら考えても」の補足画像2
      補足日時:2018/11/07 20:25
  • すみません、できました。(void)の後の{を忘れていました

      補足日時:2018/11/07 21:18

A 回答 (3件)

No.1です、


念のための追加です。

日本語で「〇〇の値が××だったら、、、。そうでなかったら~。」といった表現で書かれたものが多くのプログラミング言語ではifを用いた処理になります。
同じく「〇〇の値が××になるまで、、、を繰り返す。」といった表現で書かれたものfor文やwhile文を用いた処理になります。

参考まで。
    • good
    • 1
この回答へのお礼

ご丁寧にありがとうございます!

お礼日時:2018/11/07 12:08

No.2です。



> 日本語で書いてみましたがやはりよくわかりません…

「何がわからないのか」、「何処でつまづいているのか」が具体的にわかりません。
まずは問題の文面を読んで、「つまりそれは入力された値に対してこういう仕様のVの字を印字すればよいのだ」と言えるようになりましょう。
これは作成したいプログラムの機能仕様を具体的にする、、、ということです。
ご質問に貼られた問題文にはそこがハッキリ書かれていません。例の内容でそこをわからせようとしている。。。
「そこのところの作成&理解もちゃんと出来ないと解答出来ないよ」という問題作成者の意図なのか、問題作成者自身が仕様をしっかりまとめてからプログラム作成する事に関して素人なのかはわかりませんが。。。:-)
    • good
    • 0
この回答へのお礼

#include<studio.h>
int main(void)
int a,i,j;
printf (“sizeの値を入力してください:”);
scanf(“%d”,&a);
for(i=1;i<=a-1;i++){
for(j=1;j<=i-1;j++){
printf(“_”);
}
printf(“*”);
for(j=1;j<=(a-i)*2-1;j++){
printf(“_”);
}
printf(“*”);
for(j=1;j<=i-1;j++){
printf(“_”);
}
printf(“¥n”);
}
for(i=1;i<=a-1;i++){
printf(“_”);
}
printf(“*”);
for(i=1;i<=a-1;i++){
printf(“_”);
}
return 0;
}
こうするとエラーが出ます

お礼日時:2018/11/07 20:55

もしかして答えをプログラミング言語で考えていませんか?


そうではなく日常使っている自然言語(多くの日本人は日本語)でアルゴリズムを考えるのです。
具体的には入力されるV字を書く行数と _ や * の数の間にどのような関係性があるかを出題にある例をよく観察して見つけ、その関係性を日本語を使った箇条書きなどで処理手順として表すのです。
それが出来ればあとはその箇条書きなどの日本語をプログラミング言語に翻訳すればよいだけです。

ちなみにこの「日本語を使った箇条書きなど」がソフトウェアの設計(の一部)です。
そして「日本語をプログラミング言語に翻訳」がコーディングです。
小学校の授業ではじまるプログラミングは前者を学ぶものです。「入力に対して求める出力(動作)を得るには入力をどのような手順で処理したらよいか」と考える力を身に着けようというものですね。


[おまけ]
*でV字を書くので最期の行には*が1個だけですが、行の先頭から1個しかない*までの前に何個_がありますか?
その数と入力された値(=行数)の関係は?
V字なので最終行の1個しかない*の後ろの_の数は*の前の_の数と同じでないと綺麗なV字になりません。ということは入力された値から各行の_と*の合計文字数を求めることが出来ますね。

参考まで。
    • good
    • 1
この回答へのお礼

ありがとうございます!
まず日本語で考えてみることにします!詳しくありがとうございます

お礼日時:2018/11/07 11:58

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