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大阪 総合校舎)
 名古屋 名古屋駅前サテライトキャンパス (総合校舎スパイラルタワーズ)

設置者 学校法人 日本教育財団(旧学校法人モード学園)
0246名無し生涯学習
垢版 |
2018/11/14(水) 23:44:40.10ID:V5n2DB030
>>243
意や意味わかってないよ
#include <stdio.h>
#include <ctype.h>

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

in=0; cw=0; state=0;

for( ; (in=getchar())!=EOF ; )
{
if(state==0 && isalpha(in)) cw++;
state=(isalpha(in) ? 1 : 0 );

}

printf("state:%d\n",state);
printf("CW:%d\n",cw);


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

return 0;
} 書き換えたが
state:0
CW:12
12とでる

これstateとCWいらなくない?けしちゃだめなの?
0247名無し生涯学習
垢版 |
2018/11/15(木) 00:12:10.46ID:VNWn+5sB0
>>246
必要な出力がもうすでにでてますね。
課題に必要な出力は1個なので他を消せば終わりです
0249名無し生涯学習
垢版 |
2018/11/15(木) 00:55:09.66ID:XQ/dNN1p0
そう言えばもう4-5が納期超えたんだよね。
頑張れみんな。
0250名無し生涯学習
垢版 |
2018/11/15(木) 00:58:21.96ID:XQ/dNN1p0
>>244
カッコの数はあってるかい?
0251名無し生涯学習
垢版 |
2018/11/15(木) 00:58:32.30ID:XQ/dNN1p0
>>244
カッコの数はあってるかい?
0252名無し生涯学習
垢版 |
2018/11/15(木) 01:02:19.51ID:XQ/dNN1p0
エラーと出たらメッセージをコピぺしよう。
知ってるお兄さん達の確認時間が省けるから。
0253名無し生涯学習
垢版 |
2018/11/15(木) 06:13:52.13ID:dbVRhp/+0
>>246
すでに>>247が答えてくれてるけど、stateとCWはいらないね。
それはそのコードを書いた人が変数の中身を書きだして
プログラムの動きを確認しようとしているもの。

他人のコードを参考にするのはいいけど、理解せずにまるごとコピペじゃダメだよ。
0254名無し生涯学習
垢版 |
2018/11/15(木) 09:51:33.32ID:Y0bdvkLi0
みんな凄い勉強してるね!福祉の方は簡単なの?
0256名無し生涯学習
垢版 |
2018/11/15(木) 14:33:38.98ID:D7mjUvGT0
>>247さん

ありがとう!とけました!
続けて5−3やってるんですけど数字を一個一個カウントしてしまってる。連なっているものを一個としてカウントさせるにはどうしたらいいんですかね・・
#include <stdio.h>
#include <ctype.h>

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



for( ; (in=getchar())!=EOF ; )
{
if( isdigit(in)) cw++;
isdigit((in) ? 1 : 0 );

}


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

return 0;
}
0257名無し生涯学習
垢版 |
2018/11/15(木) 17:04:09.70ID:V4d+/6UJ0
>>255
ファイル名「data1.txt」を開くので、当然fopenを使うよ。
0258名無し生涯学習
垢版 |
2018/11/15(木) 17:11:48.11ID:V4d+/6UJ0
>>256
講義資料の40ページから81ページでやりかたを解説されてるよ。
全部読まなくても80, 81ページにはほとんど答が書かれてる。
0259名無し生涯学習
垢版 |
2018/11/15(木) 17:13:16.05ID:V4d+/6UJ0
>>254
福祉では難しい科目の話題は出てないね。
福祉の人の書き込み少なくなっちゃった。
0260名無し生涯学習
垢版 |
2018/11/15(木) 17:42:18.67ID:NTwra3u8a
来年はどうなるかわからないけど、福祉は今のところは大丈夫。
プログラミングみたいに地獄そうな教科はないよ。

