【2018年4月開学】東京通信大学Part.3
■ このスレッドは過去ログ倉庫に格納されています
公式サイト https://www.internet.ac.jp/ 前スレ 【2018年4月開学】東京通信大学Part.2 [無断転載禁止](c)2ch.net https://mao.5ch.net/test/read.cgi/lifework/1523608385/l50 Part.1 https://mao.5ch.net/test/read.cgi/lifework/1504958052/ 東京通信大学 ・学部 学科 情報マネジメント学部情報マネジメント学科 人間福祉学部 人間福祉学科 ・キャンパス 東京 新宿駅前キャンパス(総合校舎コクーンタワー) 大阪 大阪駅前サテライトキャンパス (大阪モード学園・HAL大阪 総合校舎) 名古屋 名古屋駅前サテライトキャンパス (総合校舎スパイラルタワーズ) 設置者 学校法人 日本教育財団(旧学校法人モード学園) #include <stdio.h> int main(int argc, char *argv[]){ int d, M; scanf("%d",&M); for(; scanf("%d", &d)==1;){ if( d>M ) M= 2;; } printf("%d\n", 1); return 0; } 3-3 ? >>55 できました! scanf("%d", &d); の部分を消すだけだったとは…自分でもこの部分をなんで書いたか分からなかったです笑。お力添え感謝したします。 3-3です。ここからどうすれば良いか分からないので、力を貸してください #include <stdio.h> int main(int argc, char *argv[]){ int d, M; scanf("%d",&M); for(; scanf("%d", &d)==1;){ if( d<M ) M= d;; } printf("%d\n", M); return 0; } >>61 お題は「データの個数・最小値をこの順に1行ずつ使って書き出す。」 しかしそのコードでは個数を数えていない。 変数[i]を追加して、for文の中にいれる。 初期値は1で、繰り返すたびにi++だよ。 出力にもiの値を出力するようにすればOK! 11月5日 22:30 2-1 206名 (52.8%) コピペ 2-4 164名 (42.1%) 変数 for文 3-4 102名 (26.2%) 変数 for文 4-4 31名 (7.9%) 条件分岐 5-4 30名 (7.7%) ライブラリ 6-4 8名 (2.1%) 配列 7-4 4名 (1.0%) 長桁計算 第二回と第三回は明日が締切だよ。 でも締切を過ぎても再提出できるから大丈夫。おちついていこう。 63さん #include <stdio.h> int main(int argc, char *argv[]){ int d, M, i; scanf("%d",&M); for(i=1; scanf("%d", &d)==1;){ if( d<M ) M= d;; } printf("%d\n", M); return 0; }ですか? >>65 もうひといき。 i++ が入ってないよ。for文の中に。 それからprintfでiも出力しておかないと。 Mを出力してる行の上に同じものをコピペして、Mをiに変えるだけだよ。 #include <stdio.h> int main(int argc, char *argv[]){ int d, M, i; scanf("%d",&M); for(i=1; scanf("%d", &d)==1,i++;){ if( d<M ) M= d;; } printf("%d\n", i); printf("%d\n", M); return 0; } エラーになりました ・・ 66さんありがとうございました なんとかできました^^: #include <stdio.h> int main(int argc, char *argv[]){ int d, M, i; scanf("%d",&M); for(; scanf("%d", &d)==1;i++){ if( d>M ) M= d;; } printf("%d\n", i); printf("%d\n", M); printf("%,3f\n", M); return 0; 3-4? >>70 いままでのは惜しいとこまでいってたけど、今度のはまだぜんぜん出来てない。 @ お題は「データの最大値・平均値・最小値をこの順に1行ずつ使って書き出す。」 変数Mは最大値を表している。 if( d>M ) M= d; これは読み込んだ値がMより大きい場合、Mにdを代入する。 ここまで正しい。 いけてないのは、 最小値を格納する変数m(小文字のm)が無いこと。 変数mを定義して、Mと同様の処理を追加する。最小値なので d<m ここだけは大文字のMのときと逆にする。最小と最大の違いね。 A for文の中に、iの初期化がない。i=1を追加しておいて。 B printf("%d\n", i);? 【読み込んだ回数=データの個数】 printf("%d\n", M);? 【データの最大値を出力】 printf("%,3f\n", M);? 【データの最大値を小数点以下3桁で出力】 まず、データの個数はお題で求められていないので必要ない。 最大値を出力の行は正しい。 その次に最小値を出力する。前述のm(小文字)に変えて、小数点以下3桁の表示形式を加える。doubleへの型変更も必要。 おそらくまだわからないだろうから、出来たとこまでまたアップして。 >>70 つづき printf("%,3f\n", M); ここの、%と3の間はカンマではなくピリオド(ドット)が正しいよ。 お題で求められているのは最大・平均・最小の順なので、 printf(iではなくMに変える) printf(Mではなくs/iに変えて、小数点いか3桁と指示する) printf(最小値なのでMではなくmを出力) 71さん ほんとうにありがとうございます。 明日またやってみます、少しずつ判ってきた気がします。またコメントしますね #include <stdio.h> int main(int argc, char *argv[]){ int d, M, i; scanf("%d",&M); for(i=1; scanf("%d", &d)==1;i++){ if( d>M ) M= d; if( d<m ) m= d;; } printf("%d\n", M); printf("%.3f\n", s/i); printf("%d\n", m); return 0; でp2-2.c: In function 'main': p2-2.c:8:23: error: 'm' undeclared (first use in this function) if( d>M ) M= d; if( d<m ) m= d;; ^ p2-2.c:8:23: note: each undeclared identifier is reported only once for each function it appears in p2-2.c:11:18: error: 's' undeclared (first use in this function) printf("%.3f\n", s/i); ^ p2-2.c:13:1: error: expected declaration or statement at end of input return 0; ^とでました >>74 mとsが宣言されていない 最初の1文字目を読み込んだ後、sとmとMは全て読み込んだ値を代入しておくこと。 s/iを出力するとき、int型からdouble型へ変換する。 (double)って前にアップしたコードでは書いていたはず。 これを修正すれば100点。 特に影響ないけど、セミコロンが2つダブってるところもある。 >>63 ご返事ありがとうございます。 できました! #include <stdio.h> int main(int argc, char *argv[]){ int d, M, i, m, s; scanf("%d",&M); for(i=1; scanf("%d", &d)==1;i++){ if( d>M ) M= d; if( d<m ) m= d;; } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; でもエラーが出ます プログラミングで苦しんだ後はタレント教員で息抜きしましょう ttps://twitter.com/tsukasa_TOU/status/1059467368659742720 https://twitter.com/5chan_nel (5ch newer account) クレクレくんばかりになったな。まぁ過疎ってるよりいいか >>78 Mに一文字目を読み込んだ後、sとmにそれを代入すること。 それをしてないからsとmはからっぽのまま。 もうひとつ、sにdを足してない。 { }の中にもうひとつ、s+=dの記述が必要。 #include <stdio.h> int main(int argc, char *argv[]){ int d, M, i, m, s; scanf("%d",&M); for(i=1; scanf("%d", &d)==1;i++){ if( d>M ) M= d; if( d<m ) m= d;; s+=d } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; >>83 >>84 代入は、 m= M; s= M; こうだよ。これで、Mとmとは全て同じ値(最初に読み取った値)になる。 1文字読み取った時点では、それが最大値であり最小値でもあり、さらに合計値でもある。 需要があるっていいね。今日も報告いくよ! 11月6日(第二回第三回の締切日)19:20 2-1 229名 (58.7%) コピペ 2-4 183名 (46.9%) 変数 for文 3-4 121名 (31.0%) 変数 for文 4-4 32名 (8.2%) 条件分岐 5-4 31名 (7.9%) ライブラリ 6-4 8名 (2.1%) 配列 7-4 4名 (1.0%) 長桁計算 第六回、第七回は仕方ないにしても、 第三回、第四回の伸び悩みっぷりが激しい。 もう時間が無い。 総力戦で挑め戦士たちよ。 ここで晒すのも、ツイで投げるのも、学内yammerでhelpも、お友達のプログラマにも、Google先生を使い倒すのも、理解できなくともいい、まずはいかなる手段を使ってでも突破して欲しい。 後で見返して勉強すれば良いさ。 多分やらんけど。 85さん エラーでます #include <stdio.h> int main(int argc, char *argv[]){ int d, M, i, m, s; scanf("%d",&M); for(i=1; scanf("%d", &d)==1;i++){ if( d>M ) M= d; if( d<m ) m= M;; s+=d s= M } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; p2-2.c: In function 'main': p2-2.c:9:1: error: stray '\343' in program s+=d s= M ^ p2-2.c:9:1: error: stray '\200' in program p2-2.c:9:1: error: stray '\200' in program p2-2.c:9:8: error: expected ';' before 's' s+=d s= M ^ p2-2.c:15:1: error: expected declaration or statement at end of input return 0; ^ もうわけわかりません >>89 int d, M, i, m, s;?【変数dとMとiとmとsを宣言した。正しい。】 scanf("%d",&M);?【一文字目をMに読み込んだ。しかしsにもmにもそれを代入していない。】 for(i=1; scanf("%d", &d)==1;i++){【読み込めなくなるまで繰り返す。正しい。】? if( d>M ) M= d; 【読み込んだ値がMより大きければその値をMに代入。正しい。】 if( d<m ) m= M;;?【読み込んだ値がMより小さければ、今までの最大値を最小値mに代入する(どう考えてもおかしい)】 s+=d s= M?【セミコロンが抜けてるから2つの文が繋がってる】 ※セミコロンがあったとして、 s+=d;【読み込んだ値を合計値に加算する。正しい。】 s= M;【計算した合計値を捨てて最大値の値に書き換える(なぜ!?)】 >>89 続き ※最後に必要な}が無くなってる。>>80 が既に指摘してるよ。見てる? 今の所ぜんぜん進歩してない。てゆうかひどくなってる。 もう一度イチからやり直してみてはどう? @一文字目を何等かの変数に読み込む。 Aそれをs, m, Mに代入して全て同じ値にしておく。 一文字目を読み込んだ時点ではその値が最大値であり最小値であり合計でもあるから。 B二文字目以降を読み取るを繰り返す(for文は今書いてるものでOK) C繰り返しの中に if( d>M ) M= d; if( d<m ) m= d; s+= d; を置いておく。 dが最大値より大きければそれを最大値に代入、 dが最小値より小さければそれを最小値に代入、 合計値にはそのままdを合算する、 ってこと。 出力のあたりはちゃんとできてるよ。 セミコロンがダブってるとこも直されてないし、 最後のカッコが抜けてるのにも気づいてないし、 自分のコードをしっかり見つめてる気がしないよ。 >>89 p2-2.c:9:1: error: stray '\343' in program p2-2.c:9:1: error: stray '\200' in program p2-2.c:9:1: error: stray '\200' in program に関しては以下を見よ。 http://owlsoft.xyz/cocos2dx/stray-200-in-program/ そして常に半角で入力しろ! プログラミングの講義についていくの辛くなってきた 小テスト10問なのは他の講義と同じだが記述問題多くて間違いやすくて時間もかかる 7回目の小テスト2問しか正解しなかったわ 「動画みて復習しなさい」って書いてたから明日動画見ながらやってみるけど良い点取れる気がしない さらに毎回演習が4本追加されるのが苦痛 なんとか6-4まで来たけどリングの呪いってなんだよまったく 91さん いや代入ってなんですか。 どこに代入するんですか。 一文字目をMに読み込んだ。しかしsにもmにもそれを代入していない。】のいみがわかりません。 >>86 いつもご報告いただいてお礼に1学期の結果を載せます。 データは比較することで見えることがあるとどっかの学校で習った思いがあるし。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 初級プログラミングI 1学期 Result 「哀・戦士 編」 (脳内BGMは各自に任せる) 1学期 プログラミング・ベース 総乗船者数:191名 *なお、1学期と3学期では多少の手が加えられているのでそのあたりご理解頂きたい。3-4以外は全て3課題しか無い。 2-1 113名 (59.2%) コピペ 2-3 100名 (52.4%) 変数 for文 3-4 62名 (32.5%) 変数 for文 4-3 49名 (25.7%) 条件分岐 5-3 56名 (29.3%) ライブラリ 6-3 42名 (22.0%) 配列 7-3 39名 (20.4%) 長桁計算 8-3 13名 (16.2%) コマンドライン なお、死者、負傷者、行方不明者、および民間人、計144が連邦軍本部ジャブローにて下船。 47名がそのまま連邦軍帰属となり、再び宇宙へ還るのであった。 死闘に次ぐ死闘。47名の命運は。。 次回、プラグラミングII 2学期 「めぐりあい宇宙 編」ご期待ください。 >>96 ごめん修正。 2-1 113名 (59.2%) コピペ 2-3 100名 (52.4%) 変数 for文 3-4 62名 (32.5%) 変数 for文 4-3 49名 (25.7%) 条件分岐 5-3 56名 (29.3%) ライブラリ 6-3 42名 (22.0%) 配列 7-3 39名 (20.4%) 長桁計算 8-3 31名 (16.2%) コマンドライン だった。ちなみに本当の地獄はここからで精鋭47名がどうなったかと言うと・・。 #include <stdio.h> int main(int argc, char *argv[]){ int d, M, s, i, m scanf("%d",&M); scanf("%d",&m); scanf("%d",&s); scanf("%d",&i); for(i=1; scanf("%d", &d)==1;i++;){ if( d>M ) M= d; if( d<m ) m= d; s+=d } printf("%d\n", M); return 0; }こんな感じですかね? #include <stdio.h> int main(int argc, char *argv[]){ int d, M, s, i, m scanf("%d",&M); scanf("%d",&m); scanf("%d",&s); scanf("%d",&i); for(i=1; scanf("%d", &d)==1;i++;){ if( d>M ) M= d; if( d<m ) m= d; s+=d } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; } >>100 このスレを頭から見直すといい。既に回答が出ている。 え、素朴な疑問ですがこのMを大文字のMにしてたり小文字のmにしてたりも意味があるんですか?過去文をみるとMは最大といわれてますがMAXの頭文字Mの意味ですか?intのあとの順番も意味があるんですか? >>102 それは無い。エラーというのはコンパイルエラーだと思うが。 s+=d を s+=d; とすればコンパイルエラーは通るだろう。 しかし、実行すると結果はグチャグチャだ。 何故か? scanf("%d",&M); scanf("%d",&m); scanf("%d",&s); scanf("%d",&i); お前さんの頭の中では、同じデータが全ての変数に入力されるとなっているが、 scanfを実行するたびに次のデータを読み込むので、同じデータは入らない。 どうすれば良いか? >26を読むんだ。 この辺りで考えながらコーディングしないと4から先は辛いぞ。 #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s, i; scanf("%d", &M); M= m; M=s for(i= 1; scanf("%d", &d)== 1; i++){ s+= d; if( d>M ) M= d; if( d<m ) m= d; } printf("%d\n", M); printf("%.3f\n", s/i); printf("%d\n", m); return 0; } 近くなってきてますか?! >>104 いいぞ!よくなってきた。 ヒントを言おう。 代入には方向がある。 M=m; と書くと 右にあるものを左に入れる。 つまりこうなる M←m もう一度見直すんだ。 >>104 後、一つの命令が終わったらセミコロンを打つ癖をつけるんだ。 #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s, i; scanf("%d", &M); M= m; M=s for(i= 1; scanf("%d", &d)== 1; i++){ s+= d; if( d>M ) M= s; if( d<m ) M= m; } printf("%d\n", M); printf("%.3f\n", s/i); printf("%d\n", m); return 0; } #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s, i; scanf("%d", &M); M= m; M=s for(i= 1; scanf("%d", &d)== 1; i++){ s+= d; if( d>M ) M= s; if( d<m ) M= m; } printf("%d\n", M); printf("%.3f\n", s/i); printf("%d\n", m); return 0; } これ別にMやmじゃなくてもFとかfでも何でもいいんですか?英語が何とかは意味はないんですか? int部分は >>109 変数は自由に定義できるから、名前はなんでも良い。 #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s, i, d; scanf("%d", &M); M= m; M=s; for(i= 1; scanf("%d", &d)== 1; i++){ s+= d; if( d>M ) M= s; if( d<m ) M= m; } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; } >>112 肌色はワーニングだ。 エラーメッセージがないからわからんが、初期値未定義だろう。 これは今は忘れろ。下記に気づけば無くなるだろう。 >代入には方向がある。 といったよな。 scanf("%d", &M); M= m; M=s; どうなるか頭の中で考えるんだ。 #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s; scanf("%d", &M); M= m; M=s; for( scanf("%d", &d)== 1; { s+= d; if( d>M ) M= m; if( d<m ) m= s; } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; } そのひんとをもとにdとi消したらとんでもないエラーになったんですが・・・ p2-2.c: In function 'main': p2-2.c:8:19: error: 'd' undeclared (first use in this function) for( scanf("%d", &d)== 1; ^ p2-2.c:8:19: note: each undeclared identifier is reported only once for each function it appears in p2-2.c:9:1: error: expected expression before '{' token { ^ p2-2.c:17:28: error: 'i' undeclared (first use in this function) printf("%.3f\n",(double) s/i); ^ p2-2.c:17:30: error: expected ')' before ';' token printf("%.3f\n",(double) s/i); ^ p2-2.c:21:1: error: expected expression before '}' token } ^ p2-2.c:21:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ >>115 遠くなった。 dとiを消せなどと一言も言ってないぞ。 前の状態に戻して、 >113 をもう一回よく見て考えるんだ。 #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s, i, d; scanf("%d", &M); M= m; M=s; for(i= 1; scanf("%d", &d)== 1; i++){ s+= d; if( d>M ) M= s; if( d<m ) M= m; } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; } #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s, i, d; scanf("%d", &M); M= m; M=s; for(i= 1; scanf("%d", &d)== 1; i++){ s+= d; if( d>M ) M= d; if( d<m ) M= m; } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; } あってますか? >>117 scanf("%d", &M); が解っていないんだな。 これは標準入力から値を読み込み、Mという変数にに格納するという命令だ。 そして代入は方向がある。 右には左の値が代入される。 だとするとこれはなんだ? M=m;M=s; どう直せば良いか? >>119 大間違い。申し訳ない。 >右には左の値が代入される。 左には右の値が代入される。 肝心なところケアミスした。すまん。 もうお手上げです教えてください、どんなにかんがえてもおかしいところがわかりません M=m;M=s; m=M;s=M; これの違いが分かるか? 全然意味が違うことなんだ。 それと、もうこれが最後となる。上手くいったらソースは晒さなくていい。 いい加減大学に目をつけられるぞ。 >>93 通学制の大学でもこの量この内容を1単位でやってたんだろうか。 プログラミングだけ勉強したいわけじゃないのに、他の授業の妨げになるくらいの分量。通学制だったら他の教授からも苦情が来ると思う。 週2コマ半年分くらいなんじゃないか。 >>124 確かにな。こんなのばっか助けてくれと言われても今後無視しよう。「どんなにかんがえても」「何故か」とかいう修飾子が腹立たしい。10分も考えていないのにだ。 自分だけ考えようとしていてきっかけ作りには教えてもいいと思うが、>121のような甘えたメンタリティの奴はほっとこう。それがコイツのためだ。 なあにこの調子じゃ後1週間で4-5はまず無理だろう。 なんと >125が おきあがり なかまに なりたそうに こちらをみている! なかまにしてあげますか? >>123 本当に他の単位にも影響でそうだから 単位認定試験後のアンケートで 意見言うことにしたわ それは>>91 のおれが昨日早い時間に酔っぱらって寝てしまったからだよ。 M= m; M=s;【二つとも向きが逆】 m= M; s= M; とする。mとsにMが持ってる値を入れ込む(代入)って意味。 if( d>M ) M= d;【向きが逆】 if( d<m ) M= m;【向きが逆】 もともと合ってたのを、逆にしろと言われて入れ替えてしまった。 逆にしろと言われたのはここではなく上記の箇所だった。 >>118 のコードはそれら4ヶ所が全て逆になっているので、それらを入れ替えれば完成。 >>126 (アンカわすれた) それは>>91 のおれが昨日早い時間に酔っぱらって寝てしまったからだよ。 M= m; M=s;【二つとも向きが逆】 m= M; s= M; とする。mとsにMが持ってる値を入れ込む(代入)って意味。 if( d>M ) M= d;【向きが逆】 if( d<m ) M= m;【向きが逆】 もともと合ってたのを、逆にしろと言われて入れ替えてしまった。 逆にしろと言われたのはここではなく上記の箇所だった。 >>118 のコードはそれら4ヶ所が全て逆になっているので、それらを入れ替えれば完成。 2回目の挑戦者がどう動くかだな 2回やってだめだったら3回目もやるかどうか いちおうここのURLとログを大学に送っておいたわ 答え教えてくれとか、ここでやる事じゃないと思う わかるまで留年したっていいんだよ 質問してる人に言いたい。 コーディングしているpcで「ggrks」この単語を検索しなさい。それから質問したらええ。 >>102 Mとmは別の文字(変数)として扱われるよ。 今回は最大値はM、最小値をmとして計算に使ってる。 最大はMAX、最小はMinimumでどちらも頭文字がエム。 なので大文字小文字で最大値と最小値を表現している。 xとyでもいいし、MAXとMINと書いても良い。 講義の中で教授がMとmを使ってるから学生はそれに合わせてるだけ。 intのあとの順番には意味はないよ。 >>123 言うほど多い量の課題は出てないよ。 お題4問を1週間でやればいいんだから、かなり緩いレベル。 問題はこのスレに出てるように、列挙された数字から 最大値と最小値と合計を書きだす、といった程度のもの。 コードを見ると初心者にはちんぷんかんぷんだろうけど、 講義の中でほとんど完成されたコードが提示されていて、 必要な箇所を変更するだけ、という方式。 こんなの負担でもなんでもないよ。 >>133 別にわざわざ送らなくったって教授陣や大学関係者もとっくにここを見てるよ。 あたり前だろ。 教授の方針は「学生同士掲示板で助け合って解決してみなさい」って感じだよ。 だから誰も答をまるまるコピペしたりしないし、わからない人にわかるように丁寧に説明してる。 2(5)chのくせにクソ真面目すぎるのは粋じゃないけど、大学側としては微笑ましい光景だろう。 今日の報告。 19/14 19:15 2-1 233名 (59.7%) コピペ 2-4 189名 (48.5%) 変数 for文 3-4 128名 (32.8%) 変数 for文 4-4 34名 (8.7%) 条件分岐 5-4 34名 (8.7%) ライブラリ 6-4 9名 (2.3%) 配列 7-4 4名 (1.0%) 長桁計算 >>97 そんなデータがあったとは! 2-1が割合(%)でみるとほぼ同じ値になってきた。 第五回第六回を比較すると、 締切近くならないとケツに火がつかない人が多いってのがわかるね。 >>138 おおっ。データの近似性の驚き。人はなかなか変わらんですね。 >>136 課題の量だけでなく、主に言いたいのは内容のこと。 本当に、通学制では90分✖8回の授業でこれだけの内容を教えられたのか。学生とのやり取りがない分、映像60分と対面授業90分を同等として。 駆け足すぎて授業の何倍もの時間を自習に割かないと、初心者はついていけない。初級なのに。 課題については、未経験者が授業+小テスト+自習で大学が基準としている時間の1.5〜2倍くらいで過半数の学生が解ける程度なら、4題は受け入れられる。ただし、他教科では実習がある場合、大学が基準とする時間に合わせて授業を減らしているものもある。 通学制の大学生は生活の中心が大学だが、通信制では本業のある社会人も多いはず。時間を作って計画立てて受講しようにも、初級プログラミングのせいで他の学習計画まで崩れてしまう。 自分は経営8情報2くらいの気持ちで入学したから、より勉強したい教科の妨げにしか感じない。 動画15分✕4本と小テスト30分が基本構成です ※演習はサービス残業になります >>142 if( d<m ) M= m;【向きが逆】 ここ間違った。逆じゃなくてdをmに代入、ね。 4-4で詰んじゃった どうやって差分と併合組み合わせるんだろうどちらかしか表示されないや >>144 scanf("%d",&x); if(x==1){ これでどう? >>145 ええと講義の併合のところをまるまる写してるんですけど int df, dg; int ef, eg; ef= fscanf(f,"%d", &df); eg= fscanf(g,"%d", &dg); while( ef==1 && eg==1){ if( df==dg ){ printf("%d\n",df); ......以下略 最初の宣言でint x;を追加してwhileの中にscanf("%d",&x);とif(x==1){を書くということでしょうか トンチンカンなこと言ってたらすいません >>146 単にそれを書けばいいってわけじゃないよ。条件分岐を使うって察してほしかった。 scanf("%d",&x); 【標準入力の値をxに読み取る】 if(x==1){ 【もし読み取った値が1なら以下の処理を行う】 ---講義内で提示された併合のプログラム---- }else if(x==-1){ 【もし標準入力の値がマイナス1だったら】 ---講義内で提示された差分のプログラム---- } こんな感じ。書き方はいろいろあるけど、併合と差分を同時にやるんじゃなくて、どちらをやるか最初に決めてしまうんだ。 もちろんxはfでもnでも何の文字でもいいよ。 11月8日 21:00 2-1 234名 (60.0%) コピペ 2-4 191名 (49.0%) 変数 for文 3-4 129名 (33.1%) 変数 for文 4-4 38名 (9.7%) 条件分岐 5-4 36名 (9.2%) ライブラリ 6-4 9名 (2.3%) 配列 7-4 4名 (1.0%) 長桁計算 福祉のほうで入学考えてるのですが数学は必須ですか? >>147 すごい!!ありがとうございます合格できました! >>143 #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s, i, d; scanf("%d", &M); m= M; s=M; for(i= 1; scanf("%d", &d)== 1; i++){ s+= d; if( d>M ) d= M; if( d<m ) m= M; } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; } 20てんだけど? >>149 数学は必須じゃないよ。 [数学入門、数学応用、物理学概論、生物学概論、予防医学、生命と人間] の中から2つ以上を選択すればいい。 >>151 20点と表示された場所のすぐ下に、「成功例」が一つと、 「失敗例」が4つ表示できるようになってる。 タブで切り替えてそれぞれを見てみよう。 正解の出力例と、自分のプログラムの出力が表示されるので、 どこが違うのか見ると一目瞭然。 dをmに代入ができてないんだなってすぐにわかる。 その箇所を修正すればいいんだ。 >>151 いってるいみがわからん。 なぜdなんだ? Mにmを、Mにsをじゃないのか? #include <stdio.h> int main(int argc, char *argv[]){ int m, M, s, i, d; scanf("%d", &M); m= M; s=M; for(i= 1; scanf("%d", &d)== 1; i++){ s+= d; if( d>M ) M= d; if( d<m ) M= d; } printf("%d\n", M); printf("%.3f\n",(double) s/i); printf("%d\n", m); return 0; } M=mだとmをMに代入するという方向でいいんだよな? if( d<m ) M= d; dがmより小さい時、Mにdを入れる? Mって最大値として使ってるんじゃないの? 甘えん坊が多すぎ、 仮にも大学。 何でここまで手取り足取りが 当然みたいな人間がいるのだろう。 ここまで教えるってサービスの次元を 超えてると思う。 情報処理系の夜間高校でも入り直して 勉強し直したらどうか? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる