X



トップページ生涯学習
1002コメント392KB

【2018年4月開学】東京通信大学Part.3

■ このスレッドは過去ログ倉庫に格納されています
0001名無し生涯学習
垢版 |
2018/11/01(木) 12:51:55.96ID:8asb699G0
公式サイト 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大阪 総合校舎)
 名古屋 名古屋駅前サテライトキャンパス (総合校舎スパイラルタワーズ)

設置者 学校法人 日本教育財団(旧学校法人モード学園)
0058名無し生涯学習
垢版 |
2018/11/05(月) 19:58:59.01ID:imlADz+D0
#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 ?
0059名無し生涯学習
垢版 |
2018/11/05(月) 20:14:09.32ID:KBI+25V20
>>55
できました!
scanf("%d", &d); の部分を消すだけだったとは…自分でもこの部分をなんで書いたか分からなかったです笑。お力添え感謝したします。
0060名無し生涯学習
垢版 |
2018/11/05(月) 20:54:18.47ID:CGYQsqDf0
卒業するまでこんな調子かね
0061名無し生涯学習
垢版 |
2018/11/05(月) 21:09:49.32ID:KBI+25V20
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;
}
0063名無し生涯学習
垢版 |
2018/11/05(月) 22:04:21.43ID:46uuEz1j0
>>61
お題は「データの個数・最小値をこの順に1行ずつ使って書き出す。」
しかしそのコードでは個数を数えていない。
変数[i]を追加して、for文の中にいれる。
初期値は1で、繰り返すたびにi++だよ。

出力にもiの値を出力するようにすればOK!
0064名無し生涯学習
垢版 |
2018/11/05(月) 22:31:32.90ID:IAGUjoU80
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%) 長桁計算

第二回と第三回は明日が締切だよ。
でも締切を過ぎても再提出できるから大丈夫。おちついていこう。
0065名無し生涯学習
垢版 |
2018/11/05(月) 22:35:10.43ID:imlADz+D0
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;
}ですか?
0066名無し生涯学習
垢版 |
2018/11/05(月) 23:00:06.64ID:7f/yPUHn0
>>65
もうひといき。
i++
が入ってないよ。for文の中に。

それからprintfでiも出力しておかないと。
Mを出力してる行の上に同じものをコピペして、Mをiに変えるだけだよ。
0067名無し生涯学習
垢版 |
2018/11/05(月) 23:49:37.44ID:imlADz+D0
#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;
}
エラーになりました
・・
0068名無し生涯学習
垢版 |
2018/11/05(月) 23:51:41.97ID:imlADz+D0
66さんありがとうございました
なんとかできました^^:
0069名無し生涯学習
垢版 |
2018/11/05(月) 23:52:55.79ID:4ntjFXOA0
>>64
これが楽しみだ
0070名無し生涯学習
垢版 |
2018/11/06(火) 00:26:59.55ID:bhXXzvUH0
#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?
0071名無し生涯学習
垢版 |
2018/11/06(火) 01:00:05.45ID:+6B8X6Sx0
>>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への型変更も必要。

おそらくまだわからないだろうから、出来たとこまでまたアップして。
0072名無し生涯学習
垢版 |
2018/11/06(火) 01:10:08.05ID:+6B8X6Sx0
>>70
つづき

printf("%,3f\n", M);
ここの、%と3の間はカンマではなくピリオド(ドット)が正しいよ。

お題で求められているのは最大・平均・最小の順なので、
printf(iではなくMに変える)
printf(Mではなくs/iに変えて、小数点いか3桁と指示する)
printf(最小値なのでMではなくmを出力)
0073名無し生涯学習
垢版 |
2018/11/06(火) 01:14:09.96ID:bhXXzvUH0
71さん
ほんとうにありがとうございます。

明日またやってみます、少しずつ判ってきた気がします。またコメントしますね
0074名無し生涯学習
垢版 |
2018/11/06(火) 07:26:44.51ID:bhXXzvUH0
#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;
^とでました
0076名無し生涯学習
垢版 |
2018/11/06(火) 11:35:51.09ID:PfoDjNUv0
>>74

mとsが宣言されていない

最初の1文字目を読み込んだ後、sとmとMは全て読み込んだ値を代入しておくこと。

s/iを出力するとき、int型からdouble型へ変換する。
(double)って前にアップしたコードでは書いていたはず。

これを修正すれば100点。