どちらかというと、導入科目が情報寄りで、てんてこ舞いしてる。
0261名無し生涯学習
垢版 |
2018/11/15(木) 20:23:38.50ID:Y0bdvkLi0
導入科目選べるんじゃないの?難しいのは何?
0262名無し生涯学習
垢版 |
2018/11/15(木) 23:30:48.54ID:D7mjUvGT0
>>258いや数字の連なりを1カウントするやり方なんてどこにも書いてないが?
0263名無し生涯学習
垢版 |
2018/11/15(木) 23:42:57.63ID:D7mjUvGT0
>>258
解決したありがとう
0264名無し生涯学習
垢版 |
2018/11/16(金) 05:38:24.14ID:52baXVGe0
>>258
講義資料通りにうってもコンパイルエラーが出てしまいます
どこが間違ってるのでしょうか??
#include <stdio.h>

#include <ctype.h>

int main(int argc, char* argv[]){

int cw,state;


cw=0; state=0;



for( ; (ch=getchar())!=EOF ; ) {

if( state==0 && isalpha(ch) ) cw++;

state=(isalpha(ch) ? 1 : 0 );
}



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


return 0;

}
0266名無し生涯学習
垢版 |
2018/11/16(金) 19:09:13.35ID:mwDvM4Tr0
61.1% 2-1  239名 (61.1%)  コピペ
51.3% 2-4  200名 (51.3%)  変数 for文
37.7% 3-4  147名 (37.7%)  変数 for文
15.9% 4-4  62名 (15.9%)  条件分岐
20.5% 5-4  80名 (20.5%)  ライブラリ
6.7% 6-4   26名  (6.7%)  配列
1.5% 7-4   6名   (1.5%)  長桁計算
2.6% 8-4   10名  (2.6%)  引数

第四回より第五回の方が合格者数多いことに注目。
第七回より第八回も同じ。
四回、七回で行き詰った人は五回、八回を先に済ませてしまおう。
0267名無し生涯学習
垢版 |
2018/11/16(金) 20:02:43.05ID:sdwyvXYb0
うーん、6-3のプログラムの建て方がわからない。
入力がただファイルになっただけなのにもうこんがらがってしまう…
0268名無し生涯学習
垢版 |
2018/11/16(金) 23:22:29.82ID:xWVD6tCe0
高3なんですが映像の専門卒業後ここ編入若しくは他大学入学しようかなと考えてます
安いのが一番重視している点なんですが編入で入ったとして授業ついていけなかったらどうしようとここ見て思いました… プログラミング1からでしかも編入でってのは厳しそうですかね
0269名無し生涯学習
垢版 |
2018/11/17(土) 06:25:09.86ID:CGL5j8SC0
5-3なのですが、このプログラムだと33点しか取れません。どなたかヒントを
頂けないでしょうか。
#include <stdio.h>
#include <ctype.h>

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

in=0, cw=0; state=0;

for( ; (in=getchar())!=EOF ; )
{
if(state==1 && isdigit(in)) cw++;
state=(isdigit(in) ? 1 : 0 );

}



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

