演習問題4】
4-1. キーボードから整数値を入力して、奇数か偶数かを表示させる。
(if文で記述する)

4-2. キーボードから2つの整数値を入力して2つの値の大、等、小の関係を表示する。
(if文で記述する)

4-3. 月を入力し、入力した月の日数を表示する。ただし2月は28日とする。
(if文で記述する)

4-4. 月を入力し、入力した月の日数を表示する。ただし2月は28日とする。
(switch文で記述する)

【応用問題4】
r4-1. 問題4-1のプログラムで、さらに値が4の倍数であった場合に4の倍数であること
も表示する。
※ヒント:0は4の倍数ではない

r4-2. キーボードから3つの整数値を入力して3つの値の大、中、小の関係を表示
する。
(if文で記述する)

r4-3. 月を入力し、入力した月の日数を表示するプログラムで、入力した月が1~12の
範囲を越えていた場合エラーメッセージを表示させる。

A 回答 (3件)

 こういう質問の仕方では、よほど親切な人でないと答えてくれませんよ。



 せめて、どこがわからないのか示してください。たとえば最初の問題では

・キーボードから整数値を入力する方法がわからないのか
・奇数/偶数の判定方法がわからないのか
・その他、どこがわからないのか

を書くべきです。

まさか、自分で宿題を考えるのが面倒だから初めから丸投げ…だとは考えたくありませんが。
    • good
    • 0

ここは宿題の答えを「まるまる」教わるところではありません。


ご自分で考えてわからない部分だけを質問して下さい。
何がわからないのですか?
キーボードから入力する手順のプログラムがわからないのか、
if文の書き方がわからないのか...
そもそもC言語の初級レベルの本をみればわかることでしょうに。
    • good
    • 0

もしかして、そのまま


ソースコードを教えてくださいって言うことではないですよね??

いくらなんでも、それは・・・
    • good
    • 0

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q英語の宿題を丸投げするgooの質問者

こんばんわ。
英語の宿題を丸投げするgooの質問者についてどう思いますか。

「宿題を自分でやらないでgooでやってもらって一番損をするのは質問者本人だから構わない」というお立場の方もいらしゃるようですが、いかがなものでしょうか。

Aベストアンサー

英語だけでなく、ネット自体の普及で簡単に答えを知って、どんどん今の学生の頭が悪くなるのは嫌ですね。

Qif文の中にfor文なのか、for文の中にif文なのか

for文の中に分岐を作って計算するのと、if文を先に書いてからfor文にするのとではどちらが一般的ですか?

for ( i = 0; i < n; i++)
{
if ( a > b ) {
y = i;
} else {
y = i * 2;
}
printf( "%d", y );
}

とするか、

if ( a > b ) {
for ( i = 0; i < n; i++)
{
y = i;
}
} else {
for ( i = 0; i < n; i++)
{
y = i * 2;
}
}
printf( "%d", y );

とするかという事です。
ちなみにプログラムは適当ですのでちょっとしたミスはご勘弁ください。

個人的には後者の方が分岐が少ない分負担は減ると思うのですが、前者の方がすっきりとしているのでこちらを使いたいのです。

もちろん、微々たる差なので好きな方を使えという意見もあると思いますが、皆さんはどちらを使いますか?

for文の中に分岐を作って計算するのと、if文を先に書いてからfor文にするのとではどちらが一般的ですか?

for ( i = 0; i < n; i++)
{
if ( a > b ) {
y = i;
} else {
y = i * 2;
}
printf( "%d", y );
}

とするか、

if ( a > b ) {
for ( i = 0; i < n; i++)
{
y = i;
}
} else {
for ( i = 0; i < n; i++)
{
y = i * 2;
}
}
printf( "%d", y );

とするかという事です。
ちなみにプログラムは適当で...続きを読む

Aベストアンサー

基本は、「同じ(ほとんど同じ)ものが複数存在すると、必ず矛盾が発生する」という言葉に集約できるかなと思います。
後者の場合、i < n じゃなくて、i <= n だったなんていうときにどちらか一方の修正を漏らして、なおかつ、テストで、片方のループしか検証できていなかったなどということは起こりがちです。

また、コンパイラやコンピュータの負担が多い少ないは、本当にそれを考えなければならいほどシビアなときだけ気にすればOKです。
たいていの場合、最近のコンパイラは、普通のプログラマよりよっぽどうまく最適化をしてくれたりしますし。

あと、条件を整える → 実行する という2段階もありです。
この例だと、

int scale = (a > b) ? 1 : 2;
for(i = 0; i < n; i++)
{
y = i * scale;
}
printf( "%d", y );

たとえば、こんな感じ。

Q英語の作文の宿題を手伝ってほしい

高校の英語の宿題で、エッセイ? という 作文の宿題があるんですけど、

「行ってみたい国について」 の英作文を書こうとおもうんですけど、
うまくかけません