特に影響ないけど、セミコロンが2つダブってるところもある。
0077名無し生涯学習
垢版 |
2018/11/06(火) 12:55:56.19ID:0zXp1dri0
>>63
ご返事ありがとうございます。
できました!
0078名無し生涯学習
垢版 |
2018/11/06(火) 13:07:14.19ID:bhXXzvUH0
#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;

でもエラーが出ます
0079名無し生涯学習
垢版 |
2018/11/06(火) 13:30:21.34ID:1GciP8ZR0
プログラミングで苦しんだ後はタレント教員で息抜きしましょう
ttps://twitter.com/tsukasa_TOU/status/1059467368659742720
https://twitter.com/5chan_nel (5ch newer account)
0080名無し生涯学習
垢版 |
2018/11/06(火) 14:16:45.56ID:60KRoCr9a
>>78
Returnの後のカッコは?
0081名無し生涯学習
垢版 |
2018/11/06(火) 15:50:04.07ID:G+DM2Dn8M
クレクレくんばかりになったな。まぁ過疎ってるよりいいか
0082名無し生涯学習
垢版 |
2018/11/06(火) 16:35:28.24ID:Fg4jAc8+0
>>78
Mに一文字目を読み込んだ後、sとmにそれを代入すること。
それをしてないからsとmはからっぽのまま。

もうひとつ、sにdを足してない。
{  }の中にもうひとつ、s+=dの記述が必要。
0083名無し生涯学習
垢版 |
2018/11/06(火) 18:58:33.52ID:bhXXzvUH0
代入ってどうやるんですか?
0084名無し生涯学習
垢版 |
2018/11/06(火) 19:00:56.57ID:bhXXzvUH0
#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;
0085名無し生涯学習
垢版 |
2018/11/06(火) 19:14:23.48ID:+6B8X6Sx0
>>83
>>84

代入は、
m= M;
s= M;
こうだよ。これで、Mとmとは全て同じ値(最初に読み取った値)になる。

1文字読み取った時点では、それが最大値であり最小値でもあり、さらに合計値でもある。
0086名無し生涯学習
垢版 |
2018/11/06(火) 19:25:14.57ID:+6B8X6Sx0
需要があるっていいね。今日も報告いくよ!

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%) 長桁計算

第六回、第七回は仕方ないにしても、
第三回、第四回の伸び悩みっぷりが激しい。
0087名無し生涯学習
垢版 |
2018/11/06(火) 19:33:15.72ID:O3vPiUkma
>>86
待ってました!
これが楽しみだ!
0088名無し生涯学習
垢版 |
2018/11/06(火) 19:42:26.22ID:O3vPiUkma
もう時間が無い。
総力戦で挑め戦士たちよ。
ここで晒すのも、ツイで投げるのも、学内yammerでhelpも、お友達のプログラマにも、Google先生を使い倒すのも、理解できなくともいい、まずはいかなる手段を使ってでも突破して欲しい。
後で見返して勉強すれば良いさ。

多分やらんけど。
0089名無し生涯学習
垢版 |
2018/11/06(火) 19:43:14.56ID:bhXXzvUH0
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;
^
もうわけわかりません
0090名無し生涯学習
垢版 |
2018/11/06(火) 20:33:02.30ID:cOPvQRoT0
>>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;【計算した合計値を捨てて最大値の値に書き換える(なぜ!?)】
0091名無し生涯学習
垢版 |
2018/11/06(火) 20:33:42.03ID:cOPvQRoT0
>>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を合算する、
ってこと。

出力のあたりはちゃんとできてるよ。

セミコロンがダブってるとこも直されてないし、
最後のカッコが抜けてるのにも気づいてないし、
自分のコードをしっかり見つめてる気がしないよ。
0092名無し生涯学習
垢版 |
2018/11/06(火) 21:09:06.44ID:0+fUgJms0
>>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/

そして常に半角で入力しろ!
0093名無し生涯学習
垢版 |
2018/11/06(火) 21:41:23.61ID:XQHtKyqW0
プログラミングの講義についていくの辛くなってきた
小テスト10問なのは他の講義と同じだが記述問題多くて間違いやすくて時間もかかる
7回目の小テスト2問しか正解しなかったわ
「動画みて復習しなさい」って書いてたから明日動画見ながらやってみるけど良い点取れる気がしない

