2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

1 :名無し生涯学習:2018/11/01(木) 12:51:55.96 ID:8asb699G0.net
公式サイト 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大阪 総合校舎)
 名古屋 名古屋駅前サテライトキャンパス (総合校舎スパイラルタワーズ)

設置者 学校法人 日本教育財団(旧学校法人モード学園)

287 :名無し生涯学習:2018/11/17(土) 21:39:38.23 ID:BftH3cgM0.net
7-1の講義で出た1/nのプログラム、あれは何を1と定義して出来上げてるのか全く分かりません…
どなたか教えてください!

288 :名無し生涯学習:2018/11/18(日) 00:13:54.58 ID:u52czSVP0.net
5-4って第4講のやり方必要?

289 :名無し生涯学習:2018/11/18(日) 00:45:16.41 ID:ZiAgf/lQ0.net
>>287
%のことかな。
%は割り算の余りを意味します。

290 :名無し生涯学習:2018/11/18(日) 00:46:27.50 ID:ti6akc9m0.net
>>286
別の入れ物ですか?どういうこと?

それとなんかセグメンテーションフォルトとかいうエラーが発生するんだけどこれなに?
採点も実行もロクにできないんだけど。

291 :名無し生涯学習:2018/11/18(日) 01:05:35.38 ID:ZiAgf/lQ0.net
>>290
セグメンテーションエラーにはいろいろあるけど、この場合でいうとchとinの初期値が定義されていないからかな。

でも結果は多分上手くいかないと思う。

292 :名無し生涯学習:2018/11/18(日) 01:11:12.37 ID:ZiAgf/lQ0.net
>>291
inはgetcharで値が入るからいいとして、問題となるのはchだね。chには値が入ってないのにisalphaするからセグメンテーションエラーになる。

293 :名無し生涯学習:2018/11/18(日) 01:18:20.92 ID:3jAFJG7l0.net
>>290
入れ物とは変数のこと。
英字用の変数と数字用の変数をそれぞれ用意するんだ。
今のコードの変数『cw』と『state』に英字も数字もどちらも入れ込もうとしてるからそれぞれを数えるのは無理。

セグメンテーションエラーは、
変数inは
in=getchar())!=EOF
ここで代入されてるけど、
変数cwには何も代入されていないから。

inとchは数字と英字に変数をわけている。
だけど『cw』と『state』は・・・

294 :名無し生涯学習:2018/11/18(日) 01:43:20.09 ID:u52czSVP0.net
ここでプログラミングの質問に対して教えてくれる人ってやっぱり元々やったことある人なのかね

295 :名無し生涯学習:2018/11/18(日) 06:41:44.92 ID:AIZUIxeH0.net
>>294
ずっとここで教えてきたけど、実は素人の初学者だよ。

296 :名無し生涯学習:2018/11/18(日) 17:04:26.49 ID:bv0cqGOA0.net
>>289
なるほど、だからr=r%nと表記されてるところがあるのですね。
今7-1の課題を行ってますが小数点以下が反映されません…
どなたか助言頂けませんか?
失礼ですが下にプログラム貼らせていただきます
#include <stdio.h>
int main(int argc, char *argv[]){
int n,m;
int r, q, i, j, k;
scanf("%d%2d\n", &n, &m);
int rr[n], qq[n];
r= 1; k= 0;
for(i= 1; r!=0 && k==0; i++){
rr[i]= r;
r*= 10;
q= r/n; qq[i]= q;
r= r%n;
for(k= i; k!=0 && rr[k]!=r; k--);
}
printf("%d",n);
printf("/");
printf("%d",m);
printf(" = ");
printf("%d",n/m);
printf(".");
for(j= 1; j!=i; j++){
if( r!=0 && j==k ) printf("'");
printf("%d", qq[j]);
}
printf("\n");
return 0;
}

297 :名無し生涯学習:2018/11/18(日) 18:48:22.67 ID:u52czSVP0.net
6-1なのですが、このプログラムには何が足りないのでしょうか
#include <stdio.h>
#include <string.h>

int main(int argc, char *argy[1]){
#define LINESIZE 100
char line[LINESIZE];

for(;fgets(line,LINESIZE,stdin)!=NULL;){
printf("%d> ", (int)strlen(line)-1);
fputs(line, stdout);
}

return 0;
}

298 :名無し生涯学習:2018/11/18(日) 18:52:49.40 ID:vBW5Msb60.net
>>296
mとnが逆
r= 1;が間違い
(後で出てくるr/nは1/nという意味になってしまう。お題はm/n)

これだけでは完成しないけどかなり近づくはず。

299 :名無し生涯学習:2018/11/18(日) 19:05:04.44 ID:vBW5Msb60.net
>>297