なので
英語が得意な人、簡単に文章を英文で書いてほしいんです。

文はけっこう長めにしてもらえると助かります。

ほんとお願いします。

Aベストアンサー

例えば、どんな文章を書くつもりなのか。
「行ってみたい国について」の作文も考えろと?
まずは日本語で書いてみて、それを英訳してみましょうね。

あなたが出したお題だと
“I want to go to England someday.”が関の山です。

まずは自分で書いてご覧なさい。

Qxのy乗を求める問題で…(ただし、xもyも正の整数値)

xもyも正の整数値を示し、xのy乗の値を算出する問題なのですが、やり方がよくわかりません(;_;)
解法はpowを使うやり方と、for文の多重ループを使ってやるやり方があり、どちらのやり方も試しなさい、、、ということです(;_;)

特によくわからないのがfor文を使ったやり方で、ヒントは
「xの1乗はxです、計算が必要なのは2乗以上の場合。なのでx*=xをy-1回繰り返せばOK」
ということですが、いまいち理解できませんでした。

完成した表は
    1 2 3 4 5
1 1 1 1 1 1
2 2 4 6 8 16
3 3 9 27 81 243
4 4 16 64 256 1024
5 5 25 125 625 3125
といった感じになるそうです。

どなたか教えてください<m(__)m>

xもyも正の整数値を示し、xのy乗の値を算出する問題なのですが、やり方がよくわかりません(;_;)
解法はpowを使うやり方と、for文の多重ループを使ってやるやり方があり、どちらのやり方も試しなさい、、、ということです(;_;)

特によくわからないのがfor文を使ったやり方で、ヒントは
「xの1乗はxです、計算が必要なのは2乗以上の場合。なのでx*=xをy-1回繰り返せばOK」
ということですが、いまいち理解できませんでした。

完成した表は
    1 2 3 4 5
1 1 1 1 ...続きを読む

Aベストアンサー

>#2
0は「正の整数」には含まないのでy = 0は考慮に入れなくていいんじゃないですか?
確かにヒントをベタに実行するとy > 2のときに危険ですが。

int i, ans; // ループカウンタと解
ans = x;
for(i = 0; i < y - 1; i ++) ans *= x;

となりますか。

Q英語の辞書を三年かけて丸写しする宿題が出ました。 これって、意味がありますか?

英語の辞書を三年かけて丸写しする宿題が出ました。
これって、意味がありますか?

Aベストアンサー

質問の題意から、あなたは私立の中学生であると考えました。先ず、宿題を出した先生に意味を聞かれたらどうでしょうか。宿題を出した先生には何か考えがあるかもしれません。宿題を出していない回答者には、いろんな意見があるかもしれませんが、あなたにとって、あまり参考になるとは考えられません。

Qif文の中のif文・・・について

質問させていただきます。
if文の中のif文の記述の仕方について質問があります。

例えば

if ( x > 0 ){
a = b+c;

if ( a > 1)
d = e+f; ・・・1

if ( a < 1)
d = e-f; ・・・2

if ( a = 1 )
d = 1-g; ・・・3
}

h = d + i;

aが1より大きい場合は、1の処理を、aが1より小さい場合は2の処理を、aが1と同じであった場合、3の処理をして最終的に、h = d + i;の式の d に代入して h を求めたいと思っているのですが、うまくゆきません。

if文の中のif文の記述はどのようにすればよいのでしょうか?
よろしければご教示よろしくお願いします。

Aベストアンサー

既に回答があるとおり、等しいことを確かめるには「==」を使用します。

ところで、これはC言語において、よくあるミスです。
「=」はただの代入演算子であり、右辺の値を左辺に代入します。
そして「=」は評価結果として左辺に代入された結果の値を返します。
よって、
if (a = 1) // 処理

a = 1;
if (a) // 処理
と同等です。つまり、この場合であれば、
if (1) // 処理
となります。ifなどは0を偽、0以外を真として扱うので、
// 処理
は必ず実行されます。

一方「==」は、両辺が等しければ1を、そうでなければ0を返します。

なお、if (a = 1)といった表記は、上記のとおりに解釈されるため、特にエラーにはなりません。ただし、==と書くつもりでタイプミスの結果=となったのか、意図した記述なのかの判断が難しく、このような記述は避けるほうが無難です。

Q宿題 夏休みの宿題で英語で自己紹介文を作らなければいけないのですが、例の解読が全くできません

宿題