さらに毎回演習が4本追加されるのが苦痛
なんとか6-4まで来たけどリングの呪いってなんだよまったく
0094名無し生涯学習
垢版 |
2018/11/06(火) 21:51:30.31ID:bhXXzvUH0
91さん
いや代入ってなんですか。

どこに代入するんですか。
0095名無し生涯学習
垢版 |
2018/11/06(火) 21:56:19.22ID:bhXXzvUH0
一文字目をMに読み込んだ。しかしsにもmにもそれを代入していない。】のいみがわかりません。
0096名無し生涯学習
垢版 |
2018/11/06(火) 22:03:02.42ID:0+fUgJms0
>>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学期 「めぐりあい宇宙 編」ご期待ください。
0097名無し生涯学習
垢版 |
2018/11/06(火) 22:08:15.84ID:0+fUgJms0
>>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名がどうなったかと言うと・・。
0098名無し生涯学習
垢版 |
2018/11/06(火) 22:08:16.35ID:bhXXzvUH0
#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;
}こんな感じですかね?
0099名無し生涯学習
垢版 |
2018/11/06(火) 22:13:14.06ID:bhXXzvUH0
#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;
}
0100名無し生涯学習
垢版 |
2018/11/06(火) 22:13:36.76ID:bhXXzvUH0
またエラーが出ます

もう無理
0101名無し生涯学習
垢版 |
2018/11/06(火) 22:16:53.40ID:0+fUgJms0
>>100
このスレを頭から見直すといい。既に回答が出ている。
0102名無し生涯学習
垢版 |
2018/11/06(火) 22:26:32.36ID:bhXXzvUH0
え、素朴な疑問ですがこのMを大文字のMにしてたり小文字のmにしてたりも意味があるんですか?過去文をみるとMは最大といわれてますがMAXの頭文字Mの意味ですか?intのあとの順番も意味があるんですか?
0103名無し生涯学習
垢版 |
2018/11/06(火) 22:36:12.25ID:0+fUgJms0
>>102
それは無い。エラーというのはコンパイルエラーだと思うが。
s+=d

s+=d;
とすればコンパイルエラーは通るだろう。
しかし、実行すると結果はグチャグチャだ。

何故か?
scanf("%d",&M);
scanf("%d",&m);
scanf("%d",&s);
scanf("%d",&i);

お前さんの頭の中では、同じデータが全ての変数に入力されるとなっているが、
scanfを実行するたびに次のデータを読み込むので、同じデータは入らない。

どうすれば良いか?
>26を読むんだ。

この辺りで考えながらコーディングしないと4から先は辛いぞ。
0104名無し生涯学習
垢版 |
2018/11/06(火) 22:43:35.53ID:bhXXzvUH0
#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;
}
近くなってきてますか?!
0105名無し生涯学習
垢版 |
2018/11/06(火) 22:47:15.42ID:0+fUgJms0
>>104
いいぞ!よくなってきた。

ヒントを言おう。
代入には方向がある。

M=m; と書くと 右にあるものを左に入れる。
つまりこうなる M←m

もう一度見直すんだ。
0106名無し生涯学習
垢版 |
2018/11/06(火) 22:50:43.51ID:0+fUgJms0
>>104
後、一つの命令が終わったらセミコロンを打つ癖をつけるんだ。
0107名無し生涯学習
垢版 |
2018/11/06(火) 22:56:32.29ID:bhXXzvUH0
#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;
}
0108名無し生涯学習
垢版 |
2018/11/06(火) 22:58:41.96ID:bhXXzvUH0
#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;
}
0109名無し生涯学習
垢版 |
2018/11/06(火) 23:00:56.34ID:bhXXzvUH0
これ別にMやmじゃなくてもFとかfでも何でもいいんですか?英語が何とかは意味はないんですか?
int部分は
0110名無し生涯学習
垢版 |
2018/11/06(火) 23:14:31.98ID:0+fUgJms0
>>109
変数は自由に定義できるから、名前はなんでも良い。
0111名無し生涯学習
垢版 |
2018/11/06(火) 23:15:31.57ID:bhXXzvUH0
#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;
}
0112名無し生涯学習
垢版 |
2018/11/06(火) 23:15:59.09ID:bhXXzvUH0
エラーが肌色になりました。
0113名無し生涯学習
垢版 |
2018/11/06(火) 23:26:12.49ID:0+fUgJms0
>>112
肌色はワーニングだ。
エラーメッセージがないからわからんが、初期値未定義だろう。
これは今は忘れろ。下記に気づけば無くなるだろう。