return 0;
}
0270名無し生涯学習
垢版 |
2018/11/17(土) 07:13:22.94ID:V14+grLE0
惜しいところまでいってるね。
ヒントを言うと答え言っちゃってるみたいなもんだから言えないけど、あと一息!
0271名無し生涯学習
垢版 |
2018/11/17(土) 07:33:00.84ID:CGL5j8SC0
>>270
うーん、そのどこがどう惜しいかがイマイチよく分からないんですよね。完全に手詰まりです
0272名無し生涯学習
垢版 |
2018/11/17(土) 09:11:27.96ID:RrmozdQB0
>>268
この程度でむずかしそうだと思うのならついていくのは無理だと思う
0273名無し生涯学習
垢版 |
2018/11/17(土) 10:58:57.49ID:ZwUitCl8p
>>269
5-2は出来てるの?
5-2と5-3の課題を見比べて、何が違うか理解できればすぐ出来るよ
0275名無し生涯学習
垢版 |
2018/11/17(土) 12:35:13.19ID:dRBpwTev0
6-3難しいなあ
char word[data1.txt];
みたいなことは書けないのかな?
0277名無し生涯学習
垢版 |
2018/11/17(土) 14:28:10.76ID:xfP4HNxN0
>>272 そんなコメント誰も求めてねーよ。
お前は人に対して思いやりがないんだなあ、、かわいそうに
0278名無し生涯学習
垢版 |
2018/11/17(土) 14:35:22.29ID:xfP4HNxN0
5−4なんだけど
#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( state==0 && isalpha(ch)) cw++;
if( state==0 && isdigit(in)) cw++;
state= (isdigit(in) ? 1 : 0 );
state= (isalpha(ch) ? 1 : 0 );
}


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

return 0;
}
で採点するとセグメンテーションフォルトが発生しましたで採点してくれないんだが・・・
0279名無し生涯学習
垢版 |
2018/11/17(土) 15:41:35.01ID:dRBpwTev0
>>276
すいません全くわかりません
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char* argv[]){
#define fn "data1.txt"
char line[data1.txt];
char word[data1.txt];
int n;
char *p;
FILE *f, *g;
f= fopen(fn, "p"); g= stdout;
fgets(word,data1.txt,stdin);
...
こう書いてみましたがエラーいっぱい出てしまいました
0280名無し生涯学習
垢版 |
2018/11/17(土) 16:10:18.14ID:ZwUitCl8p
>>279
丸々写したらエラーになっちゃうよ。
4-1でやったのは複写、だけど今回はファイルを開くだけでいいんだよ、まず要らないのがあるからそれを消して見て。
0283名無し生涯学習
垢版 |
2018/11/17(土) 17:19:45.45ID:OoUCz4T00
>>268
プログラミングに興味持てそうなら大丈夫だと思うよ。ここまでのプログラムスレ化を見ればわかると思うけど。


ただ講義だけでなんとかしようとすると辛い。自分で調べるようにしないと。
0284名無し生涯学習
垢版 |
2018/11/17(土) 17:24:05.00ID:OoUCz4T00
>>283
激しく乱文しちゃった

言いたかったのは
プログラミングに興味持てそうなら大丈夫だと思うよ。

ただ講義だけでなんとかしようとすると辛い。自分で調べるようにしないと。
ここまでのプログラムスレ化を見ればわかると思うけど。
0285名無し生涯学習
垢版 |
2018/11/17(土) 18:41:28.84ID:9gZj5zoq0
>>278
stateは『並び』の状態であるか否かは記録する変数だよ。
英字と数字で同じいれものに記録してたら記録にならない。
別のいれものを用意するんだ。
0286名無し生涯学習
垢版 |
2018/11/17(土) 21:39:38.23ID:BftH3cgM0
7-1の講義で出た1/nのプログラム、あれは何を1と定義して出来上げてるのか全く分かりません…
どなたか教えてください!
0287名無し生涯学習
垢版 |
2018/11/18(日) 00:13:54.58ID:u52czSVP0
5-4って第4講のやり方必要?
0288名無し生涯学習
垢版 |
2018/11/18(日) 00:45:16.41ID:ZiAgf/lQ0
>>286
%のことかな。
%は割り算の余りを意味します。
0289名無し生涯学習
垢版 |
2018/11/18(日) 00:46:27.50ID:ti6akc9m0
>>285
別の入れ物ですか?どういうこと?

それとなんかセグメンテーションフォルトとかいうエラーが発生するんだけどこれなに?
採点も実行もロクにできないんだけど。
0290名無し生涯学習
垢版 |
2018/11/18(日) 01:05:35.38ID:ZiAgf/lQ0
>>289
セグメンテーションエラーにはいろいろあるけど、この場合でいうとchとinの初期値が定義されていないからかな。

でも結果は多分上手くいかないと思う。
0291名無し生涯学習
垢版 |
2018/11/18(日) 01:11:12.37ID:ZiAgf/lQ0
>>290
inはgetcharで値が入るからいいとして、問題となるのはchだね。chには値が入ってないのにisalphaするからセグメンテーションエラーになる。
0292名無し生涯学習
垢版 |
2018/11/18(日) 01:18:20.92ID:3jAFJG7l0
>>289
入れ物とは変数のこと。
英字用の変数と数字用の変数をそれぞれ用意するんだ。
今のコードの変数『cw』と『state』に英字も数字もどちらも入れ込もうとしてるからそれぞれを数えるのは無理。

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

inとchは数字と英字に変数をわけている。
だけど『cw』と『state』は・・・
0293名無し生涯学習
垢版 |
2018/11/18(日) 01:43:20.09ID:u52czSVP0
ここでプログラミングの質問に対して教えてくれる人ってやっぱり元々やったことある人なのかね
0294名無し生涯学習
垢版 |
2018/11/18(日) 06:41:44.92ID:AIZUIxeH0
>>293
ずっとここで教えてきたけど、実は素人の初学者だよ。
0295名無し生涯学習
垢版 |
2018/11/18(日) 17:04:26.49ID:bv0cqGOA0
>>288
なるほど、だから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;
}
0296名無し生涯学習
垢版 |
2018/11/18(日) 18:48:22.67ID:u52czSVP0
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;
}
0297名無し生涯学習
垢版 |
2018/11/18(日) 18:52:49.40ID:vBW5Msb60
>>295
mとnが逆
r= 1;が間違い
(後で出てくるr/nは1/nという意味になってしまう。お題はm/n)