for(;fgets(line,LINESIZE,stdin)!=NULL;){
これだけでは行番号を数えられないので、forの(  )カッコ内で
i=1と初期化し、繰り返す度にi++とすればiが行番号になる。

forの波カッコ{  }内の最初に行番号を出力する。3桁の幅を取って。

その次に行内の文字数を数える
for(ch=0; line[ch]!='\n';ch++);
このchを出力する。

300 :名無し生涯学習:2018/11/18(日) 21:55:51.95 ID:u52czSVP0.net
こんなプログラムになりました
#include <stdio.h>
#include <string.h>

int main(int argc, char *argy[1]){
#define LINESIZE 100
char s [42line[LINESIZE];

for(i=1; fgets(line,LINESIZE,stdin)!=NULL; i++ ){
for(ch=0; line[ch]!=`\n`;ch++);
printf("%d> ", (int)strlen(line)-1);
fputs(line, stdout);
}

return 0;
}>>299

301 :名無し生涯学習:2018/11/18(日) 22:00:22.08 ID:lYEjFXlc0.net
>>297

42[ Oh where, oh where has my little dog gone?
30[ Oh where, oh where can he be?
46[ With his ears cut short and his tail cut long,
26[ Oh where, oh where is he?
26[ Oh where, oh where is he?

26[ Oh where, oh where is he?

こうなるんだが?

302 :ふぉr:2018/11/18(日) 22:49:58.57 ID:vBW5Msb60.net
>>300
char s [42line[LINESIZE];
この行は意図がよくわからない。
"s"と"42"がどのような意味をもつのか。
どちらも必要ないのでは?

for(i=1; fgets(line,LINESIZE,stdin)!=NULL; i++ ){
この行、完璧です。

for文の中で、まず最初に行番号であるiを出力すること。(3桁の幅も忘れずに)

次にコレ。
for(ch=0; line[ch]!=`\n`;ch++);
ここは完璧。問題ない。

その後、
printf("%d> ", (int)strlen(line)-1);
これも意図が良くわからない。
"["を出力し、次にchを出力する、そして"]"を出力する。

303 :名無し生涯学習:2018/11/18(日) 23:09:53.08 ID:u52czSVP0.net
>>302
よく分かんないので明日やってみます

304 :名無し生涯学習:2018/11/18(日) 23:58:25.57 ID:gOQAh1RZ0.net
>>298
ご指摘ありがとうございます。
問題を理解し、m,nは逆に、r=mへと変更しました!
基礎で申し訳ないのですが、nの範囲を指定するのは
for分を使えばいいのですかね…?

305 :名無し生涯学習:2018/11/19(月) 00:00:57.42 ID:B2fYN1a30.net
>>291さん
いや・・・今食い久野を教えてほしいんですが・・・もう時間がないので

306 :名無し生涯学習:2018/11/19(月) 00:01:53.90 ID:B2fYN1a30.net
>>293さん

もう時間がないので教えてくださいそれでもわかりません。

307 :名無し生涯学習:2018/11/19(月) 06:10:00.35 ID:bRPAGXNB0.net
>>304
nの範囲?
1 < n < 9500
これのことを言ってるのかな。
これは標準入力に与えられる値がこの範囲にありますよというだけで、
プログラムには何も各必要ないよ。
バカでかい数値が入力された場合を考慮する必要はないってこと。

308 :名無し生涯学習:2018/11/19(月) 07:59:22.54 ID:ZqMkCQVzM.net
>>306
cw1
cw2
state1
state2
とそれぞれ書き換えて。

309 :名無し生涯学習:2018/11/19(月) 09:09:43.90 ID:cEH51Dp20.net
>>307
え!?

標準入力
10000 8191
提出プログラムの標準出力
10000/81 = 123.1234'567901234

というようにnがある一定の数値を読み込めなくなったので必要だと思ってました…
じゃあプログラムが根本的に違うのかな

310 :名無し生涯学習:2018/11/19(月) 11:54:58.69 ID:pwDNYFMSM.net
>>309
nである8191は9500以外なので問題文のとおり。
いずれにしてもそこは今作るべきプログラムに関係ないので無視して進めよう。

311 :名無し生涯学習:2018/11/19(月) 11:57:44.91 ID:pwDNYFMSM.net
>>309
%d%2d
ここ。

312 :名無し生涯学習:2018/11/19(月) 12:12:45.96 ID:pwDNYFMSM.net
>>309
採点では0点になるだろうけど、そのプログラムの完成度はもう90%以上。
根本的に間違ってないので、小さなミスを修正するだけだよ。

313 :名無し生涯学習:2018/11/19(月) 14:48:33.74 ID:2c25f7Hf0.net
>>309 です。
8191の所は無事に解決しました、ありがとうございます!
ただ、出力が上手くいかないですね…
何故か少数第一が削除された状態で反映されてしまいます…
入力1
71 8
出力1
71/8 = 8.75
みたいな感じです、いったい何なんだ…

314 :名無し生涯学習:2018/11/19(月) 18:37:54.93 ID:fY1oiwIQ0.net
>>313

int rr[n], qq[n];
ではなく、
int *rr, *qq;
と宣言しておいて、

nを読み込んだ後に、
rr= calloc(n, sizeof(int));
qq= calloc(n, sizeof(int));
と配列を作る。

callocを使うには
#include <stdlib.h>
も必要。

割り算を繰り返して配列に値を入れ込むfor文の外(前)に、
1回目の割り算を事前にやっておく。
for文の中では2回目以降が実施される。
  for文の上(前)に
  q= r/n;
  r= r%n;

これで100点。

315 :名無し生涯学習:2018/11/19(月) 22:10:07.91 ID:zi5xCIQ40.net
>>314
ここ見逃してました、おかげで100点いけましたありがとうございます!

316 :名無し生涯学習:2018/11/19(月) 22:57:58.78 ID:B2fYN1a30.net
>>308

え、どういうこと?もう一度はるね

#include <stdio.h>
#include <ctype.h>

int main(int argc, char* argv[]){
int in,cw,ch,state;

cw=0;state= 0;

for(;(in=getchar())!=EOF ;)
{
if(state1==0&&isalpha(ch)) cw++;
if(state2==0&&isdigit(in)) cw++;
state2= (isdigit(in) ? 1 : 0 );
state1= (isalpha(ch) ? 1 : 0 );
}


printf("%d\n",cw);

return 0;
}

317 :名無し生涯学習:2018/11/19(月) 22:58:27.82 ID:B2fYN1a30.net
これどこがセグメンテーションエラーでてるの?

318 :名無し生涯学習:2018/11/20(火) 04:23:24.81 ID:vLv6ObvU0HAPPY.net
>>316

if(state1==0&&isalpha(ch)) cw++;
if(state2==0&&isdigit(in)) cw++;
cw1, cw2に変わってない。

isdigit(ch)
isdigit(in)
(ch)か(in)かどちらかに統一。

int in,cw,ch,state;
追加した変数の宣言ができていない。

state2= (isdigit(in) ? 1 : 0 );
state1= (isalpha(ch) ? 1 : 0 );
なぜ1と2を逆にした?

printf("%d\n",cw);
cw1とcw2に変わってない。

そもそも何をやろうとしているのかわかっていない模様。英字並びを数えるコードは講義で示されている。
これを英字と数字を数える、に編集するのが狙い。
なのに出力が1個だけという時点で課題を理解してないなというのがわかるよ。
1と2というのは英字を数える入れ物と数字を数える入れ物という意味だよ。
そこをまとめてしまったり一部を逆にしたりすれば、それぞえを数えることができないよ。

上記を修正すればとりあえず100点とれるけど、なぜなのかを良く理解したほうがいいよ。

319 :名無し生涯学習:2018/11/20(火) 04:49:16.97 ID:0sC2EqO20HAPPY.net
>>313
うまく出力出来ないです・・・
どこが間違ってるのか教えて下さい・・・

320 :名無し生涯学習:2018/11/20(火) 04:49:45.92 ID:0sC2EqO20HAPPY.net
>>313じゃなくて>>314でした

321 :名無し生涯学習:2018/11/20(火) 04:51:37.83 ID:0sC2EqO20HAPPY.net
プログラム貼れない

322 :名無し生涯学習:2018/11/20(火) 04:57:41.79 ID:0sC2EqO20HAPPY.net
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
int n,m;
int r, q, i, j, k;
scanf("%d%2d\n", &n, &m);
int *rr, *qq;

323 :名無し生涯学習:2018/11/20(火) 04:58:11.17 ID:0sC2EqO20HAPPY.net
rr= calloc(n, sizeof(int));
qq= calloc(n, sizeof(int));

r= m; k= 0;
for(i= 1; r!=0 && k==0; i++){
rr[i]= r;
r*= 10;
q= r/n; qq[i]= q;
r= r%n;
for(k= i; k!=0 && rr[k]!=r; k--);
}
printf("%d",n);
printf("/");
printf("%d",m);
printf(" = ");
printf("%d",n/m);
printf(".");
for(j= 1; j!=i; j++){
if( r!=0 && j==k ) printf("'");
printf("%d", qq[j]);
}
printf("\n");
return 0;
}

324 :名無し生涯学習:2018/11/20(火) 05:18:02.19 ID:vLv6ObvU0HAPPY.net
>>319>>323>>315とは別人?
そのコードほとんど最初に戻ってるじゃん。
mとnが逆(>>298)から全部やり直し。

325 :名無し生涯学習:2018/11/20(火) 13:03:02.79 ID:ZAsO2RZFaHAPPY.net
筧 きらいやわー

326 :名無し生涯学習:2018/11/20(火) 19:22:44.32 ID:a8M0pXjn0HAPPY.net
井出訓の経歴
看護学博士 ⇒ PhDもっていないのに博士号をもってるように書いている

暴言(ツイ・リツイ)
>叩けば誰でもホコリはでるもの。それを、誰にどんな影響が及ぶかも考えずに興味本位でほじくり返し、鬼の首を獲ったかの様にドヤ顔で吹聴する姿勢は、ただただ下品でしかない。
読んでいてムカつく論文。あまりに当事者を蔑視した研究スタンスじゃないのか。
>「至急」とかいうメールに、ばたばたとしている中で添付ファイルを読む時間をつくり、コメントして返信したのにもかかわらず、受け取ったとかの返事も何もない。お前の名前は覚えたからな。
>久しぶりの訪問。しかし相変わらずのアホさ加減に、もはやがっかりだわ

悪口陰口嫌がらせ、全部暇人のやる事だから気にすんな。
プライベートも仕事も絶好調で超ハッピーな人がわざわざ他人の事チェックしてケチつけねーだろ?
自分がうまくいってなくて不幸で暇な奴が悪口陰口嫌がらせなんてするんだよ。
「おう暇人!お疲れ!」って思っときゃいい。相手しても損するだけだ。

政権批判
国民を守ることの出来ない国、学生を守ることの出来ない大学、同じ構図。(日大と与党の批判)
関係者みんなで嘘をつけば、嘘も本当になるってのが、いまの安倍政権。(RT)

twitter
https://twitter.com/side55mode
NPO活動の連絡先
info@dfc.or.jp
放送大学
soumu-ka@ouj.ac.jp(総務課)
(deleted an unsolicited ad)

327 :名無し生涯学習:2018/11/21(水) 05:40:39.28 ID:H/CQTCTK0.net
4-3をやっていますが、コンパイルエラーになってしまいます
どこが間違っているのか教えて下さい

328 :名無し生涯学習:2018/11/21(水) 05:42:28.70 ID:H/CQTCTK0.net
#include <stdio.h>

int main(void)
{


FILE *f;
f= fopen(fn, "r");

int p, q;
int f;


p= fscanf (f, "%d", &p );


for(; scanf("%d",&q)==1; p= q){

if( !(p<q) ){


printf("%d %d\n",p,q);
}



fclose(f);


return 0;
}

329 :名無し生涯学習:2018/11/21(水) 06:57:40.05 ID:wa+zfb5y0.net
>>327 >>328
ファイル名として使ってる変数fnが定義されていない

「FILE *f;」で変数fを定義しているのに「int f;」でもfを定義しているので競合してる

二回目の(qの)fscanfがscanfになっている
二回目の(qの)fscanfにファイル名(f)が書かれていない
二回目のforの波カッコ閉じ}がない

全部で5ヶ所。
全て資料からの書き写しミスなので、
プログラムを知らなくてもしっかり見比べれば発見できるミスばかりだよ。

330 :名無し生涯学習:2018/11/21(水) 10:45:00.23 ID:0mj8m0OS0.net
>>318ありがとう

でもセグメンテーションフォルトはでっぱなしだよ?
#include <stdio.h>
#include <ctype.h>

int main(int argc, char* argv[]){
int in,cw1,cw2,ch,state1,state2;

cw1=0;cw2=0;state1=0;state2=0;

for(;(in=getchar())!=EOF ;)
{
if(state1==0&&isalpha(ch)) cw1++;
if(state2==0&&isdigit(in)) cw2++;
state1= (isdigit(in) ? 1 : 0 );
state2= (isalpha(ch) ? 1 : 0 );
}


printf("%d\n",cw1);
printf("%d\n",cw2);
return 0;
}

331 :名無し生涯学習:2018/11/21(水) 11:26:08.69 ID:wa+zfb5y0.net
>>318
いいね。もう一息で完成だね。

if(state1==0&&isalpha(ch)) cw1++;
if(state2==0&&isdigit(in)) cw2++;
state1= (isdigit(in) ? 1 : 0 );
state2= (isalpha(ch) ? 1 : 0 );

(ch)か(in)かどちらかに統一。ができていない。
(セグメンテーションエラーはこれが原因)

1がisalpha、2がisdigit、またはその逆に統一。
(上二行と下二行で逆になってる)

332 :名無し生涯学習:2018/11/21(水) 11:26:40.82 ID:wa+zfb5y0.net
アンカ間違った。
>>330
だった。

333 :名無し生涯学習:2018/11/21(水) 12:39:01.96 ID:0mj8m0OS0.net
>>331 先生ありがとう。
セグメンテーションガ消えて無事解決しました。捨てずに教えてくれて本当にありがとう。

C言語難しいね。たぶん単位落とすけどこうやって教えてくれる方が同じ学年にいるだけで大学生になってよかったと思える。

intの中の単語はあくまでもただの文字であり、abと打とうがchと打とうがその「文字」に対しての意味は何もないんだよね?aだろうがcだろうが

ただchやstateなど(要はint)には数を与えてやらないと空の状態だから何も動かない。

仮に1を与えてやればコンパイラは数字として読み取り動き出す。セグメンテーションはここに原因があったみたい。
2つの箱を用意するっていうのは講義で話してないよね?何でその発想が生まれたの?

それはisalphaとisdigitは別物だから?ただそれだけ?

334 :名無し生涯学習:2018/11/21(水) 15:58:00.76 ID:wa+zfb5y0.net
>>333
クリアしたね。おめでとう!

intの中の単語、その通りでaやbでもいいし、xやyでもいい。
慣例的に繰り返し回数にはiが、入力値にはnがよく使われるよ。
これを「変数」というよ。数字や文字列を代入して使うんだ。

2つの箱(変数)を用意するのは自然に考えただけで発想というほどでもないよ。
講義の中で単語の数え方は出てきてたから、それに数字もかぞえるのなら、
その部分をコピペしてアルファベット(isalpha)を数字(isdigit)に書き換えるだけだな、って思った。
「その部分」がどこなのかを見つけていくのが最も勉強になるし、課題の狙いはそこにあると思うよ。

335 :名無し生涯学習:2018/11/21(水) 17:36:24.58 ID:0mj8m0OS0.net
6-1なんだけど
なにがまちがってる?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main(int argc,char*argv[]){
#define SIZE 100
char line[SIZE];

int i;


for(i=0;fgets(line,SIZE,stdin)!=NULL;i++){
for(line[i]!='\n';


printf("%d",i);
fputs(line,SIZE,stdout);
}

return 0;

}

336 :名無し生涯学習:2018/11/21(水) 17:39:02.26 ID:0mj8m0OS0.net
p1-0.c: In function 'main':
p1-0.c:13:23: error: expected ';' before ')' token
for(;line[i]!='\n');
^
p1-0.c:17:11: error: expected expression before ';' token
fputs(;line,SIZE,stdout);
^
p1-0.c:17:11: error: too few arguments to function 'fputs'
てでる。

337 :名無し生涯学習:2018/11/21(水) 17:42:56.34 ID:0mj8m0OS0.net
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main(int argc,char*argv[]){
#define SIZE 100
char line[SIZE];

int i;


for(i=0;fgets(line,SIZE,stdin)!=NULL;){
for(;line[i]!='\n';i++);


printf("%d",i);
fputs(;line,SIZE,stdout);
}

return 0;

}
書き直しえてみた。
行番号はできてるはずなんだけど文字数ができてないかもエラーはこう出る
p1-0.c: In function 'main':
p1-0.c:17:11: error: expected expression before ';' token
fputs(;line,SIZE,stdout);
^
p1-0.c:17:11: error: too few arguments to function 'fputs'

338 :名無し生涯学習:2018/11/21(水) 19:43:32.36 ID:H/CQTCTK0.net
>>329
コンパイルは成功したのですが、セグメンテーションフォルトが出てきてしまいます・・・

339 :名無し生涯学習:2018/11/21(水) 21:45:31.18 ID:wa+zfb5y0.net
>>337

fputs(;line,SIZE,stdout);
ここが間違い。コンパイルエラーの原因。
fputsのカッコ内には何を書くべきなのか講義資料の6ページ参照。
正しい書き方がそのまんま書いてあるよ。

お題では行番号と文字数を出力する必要があるけど、
変数iにはどちらの値を格納しようとしてるのか。
1回目のforでは行番号、2回目のforでは文字数を格納している模様。
一つの変数に同時に二つの意味を持たせてはいけない。
行番号はi、文字数にはjやchなど別の変数を用いると良い。
(5-4のときと同じだね)

【お題抜粋】
>3桁分の場所をとって
> [ と ] とで括った2桁分の
>空白1文字を
これらを反映しようとしていないので、printfの中身を吟味して上記にあわせること。
(これは5-4でできていたはず)

340 :名無し生涯学習:2018/11/21(水) 22:14:06.89 ID:wa+zfb5y0.net
>>338

p= fscanf (f, "%d", &p );
こうすることでpに何の値が格納されるのか。
本家の掲示板で教授がこの間違いについて取り上げてるけど。
どう書き換えればいいのかも書いてある。

これに「反例が現れなければ OK と1行に左詰に書き出し」を付け加えれば完成するよ。

341 :名無し生涯学習:2018/11/21(水) 23:06:23.13 ID:0mj8m0OS0.net
>>339

#include <stdio.h>
#include <string.h>

int main(int argc, char *argy[1]){
#define LINESIZE 100
char line[LINESIZE];
int i,ch;

for(i=1;fgets(line,LINESIZE,stdin)!=NULL,i++;){
for(ch=0; line[ch]!='\n';ch++);
printf("%3d> ", (int)strlen(line)-1);
fputs(line, stdout);
}

return 0;
}
こんなかんじ?

342 :名無し生涯学習:2018/11/21(水) 23:22:47.37 ID:0mj8m0OS0.net
#include <stdio.h>
#include <string.h>

int main(int argc, char *argy[1]){
#define SIZE 100
#define LINESIZE 100
char line1[SIZE]
char line2[LINESIZE];
int i,ch;

for(i=1;fgets(line1,SIZE,stdin)!=NULL;i++){
for(ch=0; fgets(line2,LINESIZE,stdin)!=NULL;){
printf("%3d> ", i);
printf("%[]d> ", ch);
fputs(line1, stdout);
fputs(line2, stdout);
}

return 0;
}

343 :名無し生涯学習:2018/11/21(水) 23:59:50.97 ID:YXU2E4Ys0.net
井出訓の経歴
看護学博士 ⇒ PhDもっていないのに博士号をもってるように書いている

暴言(ツイ・リツイ)
>叩けば誰でもホコリはでるもの。それを、誰にどんな影響が及ぶかも考えずに興味本位でほじくり返し、鬼の首を獲ったかの様にドヤ顔で吹聴する姿勢は、ただただ下品でしかない。
読んでいてムカつく論文。あまりに当事者を蔑視した研究スタンスじゃないのか。
>「至急」とかいうメールに、ばたばたとしている中で添付ファイルを読む時間をつくり、コメントして返信したのにもかかわらず、受け取ったとかの返事も何もない。お前の名前は覚えたからな。
>久しぶりの訪問。しかし相変わらずのアホさ加減に、もはやがっかりだわ

悪口陰口嫌がらせ、全部暇人のやる事だから気にすんな。
プライベートも仕事も絶好調で超ハッピーな人がわざわざ他人の事チェックしてケチつけねーだろ?
自分がうまくいってなくて不幸で暇な奴が悪口陰口嫌がらせなんてするんだよ。
「おう暇人!お疲れ!」って思っときゃいい。相手しても損するだけだ。

政権批判
国民を守ることの出来ない国、学生を守ることの出来ない大学、同じ構図。(日大と与党の批判)
関係者みんなで嘘をつけば、嘘も本当になるってのが、いまの安倍政権。(RT)

twitter
https://twitter.com/side55mode
NPO活動の連絡先
info@dfc.or.jp
放送大学
soumu-ka@ouj.ac.jp(総務課)
(deleted an unsolicited ad)

344 :名無し生涯学習:2018/11/22(木) 01:12:02.33 ID:o/1xaQ/w0.net
この程度の数学で、おこぼれもらいの馬鹿の集まりか…!お前たちに未来はない!

345 :名無し生涯学習:2018/11/22(木) 06:38:19.58 ID:j9x31LTU0.net
>>340
うーん、本家の掲示板通りにプログラムを書き換えてみたのですが、またセグメンテーションフォルトになってしまいました・・・

346 :名無し生涯学習:2018/11/22(木) 06:42:21.36 ID:2U8RyLV30.net
>>341のほうが近いかな。

for(i=1;fgets(line,LINESIZE,stdin)!=NULL,i++;){
1行を読み込む度にiに1を加算していく
→つまりiに行番号が格納される

  for(ch=0; line[ch]!='\n';ch++);
  1文字読み込む度にchに1を加算する。
  改行が出てくるまで繰り返す。
  つまりchに行内の文字数が格納される。
  これは前のforの{}の中にあるので1行読み込む度に毎行行われる。

ここまで良い。

printf("%3d> ", (int)strlen(line)-1);
せっかくカウントしたiとchを出力しようとしていない。
そこを>>342で改善している。
  printf("%3d> ", i);
  printf("%[]d> ", ch);
しかしこれだと
1>%[]2d Oh where, oh where has my little dog gone?
2>%[]2d Oh where, oh where can he be?
3>%[]2d With his ears cut short and his tail cut long,
4>%[]2d Oh where, oh where is he?
このような出力になってしまう。

1[42] Oh where, oh where has my little dog gone?
2[30] Oh where, oh where can he be?
3[46] With his ears cut short and his tail cut long,
4[26] Oh where, oh where is he?
こうなるように、不要な文字を消して、カッコの位置が正しくなるように修正する。
%2dの間に余計な文字はいれてはいけない。これは3文字連なったセットで意味を持つから。

347 :名無し生涯学習:2018/11/22(木) 06:44:48.90 ID:2U8RyLV30.net
>>345
貼らなきゃわからないよ。

348 :名無し生涯学習:2018/11/22(木) 07:06:06.57 ID:GKUe3oIrp.net
>>347
すいません。帰宅したらはります。

349 :名無し生涯学習:2018/11/22(木) 07:51:10.50 ID:96dpLehO0.net
そろそろ演習も終わるけどこの連休で追い込みだ。みんな頑張れ。
あきらめるなよー。

350 :名無し生涯学習:2018/11/22(木) 08:30:29.84 ID:OVhL8z08a
演習は12月4日までなんだな。11月27日だと思ってたわ。

351 :名無し生涯学習:2018/11/22(木) 12:04:40.01 ID:lqAKXAvl0.net
放送大学卒業したらこっちも興味ある
けど難しそうだな

352 :名無し生涯学習:2018/11/22(木) 16:03:09.48 ID:WvAsTUk30.net
春入学を考えております。
少しお聞きしたいのですが
iosアプリで講義を事前にwifiでダウンロードして
オフラインで受講する、ということはできないのでしょうか?

353 :名無し生涯学習:2018/11/22(木) 16:18:26.21 ID:eEichEu30.net
>>352
専用アプリがあるので、できる

354 :名無し生涯学習:2018/11/23(金) 14:06:34.27 ID:SwlUgy4X0.net
>>346
#include <stdio.h>
#include <string.h>

int main(int argc, char *argy[1]){
#define SIZE 100
#define LINESIZE 100
char line1[SIZE]
char line2[LINESIZE];
int i,ch;

for(i=1;fgets(line1,SIZE,stdin)!=NULL;i++){
for(ch=0; fgets(line2,LINESIZE,stdin)!=NULL;){
printf("%3d> ", i);
printf("%2d[] ", ch);
fputs(line1, stdout);
fputs(line2, stdout);
}

return 0;
}
?

355 :名無し生涯学習:2018/11/23(金) 14:08:46.71 ID:SwlUgy4X0.net
>>346
というかそもそもこれでやるとエラーが出る
p1-0.c: In function 'main':
p1-0.c:8:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'char'
char line2[LINESIZE];
^
p1-0.c:11:15: error: 'line1' undeclared (first use in this function)
for(i=1;fgets(line1,SIZE,stdin)!=NULL;i++){
^
p1-0.c:11:15: note: each undeclared identifier is reported only once for each function it appears in
p1-0.c:20:1: error: expected declaration or statement at end of input
}
^
p1-0.c:20:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^

356 :名無し生涯学習:2018/11/23(金) 14:29:15.45 ID:MLf5+wKn0.net
滝浦真人(放送大学教授)

>安倍晋三政権は新法の「国際平和支援法」と10本の戦争関連法を改悪する「平和安全法制整備法案」を国会に提出し、審議が行われています。
>私たちは、かつて日本が行った侵略戦争に、多くの学徒を戦地へ送ったという、大学の戦争協力の痛恨の歴史を担っています
安全保障関連法案に反対する学者の会に賛同して署名 (2015年7月10日09時から7月13日09時までのご署名分)
>敬語論の増加は帝国日本のアジア侵略と時期を一にしていることがわかる。国語学が帝国ひいては天皇制の正統化に加担した。
(山田孝雄 共同体の国学の夢 (再発見 日本の哲学) 滝浦 真人 左翼思想を展開したものを博士の学位請求論文に利用)

>2016年に生きてんの?!この言葉。。旧七帝大www
>こういうふうに、塾・予備校を仮想敵にして、それを排除したらすべて片づく!って小泉郵政改革論法みたいのを振り回すひとっているよねー
>オープンな日本の大学の敬語の授業を聴講しました、って人から「質問がございます」ってメールが来たので、
学生さんなら「質問箱」から送ってください、そうでないならどうぞ科目登録してください(学生さんはお金払ってる)、ただ質問だけっていうのは対応していません悪しからず、
…と書きつつ、まあ1つだけ、って核心部分の説明を書いて送ったんだけど、なーんにも言ってこないのなー
「正しい日本語に関心がある」んだそうだけど、あなたの日本語の使い方、ただしくないと思うわー

滝浦真人(放送大学教員)のあやしい学位取得 (おともだちを利用した忖度)
学位請求論文の題:「日本語敬語および関連現象の社会語用論的研究」
主査:滝浦と親しい間柄の教員(社会語用論は専門外)
副査:英語学、認知言語学が専門の研究者(門外漢)
副査:言語処理が専門の理系研究者(門外漢)
論文の内容:テーマと内容の異なる既刊書4つを無理やりつないだだけ (つぎはぎしただけ 内容バラバラ 敬語論で右翼批判)
結果:大賛辞とともに学位授与(いわゆる忖度)

ブログで公開された連絡先
takiuramasato@gmail.com
放送大学
soumu-ka@ouj.ac.jp(総務課)
北大
https://www.hokudai.ac.jp/introduction/pub/

357 :名無し生涯学習:2018/11/23(金) 14:46:45.79 ID:XKkoNKCQ0.net
>>355
line1[SIZE]
セミコロン抜けてね?

358 :名無し生涯学習:2018/11/23(金) 16:58:48.13 ID:Q+irtg1/0.net
>>354
340がいいって言ったのに341を使ってる。
計算部分は340でなければだめ。
340ではiに行番号、chに文字数がカウントできてる。
あとはそれを出力するだけ。

352の
printf("%3d> ", i);
printf("%2d[] ", ch);
これは341とほとんどかわってない。

("%3d> ", i)と書くと、
「iに格納された値を3桁の幅をとって%3dの位置に出力し、
その後ろに「>」を出力する」という意味になる。
お題に従ってる?

printf("%2d[] ", ch);と書くと、
「chに格納された値を2桁の幅をとって%2dの位置に出力し、
その後ろに「[]_」を出力する」という意味になる。
仮にchの値が10だったら、
10[]_
という出力になる。

セミコロンが抜けてるのは修正して。

359 :名無し生涯学習:2018/11/23(金) 17:06:08.66 ID:Q+irtg1/0.net
>>355
セミコロンの他に、波カッコ閉じ } が一つたりないのもコンパイルエラーの原因だけど、
計算部分は341でなく340を使うべきだから修正というより計算部分総入れ替えで対応ね。

360 :名無し生涯学習:2018/11/23(金) 20:37:16.33 ID:ucFDM3Sv0.net
11/23 13:00
2-1  242名 (61.9%) コピペ
2-4  205名 (52.6%) 変数 for文
3-4  153名 (39.2%) 変数 for文
4-4  64名 (16.4%) 条件分岐
5-4  92名 (23.6%) ライブラリ
6-4  43名 (11.0%) 配列
7-4  20名 (5.1%) 長桁計算
8-4  23名 (5.9%) 引数

361 :名無し生涯学習:2018/11/24(土) 00:18:33.19 ID:2RMaMc180.net
>>359
#include <stdio.h>
#include <string.h>

int main(int argc, char *argy[1]){
#define SIZE 100
#define LINESIZE 100
char line1[SIZE];
char line2[LINESIZE];
int i,ch;

for(ch=0; line1[ch]!='\n';ch++);
for(i=1;fgets(line2,LINESIZE,stdin)!=NULL;i++){
printf("%3d> ", i);
printf("[%2d] ", ch);
fputs(line1, stdout);
fputs(line2, stdout);
}

return 0;
}
これでやったけどまーたセグメンテーションでたわ。いいかげんにしてほしいわ。

362 :名無し生涯学習:2018/11/24(土) 00:27:07.57 ID:2RMaMc180.net
#include <stdio.h>
#include <string.h>

int main(int argc, char *argy[1]){
#define SIZE 100
#define LINESIZE 100
char line1[SIZE];
char line2[LINESIZE];
int i,ch;

for(i=1;fgets(line2,SIZE,stdin)!=NULL;i++)
for(ch=0; line1[ch]!='\n';ch++);
for(ch=0;fgets(line2,LINESIZE,stdin)!=NULL;i++){
printf("%3d> ", i);
printf("[%2d] ", ch);
fputs(line1, stdout);
fputs(line2, stdout);
}

return 0;
}

363 :名無し生涯学習:2018/11/24(土) 05:55:30.73 ID:MwwUyCgg0.net
>>361 >>362
340がいいって言ったのに341を使ってる。
計算部分は340でなければだめ。
340ではiに行番号、chに文字数がカウントできてる。
あとはそれを出力するだけ。

("%3d> ", i)と書くと、
「iに格納された値を3桁の幅をとって%3dの位置に出力し、
その後ろに「>」を出力する」という意味になる。
お題に従ってる?

行数をカウントするのはiで、for文で行の読み取りを繰り返すだけ。
だから行数カウントに配列は不要。
配列を2つ用意してそれらを混同して使ってるからセグメンテーションエラーになる。
混同せずに使えばセグメンテーションエラーは避けられるけど、
そういう問題ではなく配列は一つしかいらないので2つめを削除すれば解決する。

364 :名無し生涯学習:2018/11/24(土) 06:06:19.28 ID:Eccb5W8t0.net
情報マネジ学科はプログラム必修なの?難しそうだな。福祉学科は比較的和やかに単位取れてるのかな?

365 :名無し生涯学習:2018/11/24(土) 07:07:09.29 ID:Eccb5W8t0.net
情報マネジ学科はプログラム必修なの?難しそうだな。福祉学科は比較的和やかに単位取れてるのかな?

366 :名無し生涯学習:2018/11/24(土) 07:24:24.73 ID:QwmEHKbrp.net
福祉は平和です今のところ

367 :名無し生涯学習:2018/11/24(土) 08:03:41.73 ID:gjUVDbmp0.net
>>364
情報学部はプログラミング必修だよ。
このスレ見てると難しそうに見えるけど、実際はそうでもない。
イチから自分でプログラムを書くのではなく、講義でできあがった
プログラムが提示されてて、お題に応じてそれを書き換えるだけ。
ちゃんと講義聞いてれば簡単だよ。今のところはね。

368 :名無し生涯学習:2018/11/24(土) 09:20:25.00 ID:2RMaMc180.net
>>363
340がいいって言ったのに341を使ってる。
計算部分は340でなければだめ。
340ではiに行番号、chに文字数がカウントできてる。
あとはそれを出力するだけ。の意味がわからない
1> [ 0]
2> [ 0] int main(int argc, char *argv[]){
3> [ 0] int n,i;
4> [ 0] scanf("%d", &n);
5> [ 0] int A[n];
6> [ 0] for(i= 0; i!=n; i++) A[i]= i;
7> [ 0] for(i= 0; i!=n; i++)
8> [ 0] printf("%d: %d\n", i,A[i]);
9> [ 0] }
なにこのr。もう意味わからん

369 :名無し生涯学習:2018/11/24(土) 09:32:32.84 ID:2RMaMc180.net
あーすげーいらいらする

370 :名無し生涯学習:2018/11/24(土) 13:37:22.21 ID:2RMaMc180.net
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[]){
#define SIZE 100
#define LINESIZE 100
char line1[SIZE];
char line2[LINESIZE];
int i;


for(i=1;fgets(line1,SIZE,stdin)!=NULL;i++)
for(i=1;line1[i]!='\n';i++);
for(; fgets(line2,LINESIZE,stdin)!=NULL;){

printf("%3d", i);
printf("[%2d] ", (int)strlen(line2)-1);
fputs(line1, stdout);
fputs(line2, stdout);
}

return 0;
} 今度は出力されなくなったいらいらするわ〜

371 :名無し生涯学習:2018/11/24(土) 13:40:55.63 ID:MwwUyCgg0.net
>>368
>>341にコード貼ってるだろ。
今のは>>342に貼ってるコードを編集してるだろ。

>>341では出力のみ行けてないから、printfの部分を修正すればいいだけ。
iとchを型に従って出力するだけだ。

「>」を出力しろってお題に書いてあるか?

372 :名無し生涯学習:2018/11/24(土) 13:43:46.38 ID:MwwUyCgg0.net
>>370

行数カウントに配列は不要。
配列は一つしかいらないので2つめを削除すれば解決する。
そもそも>>341までは配列一つだったのに、>>342で自分で増やしてるだけ。
それいらねぇ。

373 :名無し生涯学習:2018/11/24(土) 13:45:20.68 ID:MwwUyCgg0.net
>>370
配列を一つ消せば>>341になるんだが、だから>>341を使えって言ってる。

374 :名無し生涯学習:2018/11/24(土) 13:59:00.46 ID:2RMaMc180.net
>>372#include <stdio.h>
#include <string.h>

int main(int argc, char *argy[1]){
#define LINESIZE 100
char line[LINESIZE];
int i,ch;

for(i=1;fgets(line,LINESIZE,stdin)!=NULL,i++;){
for(ch=0; line[ch]!='\n';ch++);
printf("%3d ", (int)strlen(line)-1);
printf("[%2d] ", (int)strlen(line)-1);
fputs(line, stdout);
}

return 0;
}
いや100点にならないけど
配列を消せだのなんだのいってることがわからない

375 :名無し生涯学習:2018/11/24(土) 15:11:03.04 ID:MwwUyCgg0.net
>>374
やっと>>341に戻したな。それだけでかなり完成に近づいた。

>>341では
#include <stdio.h>
#include <string.h>
だったのに

>>374では
#include <string.h>
になってる。
コピペミスだろ。自分で気付けるだろ。

>>341でも>>374でも
for(i=1;fgets(line,LINESIZE,stdin)!=NULL,i++;){
こうなってるが、セミコロンがあるべき場所にカンマがあり、
不必要な場所にセミコロンがある。要修正。

printf("%3d ", (int)strlen(line)-1);
型の部分は「>」が削除されたぶんは改善されたがまだお題通りではない。
「3桁分の場所をとってそこに行番号を右詰にして書き、 『続けて』」
『続けて』

さらにここに表示する値は(int)strlen(line)-1ではなく「i」
その次に表示するのも(int)strlen(line)-1ではなく「ch」

376 :名無し生涯学習:2018/11/24(土) 15:40:48.19 ID:2RMaMc180.net
>>375
95ぱーかんせいしたが三桁がわからないもうギブアップ001と入れてもだめだし

377 :名無し生涯学習:2018/11/24(土) 15:44:54.58 ID:2RMaMc180.net
1 [18] #include <stdio.h>
2 [ 0]
3 [33] int main(int argc, char *argv[]){
4 [10] int n,i;
5 [18] scanf("%d", &n);
6 [11] int A[n];
7 [31] for(i= 0; i!=n; i++) A[i]= i;
8 [22] for(i= 0; i!=n; i++)
9 [31] printf("%d: %d\n", i,A[i]);
10 [ 1] }
担って0点もうお手上げだから教えて

378 :名無し生涯学習:2018/11/24(土) 16:07:05.28 ID:MwwUyCgg0.net
"%3d "
じゃなくて
"%3d"
だ。違いわかるな?スペースがいらないってことだよ。
『続けて』だからね。

379 :名無し生涯学習:2018/11/24(土) 16:17:06.83 ID:2RMaMc180.net
絵馬ってこれスペースはいってたの?

380 :名無し生涯学習:2018/11/24(土) 16:20:05.11 ID:2RMaMc180.net
>>378

ありがとういけた。
376はいつも助けてくれるけどプログラマーか何かなの?
すごいよね。
正直初学の俺には、これを必修にした教授に苛立ちしか覚えないよ。
留年しろっていってるようなものだよ。
これだけに時間を費やすこともできないし。

381 :名無し生涯学習:2018/11/24(土) 16:29:03.30 ID:MwwUyCgg0.net
おれはプログラマーじゃない。素人の初学者だよ。
時間かかりすぎるってのは気持ちわかる。
だけど講義資料と自分のコードを注意深く見比べればミスは発見できるはずだよ。

課題を全部クリアしなくても受講と小テストをある程度こなしていたら単位はくれるだろうさ。
ここまできたらもう大丈夫だろうからくさらず頑張ろう。

382 :名無し生涯学習:2018/11/24(土) 17:07:53.56 ID:2RMaMc180.net
>>381それが小テストもやばいんだよね・・・・

これ2年次からは必修じゃなくて選択にならんの・・・・
SEになりたいわけでもないのに。。。

383 :名無し生涯学習:2018/11/24(土) 17:43:52.81 ID:wUP+438V0.net
>>360
いよいよ。あすの日曜日をどう活かすか?
・・・かな。

384 :名無し生涯学習:2018/11/24(土) 18:46:29.68 ID:2RMaMc180.net
>>381
6−1は6の第何項ののをやってるの?こーどすらどうたてていいかわからん・・

385 :名無し生涯学習:2018/11/24(土) 18:57:34.93 ID:MwwUyCgg0.net
>>384
6-1は今終わっただろう。6-2のことを言ってるんだろ?
講義資料の27ページを見てみ?
課題のそのまんまのことが書いてあるよ。

386 :名無し生涯学習:2018/11/24(土) 20:43:26.32 ID:2RMaMc180.net
>>385
#include <stdio.h>
#include <string.h>

int main(int argc,char *argv[]){
#define WORDSIZE 50
char first[WORDSIZE],last[WORDSIZE];
char word[WORDSIZE];

int s;

scanf("%s",first);
strcpy(last,first);
for(s=1;scanf("%s",word)==1;){
if( strcmp(word,first)<0 )
strcpy(first,word);
if( strcmp(word,last)>0 )
strcpy(last,word);
}
printf("%s\n",first);
printf("%s\n",last);

return 0;
}
こんなかんじ?

総レス数 1009
319 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200