>代入には方向がある。
といったよな。

scanf("%d", &M);
M= m; M=s;

どうなるか頭の中で考えるんだ。
0114名無し生涯学習
垢版 |
2018/11/06(火) 23:41:25.42ID:bhXXzvUH0
#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;
}
0115名無し生涯学習
垢版 |
2018/11/06(火) 23:42:07.93ID:bhXXzvUH0
そのひんとをもとに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]
}
^
0116名無し生涯学習
垢版 |
2018/11/06(火) 23:45:14.86ID:0+fUgJms0
>>115
遠くなった。
dとiを消せなどと一言も言ってないぞ。

前の状態に戻して、
>113
をもう一回よく見て考えるんだ。
0117名無し生涯学習
垢版 |
2018/11/06(火) 23:46:01.50ID:bhXXzvUH0
#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;
}
0118名無し生涯学習
垢版 |
2018/11/06(火) 23:50:07.33ID:bhXXzvUH0
#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;
}
あってますか?
0119名無し生涯学習
垢版 |
2018/11/06(火) 23:51:55.38ID:0+fUgJms0
>>117
scanf("%d", &M);

が解っていないんだな。
これは標準入力から値を読み込み、Mという変数にに格納するという命令だ。

そして代入は方向がある。
右には左の値が代入される。

だとするとこれはなんだ?
M=m;M=s;

どう直せば良いか?
0120名無し生涯学習
垢版 |
2018/11/06(火) 23:54:08.92ID:0+fUgJms0
>>119
大間違い。申し訳ない。
>右には左の値が代入される。

左には右の値が代入される。

肝心なところケアミスした。すまん。
0121名無し生涯学習
垢版 |
2018/11/07(水) 00:01:58.91ID:FAhyyIrh0
もうお手上げです教えてください、どんなにかんがえてもおかしいところがわかりません
0122名無し生涯学習
垢版 |
2018/11/07(水) 00:04:36.23ID:/MQHNZKF0
M=m;M=s;

m=M;s=M;

これの違いが分かるか?
全然意味が違うことなんだ。

それと、もうこれが最後となる。上手くいったらソースは晒さなくていい。

いい加減大学に目をつけられるぞ。
0123名無し生涯学習
垢版 |
2018/11/07(水) 02:13:55.20ID:ck12dVTt0
>>93
通学制の大学でもこの量この内容を1単位でやってたんだろうか。
プログラミングだけ勉強したいわけじゃないのに、他の授業の妨げになるくらいの分量。通学制だったら他の教授からも苦情が来ると思う。
週2コマ半年分くらいなんじゃないか。
0124名無し生涯学習
垢版 |
2018/11/07(水) 04:32:50.10ID:zu0NPye2p
わからないなら辞めてしまえ
0125名無し生涯学習
垢版 |
2018/11/07(水) 07:55:54.97ID:J3KcSriV0
>>124
確かにな。こんなのばっか助けてくれと言われても今後無視しよう。「どんなにかんがえても」「何故か」とかいう修飾子が腹立たしい。10分も考えていないのにだ。

自分だけ考えようとしていてきっかけ作りには教えてもいいと思うが、>121のような甘えたメンタリティの奴はほっとこう。それがコイツのためだ。

なあにこの調子じゃ後1週間で4-5はまず無理だろう。
0126名無し生涯学習
垢版 |
2018/11/07(水) 08:27:39.60ID:qK1Nzfy70
なぜ最後まで教えてくれないのか
たのんでいるのに
0127名無し生涯学習
垢版 |
2018/11/07(水) 08:36:53.50ID:J3KcSriV0
なんと >125が おきあがり なかまに なりたそうに こちらをみている!

なかまにしてあげますか?
0128名無し生涯学習
垢版 |
2018/11/07(水) 09:14:04.75ID:meohyubRd
>>123
本当に他の単位にも影響でそうだから
単位認定試験後のアンケートで
意見言うことにしたわ
0129名無し生涯学習
垢版 |
2018/11/07(水) 12:24:49.84ID:F1hRnRei0
それは>>91のおれが昨日早い時間に酔っぱらって寝てしまったからだよ。

M= m; M=s;【二つとも向きが逆】
m= M; s= M; とする。mとsにMが持ってる値を入れ込む(代入)って意味。