これだけでは完成しないけどかなり近づくはず。
0298名無し生涯学習
垢版 |
2018/11/18(日) 19:05:04.44ID:vBW5Msb60
>>296

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

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

その次に行内の文字数を数える
for(ch=0; line[ch]!='\n';ch++);
このchを出力する。
0299名無し生涯学習
垢版 |
2018/11/18(日) 21:55:51.95ID:u52czSVP0
こんなプログラムになりました
#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;
}>>298
0300名無し生涯学習
垢版 |
2018/11/18(日) 22:00:22.08ID:lYEjFXlc0
>>296

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?

こうなるんだが?
0301ふぉr
垢版 |
2018/11/18(日) 22:49:58.57ID:vBW5Msb60
>>299
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を出力する、そして"]"を出力する。
0302名無し生涯学習
垢版 |
2018/11/18(日) 23:09:53.08ID:u52czSVP0
>>301
よく分かんないので明日やってみます
0303名無し生涯学習
垢版 |
2018/11/18(日) 23:58:25.57ID:gOQAh1RZ0
>>297
ご指摘ありがとうございます。
問題を理解し、m,nは逆に、r=mへと変更しました!
基礎で申し訳ないのですが、nの範囲を指定するのは
for分を使えばいいのですかね…?
0304名無し生涯学習
垢版 |
2018/11/19(月) 00:00:57.42ID:B2fYN1a30
>>290さん
いや・・・今食い久野を教えてほしいんですが・・・もう時間がないので
0305名無し生涯学習
垢版 |
2018/11/19(月) 00:01:53.90ID:B2fYN1a30
>>292さん

もう時間がないので教えてくださいそれでもわかりません。
0306名無し生涯学習
垢版 |
2018/11/19(月) 06:10:00.35ID:bRPAGXNB0
>>303
nの範囲?
1 < n < 9500
これのことを言ってるのかな。
これは標準入力に与えられる値がこの範囲にありますよというだけで、
プログラムには何も各必要ないよ。
バカでかい数値が入力された場合を考慮する必要はないってこと。
0308名無し生涯学習
垢版 |
2018/11/19(月) 09:09:43.90ID:cEH51Dp20
>>306
え!?

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

というようにnがある一定の数値を読み込めなくなったので必要だと思ってました…
じゃあプログラムが根本的に違うのかな
0309名無し生涯学習
垢版 |
2018/11/19(月) 11:54:58.69ID:pwDNYFMSM
>>308
nである8191は9500以外なので問題文のとおり。
いずれにしてもそこは今作るべきプログラムに関係ないので無視して進めよう。
0311名無し生涯学習
垢版 |
2018/11/19(月) 12:12:45.96ID:pwDNYFMSM
>>308
採点では0点になるだろうけど、そのプログラムの完成度はもう90%以上。
根本的に間違ってないので、小さなミスを修正するだけだよ。
0312名無し生涯学習
垢版 |
2018/11/19(月) 14:48:33.74ID:2c25f7Hf0
>>308 です。
8191の所は無事に解決しました、ありがとうございます!
ただ、出力が上手くいかないですね…
何故か少数第一が削除された状態で反映されてしまいます…
入力1
71 8
出力1
71/8 = 8.75
みたいな感じです、いったい何なんだ…
0313名無し生涯学習
垢版 |
2018/11/19(月) 18:37:54.93ID:fY1oiwIQ0
>>312

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点。
0314名無し生涯学習
垢版 |
2018/11/19(月) 22:10:07.91ID:zi5xCIQ40
>>313
ここ見逃してました、おかげで100点いけましたありがとうございます!
0315名無し生涯学習
垢版 |
2018/11/19(月) 22:57:58.78ID:B2fYN1a30
>>307

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

#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;
}
0316名無し生涯学習
垢版 |
2018/11/19(月) 22:58:27.82ID:B2fYN1a30
これどこがセグメンテーションエラーでてるの?
0317名無し生涯学習
垢版 |
2018/11/20(火) 04:23:24.81ID:vLv6ObvU0HAPPY
>>315

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点とれるけど、なぜなのかを良く理解したほうがいいよ。
0318名無し生涯学習
垢版 |
2018/11/20(火) 04:49:16.97ID:0sC2EqO20HAPPY
>>312
うまく出力出来ないです・・・
どこが間違ってるのか教えて下さい・・・
0321名無し生涯学習
垢版 |
2018/11/20(火) 04:57:41.79ID:0sC2EqO20HAPPY
#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;
0322名無し生涯学習
垢版 |
2018/11/20(火) 04:58:11.17ID:0sC2EqO20HAPPY
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;
}
0324名無し生涯学習
垢版 |
2018/11/20(火) 13:03:02.79ID:ZAsO2RZFaHAPPY
筧 きらいやわー
0325名無し生涯学習
垢版 |
2018/11/20(火) 19:22:44.32ID:a8M0pXjn0HAPPY
井出訓の経歴
看護学博士 ⇒ PhDもっていないのに博士号をもってるように書いている

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

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

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

twitter
https://twitter.com/side55mode
NPO活動の連絡先
info@dfc.or.jp
放送大学
soumu-ka@ouj.ac.jp(総務課)
https://twitter.com/5chan_nel (5ch newer account)
0326名無し生涯学習
垢版 |
2018/11/21(水) 05:40:39.28ID:H/CQTCTK0
4-3をやっていますが、コンパイルエラーになってしまいます
どこが間違っているのか教えて下さい
0327名無し生涯学習
垢版 |
2018/11/21(水) 05:42:28.70ID:H/CQTCTK0
#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;
}
0328名無し生涯学習
垢版 |
2018/11/21(水) 06:57:40.05ID:wa+zfb5y0
>>326 >>327
ファイル名として使ってる変数fnが定義されていない

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

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

全部で5ヶ所。
全て資料からの書き写しミスなので、
プログラムを知らなくてもしっかり見比べれば発見できるミスばかりだよ。
0329名無し生涯学習
垢版 |
2018/11/21(水) 10:45:00.23ID:0mj8m0OS0
>>317ありがとう