夏休みの宿題で英語で自己紹介文を作らなければいけないのですが、例の解読が全くできません(´~`)
日本語になおしていただけませんか?

鉛筆の部分は個人情報が書かれています
見にくくてすみません(;>_<;)

Aベストアンサー

続き
私には、良い家族がいます。
私は寿司が好きです。イクラとウニはとくに好きです。
しかし、私はアボカドが好きではありません。
私は時々ピアノを弾きます。
ピアノを上手く弾くことは出来ませんが、ピアノを弾くことは好きです。
私はギターを弾くことは出来ません。ギターを弾くことは難しいです。
ありがとうございました。
━━━━━━━━━━━━━
辞書を使って調べるように癖をつけると、英語の能力は伸びます。
頑張ってください

Qif~else文の中にまたif~else文をいれるには。

 このプログラムを思うように実行したいのですが、できません。
コンパイルはできるのですが、警告が4つほど出て、結果も自分が思ってるのとは違います。
プログラムのどこを改善すべきか教えてください。
OSはWindows XPで、コンパイラはボーランドのフリーコンパイラを使用しています。
#include<stdio.h>
int main(){
int a,b,c,d;
printf("1か0を入力してください。\n");
scanf("%d",&a);
if(a=0)
{
printf("2か3を入力してください。\n");
scanf("%d",&b);
if(b=2){
printf("今まで合計は%dです。\n",a+b);
}
if(b=3){
printf("今まで合計は%dです。\n",a+b);
}
else {
printf("指定した数字を入力して下さい。\n");
}
}
else if(a=1)
{
printf("あなたは%dを入力しました。\n",a);
}
else
{
printf("指定した数字を入力してください。\n");
}
return 0;
}

 このプログラムを思うように実行したいのですが、できません。
コンパイルはできるのですが、警告が4つほど出て、結果も自分が思ってるのとは違います。
プログラムのどこを改善すべきか教えてください。
OSはWindows XPで、コンパイラはボーランドのフリーコンパイラを使用しています。
#include<stdio.h>
int main(){
int a,b,c,d;
printf("1か0を入力してください。\n");
scanf("%d",&a);
if(a=0)
{
printf("2か3を入力してください。\n");
scanf("%d",&b);
if(b=2){
printf("今まで合計...続きを読む

Aベストアンサー

No1に追加です。No6のかたが回答されていますが、せっかく途中まで書いたので参考までに回答させていただきます。矢印のある行が変更したところです。(矢印は入力しないでください)今は試せないんですけど多分これでできると思います。うまくいかなかったらすいません。あと字下げしても投稿する際に左寄せになってしまうようなので見づらいかもしれませんが許してください。もっといいやり方があると思いますけど参考にしてみてください。

#include<stdio.h>
int main(){
int a,b,c,d;
printf("1か0を入力してください。\n");
scanf("%d",&a);
if(a==0) ←
{
printf("2か3を入力してください。\n");
scanf("%d",&b);
if(b==2) ←
{
printf("今まで合計は%dです。\n",a+b);
}
else  ←
{ 
if(b==3) ←
{ 
printf("今まで合計は%dです。\n",a+b); 
}
else  
{
  printf("指定した数字を入力して下さい。\n"); 
}  ←この } は20行目のelseを終了する意味
}  ←この } は14行目のelseを終了する意味
}  ←この } は7行目のifを終了する意味

if(a==1) ←初めのifが当てはまらなかったり、初めのifの処理を終えるとここへ来る。
{
printf("あなたは%dを入力しました。\n",a);
}
else ←
{
printf("指定した数字を入力してください。\n");
}
return 0;
}

No1に追加です。No6のかたが回答されていますが、せっかく途中まで書いたので参考までに回答させていただきます。矢印のある行が変更したところです。(矢印は入力しないでください)今は試せないんですけど多分これでできると思います。うまくいかなかったらすいません。あと字下げしても投稿する際に左寄せになってしまうようなので見づらいかもしれませんが許してください。もっといいやり方があると思いますけど参考にしてみてください。

#include<stdio.h>
int main(){
int a,b,c,d;
printf("1か0を入...続きを読む

Q英語の宿題で1日の日記を書かないとなんですけど、「中体連を応援した」を英語で何て書けばいいですか?

英語の宿題で1日の日記を書かないとなんですけど、「中体連を応援した」を英語で何て書けばいいですか?

Aベストアンサー

We cheered Tokyo Junior High School Physical Culture Association.

Q5人のテストの点数を入力すると最高点、最低点を 出力するプログラムをif文やfor文を用いて作成する

5人のテストの点数を入力すると最高点、最低点を
出力するプログラムをif文やfor文を用いて作成するにはどうすればよいでしょうか?

Aベストアンサー

https://oshiete.goo.ne.jp/qa/9455351.html
の繰り返しになるけど

まずは、日本語で「やり方」を書いてみましょう。
その各手順を、さらに分解して日本語で書いてみましょう。
そうやって分解していくと、「これはプログラミング言語では○○だ」ってレベルまでになるので、プログラミング言語で書きましょう。

わからなかったら、どの部分がわかってどの部分がわからないのかをはっきりさせて、わからない場所だけを尋ねるようにしましょう。


人気Q&Aランキング

おすすめ情報