if( d>M ) M= d;【向きが逆】
if( d<m ) M= m;【向きが逆】
もともと合ってたのを、逆にしろと言われて入れ替えてしまった。
逆にしろと言われたのはここではなく上記の箇所だった。

>>118のコードはそれら4ヶ所が全て逆になっているので、それらを入れ替えれば完成。
0130名無し生涯学習
垢版 |
2018/11/07(水) 12:25:59.05ID:F1hRnRei0
>>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ヶ所が全て逆になっているので、それらを入れ替えれば完成。
0131名無し生涯学習
垢版 |
2018/11/07(水) 12:30:44.13ID:KLtiVaAO0
3年後卒業できんの10人くらいな気がしてきた
0132名無し生涯学習
垢版 |
2018/11/07(水) 17:56:55.72ID:sdoydT2u0
2回目の挑戦者がどう動くかだな
2回やってだめだったら3回目もやるかどうか
0133名無し生涯学習
垢版 |
2018/11/07(水) 18:03:40.41ID:pKS8+FV00
いちおうここのURLとログを大学に送っておいたわ
答え教えてくれとか、ここでやる事じゃないと思う
わかるまで留年したっていいんだよ
0134名無し生涯学習
垢版 |
2018/11/07(水) 18:29:48.87ID:6VykCctdM
質問してる人に言いたい。
コーディングしているpcで「ggrks」この単語を検索しなさい。それから質問したらええ。
0135名無し生涯学習
垢版 |
2018/11/07(水) 18:45:08.17ID:OI0qoNvP0
>>102
Mとmは別の文字(変数)として扱われるよ。
今回は最大値はM、最小値をmとして計算に使ってる。
最大はMAX、最小はMinimumでどちらも頭文字がエム。
なので大文字小文字で最大値と最小値を表現している。
xとyでもいいし、MAXとMINと書いても良い。
講義の中で教授がMとmを使ってるから学生はそれに合わせてるだけ。

intのあとの順番には意味はないよ。
0136名無し生涯学習
垢版 |
2018/11/07(水) 18:55:54.87ID:OI0qoNvP0
>>123
言うほど多い量の課題は出てないよ。
お題4問を1週間でやればいいんだから、かなり緩いレベル。
問題はこのスレに出てるように、列挙された数字から
最大値と最小値と合計を書きだす、といった程度のもの。
コードを見ると初心者にはちんぷんかんぷんだろうけど、
講義の中でほとんど完成されたコードが提示されていて、
必要な箇所を変更するだけ、という方式。
こんなの負担でもなんでもないよ。
0137名無し生涯学習
垢版 |
2018/11/07(水) 19:02:33.50ID:OI0qoNvP0
>>133
別にわざわざ送らなくったって教授陣や大学関係者もとっくにここを見てるよ。
あたり前だろ。
教授の方針は「学生同士掲示板で助け合って解決してみなさい」って感じだよ。
だから誰も答をまるまるコピペしたりしないし、わからない人にわかるように丁寧に説明してる。
2(5)chのくせにクソ真面目すぎるのは粋じゃないけど、大学側としては微笑ましい光景だろう。
0138名無し生涯学習
垢版 |
2018/11/07(水) 19:21:31.87ID:RBVf6ucR0
今日の報告。

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が割合(%)でみるとほぼ同じ値になってきた。
第五回第六回を比較すると、
締切近くならないとケツに火がつかない人が多いってのがわかるね。
0139名無し生涯学習
垢版 |
2018/11/07(水) 20:11:39.98ID:b02CHbqia
>>138
おおっ。データの近似性の驚き。人はなかなか変わらんですね。
0140名無し生涯学習
垢版 |
2018/11/07(水) 21:00:21.60ID:ck12dVTt0
>>136
課題の量だけでなく、主に言いたいのは内容のこと。
本当に、通学制では90分&#10006;8回の授業でこれだけの内容を教えられたのか。学生とのやり取りがない分、映像60分と対面授業90分を同等として。
駆け足すぎて授業の何倍もの時間を自習に割かないと、初心者はついていけない。初級なのに。
課題については、未経験者が授業+小テスト+自習で大学が基準としている時間の1.5〜2倍くらいで過半数の学生が解ける程度なら、4題は受け入れられる。ただし、他教科では実習がある場合、大学が基準とする時間に合わせて授業を減らしているものもある。

