■ このスレッドは過去ログ倉庫に格納されています
【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大阪 総合校舎)
名古屋 名古屋駅前サテライトキャンパス (総合校舎スパイラルタワーズ)
設置者 学校法人 日本教育財団(旧学校法人モード学園)
- 239 :名無し生涯学習:2018/11/14(水) 22:55:43.57 ID:2juI7YUE0.net
- >>238
その指摘ですぐ100点いけました!
改めて言われるとなんで出来なかったのかが不思議なくらいです…
分かりやすいアドバイスをありがとうございました!
- 240 :名無し生涯学習:2018/11/14(水) 23:02:26.54 ID:ex/tzvk80.net
- >>239
238だけじゃなく今までの全てがそうなんだけど、「出来ました!」って報告が何よりも嬉しい。
それがおれのモチベーションだよ。
みんな一緒にがんばろう!
- 241 :名無し生涯学習:2018/11/14(水) 23:02:59.58 ID:V5n2DB030.net
- 227です5−2ですがこんな感じです
#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 ; )
{
state=(isalpha(in) ? 1 : 0 );
cw++;
if( isalpha(in) && state==0)
printf("state:%d\n",state);
printf("CW:%d\n",cw);
}
printf("%d\n",cw);
return 0;
}
エ、どの講義ですか?
- 242 :名無し生涯学習:2018/11/14(水) 23:19:49.53 ID:ex/tzvk80.net
- >>241
ごめん。もうこの時間酔っぱらってるから適切なアドバイスできないかもしれない。
if(state==0 && isalpha(in)) cw++;
state=(isalpha(in) ? 1:0);
}
君のコードのある部分を上記に書き換えればOK。
上記コードの意味がわかる人だろうっていうのが前提ね。
明日になればシラフでもっとまともなアドバイスができるかもしれないけど、
今日はこれで勘弁してね。
- 243 :名無し生涯学習:2018/11/14(水) 23:23:18.70 ID:V5n2DB030.net
- 5-2
こんな感じ?
#include <stdio.h>
#include <ctype.h>
int main(int argc, char* argv[]){
int ch;
int ca;
ca=0
for(; (ch=getchar())!=EOF;) {
if( isalpha(ch)) ca++;
if( islower(ch)) ca++;
if( isdigit(ch)) ca++;
}
printf("%d\n",ca);
return 0;
}
- 244 :名無し生涯学習:2018/11/14(水) 23:29:36.70 ID:ex/tzvk80.net
- >>243
いやいや、ずいぶん悪くなってる。
>>241に対する>>242をもう一度読み返してみて。
if(state==0 && isalpha(in)) cw++;
state=(isalpha(in) ? 1:0);
}
これに差し替えてって言ってるけど、それが含まれてないじゃない?
すっかり酔っぱらったので、今日は店じまいです。
この後は明日返事するね。
がんばって!
- 245 :名無し生涯学習:2018/11/14(水) 23:32:52.78 ID:V5n2DB030.net
- #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;
}
エラー出るんだけど5−2
いみわかんねえ
- 246 :名無し生涯学習:2018/11/14(水) 23:44:26.26 ID:ex/tzvk80.net
- >>245
10行目と11行目に { がダブってるからだよ。
- 247 :名無し生涯学習:2018/11/14(水) 23:44:40.10 ID:V5n2DB030.net
- >>244
意や意味わかってないよ
#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いらなくない?けしちゃだめなの?
- 248 :名無し生涯学習:2018/11/15(木) 00:12:10.46 ID:VNWn+5sB0.net
- >>247
必要な出力がもうすでにでてますね。
課題に必要な出力は1個なので他を消せば終わりです
- 249 :名無し生涯学習:2018/11/15(木) 00:37:17.03 ID:w5npQn/Ja.net
- (´・ω・`)アマゾンポイント乞食に朗報です!!期間限定で3000ポイント貰いましょう。
お得な情報はこちらから↓↓
http://rio2016.5ch.net/test/read.cgi/lifesaloon/1537823749/419/
- 250 :名無し生涯学習:2018/11/15(木) 00:55:09.66 ID:XQ/dNN1p0.net
- そう言えばもう4-5が納期超えたんだよね。
頑張れみんな。
- 251 :名無し生涯学習:2018/11/15(木) 00:58:21.96 ID:XQ/dNN1p0.net
- >>245
カッコの数はあってるかい?
- 252 :名無し生涯学習:2018/11/15(木) 00:58:32.30 ID:XQ/dNN1p0.net
- >>245
カッコの数はあってるかい?
- 253 :名無し生涯学習:2018/11/15(木) 01:02:19.51 ID:XQ/dNN1p0.net
- エラーと出たらメッセージをコピぺしよう。
知ってるお兄さん達の確認時間が省けるから。
- 254 :名無し生涯学習:2018/11/15(木) 06:13:52.13 ID:dbVRhp/+0.net
- >>247
すでに>>248が答えてくれてるけど、stateとCWはいらないね。
それはそのコードを書いた人が変数の中身を書きだして
プログラムの動きを確認しようとしているもの。
他人のコードを参考にするのはいいけど、理解せずにまるごとコピペじゃダメだよ。
- 255 :名無し生涯学習:2018/11/15(木) 09:51:33.32 ID:Y0bdvkLi0.net
- みんな凄い勉強してるね!福祉の方は簡単なの?
- 256 :名無し生涯学習:2018/11/15(木) 13:36:02.88 ID:T87gIJgF0.net
- 6-3はfopen使うんでしょうか?
- 257 :名無し生涯学習:2018/11/15(木) 14:33:38.98 ID:D7mjUvGT0.net
- >>248さん
ありがとう!とけました!
続けて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;
}
- 258 :名無し生涯学習:2018/11/15(木) 17:04:09.70 ID:V4d+/6UJ0.net
- >>256
ファイル名「data1.txt」を開くので、当然fopenを使うよ。
- 259 :名無し生涯学習:2018/11/15(木) 17:11:48.11 ID:V4d+/6UJ0.net
- >>257
講義資料の40ページから81ページでやりかたを解説されてるよ。
全部読まなくても80, 81ページにはほとんど答が書かれてる。
- 260 :名無し生涯学習:2018/11/15(木) 17:13:16.05 ID:V4d+/6UJ0.net
- >>255
福祉では難しい科目の話題は出てないね。
福祉の人の書き込み少なくなっちゃった。
- 261 :名無し生涯学習:2018/11/15(木) 17:42:18.67 ID:NTwra3u8a.net
- 来年はどうなるかわからないけど、福祉は今のところは大丈夫。
プログラミングみたいに地獄そうな教科はないよ。
どちらかというと、導入科目が情報寄りで、てんてこ舞いしてる。
- 262 :名無し生涯学習:2018/11/15(木) 20:23:38.50 ID:Y0bdvkLi0.net
- 導入科目選べるんじゃないの?難しいのは何?
- 263 :名無し生涯学習:2018/11/15(木) 23:30:48.54 ID:D7mjUvGT0.net
- >>259いや数字の連なりを1カウントするやり方なんてどこにも書いてないが?
- 264 :名無し生涯学習:2018/11/15(木) 23:42:57.63 ID:D7mjUvGT0.net
- >>259
解決したありがとう
- 265 :名無し生涯学習:2018/11/16(金) 05:38:24.14 ID:52baXVGe0.net
- >>259
講義資料通りにうってもコンパイルエラーが出てしまいます
どこが間違ってるのでしょうか??
#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;
}
- 266 :名無し生涯学習:2018/11/16(金) 05:44:43.07 ID:52baXVGe0.net
- すいません自己解決しました!!
- 267 :名無し生涯学習:2018/11/16(金) 19:09:13.35 ID:mwDvM4Tr0.net
- 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%) 引数
第四回より第五回の方が合格者数多いことに注目。
第七回より第八回も同じ。
四回、七回で行き詰った人は五回、八回を先に済ませてしまおう。
- 268 :名無し生涯学習:2018/11/16(金) 20:02:43.05 ID:sdwyvXYb0.net
- うーん、6-3のプログラムの建て方がわからない。
入力がただファイルになっただけなのにもうこんがらがってしまう…
- 269 :名無し生涯学習:2018/11/16(金) 23:22:29.82 ID:xWVD6tCe0.net
- 高3なんですが映像の専門卒業後ここ編入若しくは他大学入学しようかなと考えてます
安いのが一番重視している点なんですが編入で入ったとして授業ついていけなかったらどうしようとここ見て思いました… プログラミング1からでしかも編入でってのは厳しそうですかね
- 270 :名無し生涯学習:2018/11/17(土) 06:25:09.86 ID:CGL5j8SC0.net
- 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;
}
- 271 :名無し生涯学習:2018/11/17(土) 07:13:22.94 ID:V14+grLE0.net
- 惜しいところまでいってるね。
ヒントを言うと答え言っちゃってるみたいなもんだから言えないけど、あと一息!
- 272 :名無し生涯学習:2018/11/17(土) 07:33:00.84 ID:CGL5j8SC0.net
- >>271
うーん、そのどこがどう惜しいかがイマイチよく分からないんですよね。完全に手詰まりです
- 273 :名無し生涯学習:2018/11/17(土) 09:11:27.96 ID:RrmozdQB0.net
- >>269
この程度でむずかしそうだと思うのならついていくのは無理だと思う
- 274 :名無し生涯学習:2018/11/17(土) 10:58:57.49 ID:ZwUitCl8p.net
- >>270
5-2は出来てるの?
5-2と5-3の課題を見比べて、何が違うか理解できればすぐ出来るよ
- 275 :名無し生涯学習:2018/11/17(土) 12:17:39.05 ID:U1GkwoOLM.net
- >>258
state==1
なぜ?
- 276 :名無し生涯学習:2018/11/17(土) 12:35:13.19 ID:dRBpwTev0.net
- 6-3難しいなあ
char word[data1.txt];
みたいなことは書けないのかな?
- 277 :名無し生涯学習:2018/11/17(土) 14:12:40.19 ID:ZwUitCl8p.net
- >>276
書けるよ、4-1でやったことがまたここで入ってくる
- 278 :名無し生涯学習:2018/11/17(土) 14:28:10.76 ID:xfP4HNxN0.net
- >>272 そんなコメント誰も求めてねーよ。
お前は人に対して思いやりがないんだなあ、、かわいそうに
- 279 :名無し生涯学習:2018/11/17(土) 14:35:22.29 ID:xfP4HNxN0.net
- 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;
}
で採点するとセグメンテーションフォルトが発生しましたで採点してくれないんだが・・・
- 280 :名無し生涯学習:2018/11/17(土) 15:41:35.01 ID:dRBpwTev0.net
- >>277
すいません全くわかりません
#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);
...
こう書いてみましたがエラーいっぱい出てしまいました
- 281 :名無し生涯学習:2018/11/17(土) 16:10:18.14 ID:ZwUitCl8p.net
- >>280
丸々写したらエラーになっちゃうよ。
4-1でやったのは複写、だけど今回はファイルを開くだけでいいんだよ、まず要らないのがあるからそれを消して見て。
- 282 :名無し生涯学習:2018/11/17(土) 16:36:34.12 ID:gGNpAZ3PM.net
- >>283が何にキレてるのか不明。
アンカミス?
- 283 :名無し生涯学習:2018/11/17(土) 16:40:58.61 ID:gGNpAZ3PM.net
- >>281は
>>276のアンカミスだね。
もうこれ答だよ。
- 284 :名無し生涯学習:2018/11/17(土) 17:19:45.45 ID:OoUCz4T00.net
- >>269
プログラミングに興味持てそうなら大丈夫だと思うよ。ここまでのプログラムスレ化を見ればわかると思うけど。
ただ講義だけでなんとかしようとすると辛い。自分で調べるようにしないと。
- 285 :名無し生涯学習:2018/11/17(土) 17:24:05.00 ID:OoUCz4T00.net
- >>284
激しく乱文しちゃった
言いたかったのは
プログラミングに興味持てそうなら大丈夫だと思うよ。
ただ講義だけでなんとかしようとすると辛い。自分で調べるようにしないと。
ここまでのプログラムスレ化を見ればわかると思うけど。
- 286 :名無し生涯学習:2018/11/17(土) 18:41:28.84 ID:9gZj5zoq0.net
- >>279
stateは『並び』の状態であるか否かは記録する変数だよ。
英字と数字で同じいれものに記録してたら記録にならない。
別のいれものを用意するんだ。
- 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でできていたはず)
総レス数 1009
319 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200