でもセグメンテーションフォルトはでっぱなしだよ?
#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;
}
0330名無し生涯学習
垢版 |
2018/11/21(水) 11:26:08.69ID:wa+zfb5y0
>>317
いいね。もう一息で完成だね。

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、またはその逆に統一。
(上二行と下二行で逆になってる)
0332名無し生涯学習
垢版 |
2018/11/21(水) 12:39:01.96ID:0mj8m0OS0
>>330 先生ありがとう。
セグメンテーションガ消えて無事解決しました。捨てずに教えてくれて本当にありがとう。

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

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

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

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

それはisalphaとisdigitは別物だから?ただそれだけ?
0333名無し生涯学習
垢版 |
2018/11/21(水) 15:58:00.76ID:wa+zfb5y0
>>332
クリアしたね。おめでとう!

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

2つの箱(変数)を用意するのは自然に考えただけで発想というほどでもないよ。
講義の中で単語の数え方は出てきてたから、それに数字もかぞえるのなら、
その部分をコピペしてアルファベット(isalpha)を数字(isdigit)に書き換えるだけだな、って思った。
「その部分」がどこなのかを見つけていくのが最も勉強になるし、課題の狙いはそこにあると思うよ。
0334名無し生涯学習
垢版 |
2018/11/21(水) 17:36:24.58ID:0mj8m0OS0
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;

}
0335名無し生涯学習
垢版 |
2018/11/21(水) 17:39:02.26ID:0mj8m0OS0
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'
てでる。
0336名無し生涯学習
垢版 |
2018/11/21(水) 17:42:56.34ID:0mj8m0OS0
#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'
0337名無し生涯学習
垢版 |
2018/11/21(水) 19:43:32.36ID:H/CQTCTK0
>>328
コンパイルは成功したのですが、セグメンテーションフォルトが出てきてしまいます・・・
0338名無し生涯学習
垢版 |
2018/11/21(水) 21:45:31.18ID:wa+zfb5y0
>>336

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

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

【お題抜粋】
>3桁分の場所をとって
> [ と ] とで括った2桁分の
>空白1文字を
これらを反映しようとしていないので、printfの中身を吟味して上記にあわせること。
(これは5-4でできていたはず)
0339名無し生涯学習
垢版 |
2018/11/21(水) 22:14:06.89ID:wa+zfb5y0
>>337

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

これに「反例が現れなければ OK と1行に左詰に書き出し」を付け加えれば完成するよ。
0340名無し生涯学習
垢版 |
2018/11/21(水) 23:06:23.13ID:0mj8m0OS0
>>338

#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;
}
こんなかんじ?
0341名無し生涯学習
垢版 |
2018/11/21(水) 23:22:47.37ID:0mj8m0OS0
#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;
}
0342名無し生涯学習
垢版 |
2018/11/21(水) 23:59:50.97ID:YXU2E4Ys0
井出訓の経歴
看護学博士 ⇒ PhDもっていないのに博士号をもってるように書いている

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

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

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

twitter
https://twitter.com/side55mode
NPO活動の連絡先
info@dfc.or.jp
放送大学
soumu-ka@ouj.ac.jp(総務課)
https://twitter.com/5chan_nel (5ch newer account)
0343名無し生涯学習
垢版 |
2018/11/22(木) 01:12:02.33ID:o/1xaQ/w0
この程度の数学で、おこぼれもらいの馬鹿の集まりか…!お前たちに未来はない!
0344名無し生涯学習
垢版 |
2018/11/22(木) 06:38:19.58ID:j9x31LTU0
>>339
うーん、本家の掲示板通りにプログラムを書き換えてみたのですが、またセグメンテーションフォルトになってしまいました・・・
■ このスレッドは過去ログ倉庫に格納されています

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