通学制の大学生は生活の中心が大学だが、通信制では本業のある社会人も多いはず。時間を作って計画立てて受講しようにも、初級プログラミングのせいで他の学習計画まで崩れてしまう。
自分は経営8情報2くらいの気持ちで入学したから、より勉強したい教科の妨げにしか感じない。
0141名無し生涯学習
垢版 |
2018/11/07(水) 22:02:51.83ID:oWPkwo3v0
動画15分&#10005;4本と小テスト30分が基本構成です
※演習はサービス残業になります
0142名無し生涯学習
垢版 |
2018/11/07(水) 22:50:56.79ID:FAhyyIrh0
>>130

逆にしたけど0てんだけど?
0143名無し生涯学習
垢版 |
2018/11/08(木) 06:06:51.37ID:XP0y5cjn0
>>142
if( d<m ) M= m;【向きが逆】
ここ間違った。逆じゃなくてdをmに代入、ね。
0144名無し生涯学習
垢版 |
2018/11/08(木) 13:59:40.11ID:B7Ys/+Er0
4-4で詰んじゃった
どうやって差分と併合組み合わせるんだろうどちらかしか表示されないや
0146名無し生涯学習
垢版 |
2018/11/08(木) 17:34:31.36ID:B7Ys/+Er0
>>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){を書くということでしょうか
トンチンカンなこと言ってたらすいません
0147名無し生涯学習
垢版 |
2018/11/08(木) 18:50:38.95ID:XP0y5cjn0
>>146
単にそれを書けばいいってわけじゃないよ。条件分岐を使うって察してほしかった。

 scanf("%d",&x); 【標準入力の値をxに読み取る】
  if(x==1){ 【もし読み取った値が1なら以下の処理を行う】
    ---講義内で提示された併合のプログラム----
  }else
  if(x==-1){ 【もし標準入力の値がマイナス1だったら】
    ---講義内で提示された差分のプログラム----
  }

こんな感じ。書き方はいろいろあるけど、併合と差分を同時にやるんじゃなくて、どちらをやるか最初に決めてしまうんだ。
もちろんxはfでもnでも何の文字でもいいよ。
0148名無し生涯学習
垢版 |
2018/11/08(木) 20:57:53.31ID:LUemeOeJ0
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%) 長桁計算
0149名無し生涯学習
垢版 |
2018/11/08(木) 22:10:48.62ID:jhWxHqGlp
福祉のほうで入学考えてるのですが数学は必須ですか?
0151名無し生涯学習
垢版 |
2018/11/09(金) 00:32:23.80ID:MgmVq7X20
>>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てんだけど?
0152名無し生涯学習
垢版 |
2018/11/09(金) 05:38:34.40ID:TdTRSarS0
>>149
数学は必須じゃないよ。
[数学入門、数学応用、物理学概論、生物学概論、予防医学、生命と人間]
の中から2つ以上を選択すればいい。
0153名無し生涯学習
垢版 |
2018/11/09(金) 11:40:01.55ID:ypQ86+Jd0
>>151
20点と表示された場所のすぐ下に、「成功例」が一つと、
「失敗例」が4つ表示できるようになってる。
タブで切り替えてそれぞれを見てみよう。
正解の出力例と、自分のプログラムの出力が表示されるので、
どこが違うのか見ると一目瞭然。
dをmに代入ができてないんだなってすぐにわかる。
その箇所を修正すればいいんだ。
0154名無し生涯学習
垢版 |
2018/11/09(金) 20:38:52.21ID:MgmVq7X20
>>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;
}
0155名無し生涯学習
垢版 |
2018/11/09(金) 20:39:30.03ID:MgmVq7X20
M=mだとmをMに代入するという方向でいいんだよな?
0156名無し生涯学習
垢版 |
2018/11/09(金) 22:31:44.47ID:4aSj4m4jp
>>152
ありがとう!
0157名無し生涯学習
垢版 |
2018/11/09(金) 23:43:16.72ID:dmygBYCo0
if( d<m ) M= d;
dがmより小さい時、Mにdを入れる?
Mって最大値として使ってるんじゃないの?
0158名無し生涯学習
垢版 |
2018/11/09(金) 23:45:23.46ID:h3ZA/Q64a
甘えん坊が多すぎ、
仮にも大学。

何でここまで手取り足取りが
当然みたいな人間がいるのだろう。

ここまで教えるってサービスの次元を
超えてると思う。

情報処理系の夜間高校でも入り直して
勉強し直したらどうか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況