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

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

208 :名無し生涯学習:2018/11/14(水) 11:18:16.42 ID:R6KjqRLs0.net
>>205

そうじゃない。また問題を読み間違ってる。
「数字」「大文字」「小文字」を数えるのではなく、
0は何回出てきたか
1は何回出てきたか
2は何回出てきたか

9は何回出てきたか

Aは何回出てきたか
Bは何回出てきたか
Cは何回出てきたか

Zは何回出てきたか

aは何回出てきたか
bは何回出てきたか
cは何回出てきたか

zは何回出てきたか

これを数えるんだ。
>>198をもう一度読み返して。

209 :名無し生涯学習:2018/11/14(水) 11:24:44.65 ID:V5n2DB030.net
>>208
それってこの過大にある左の入力画面の?

210 :名無し生涯学習:2018/11/14(水) 11:28:12.25 ID:V5n2DB030.net
1 1
2 1
3 1
4 1
B 1
K 1
a 1
c 2
d 1
e 3
h 2
k 2
l 1
m 1
n 1
o 4
r 1
s 1
t 2
u 1
y 1

をみて
例えば1は1回、Bは1回、tは2かいとかってこと?

そんなコード講義でどこで教えてるの?

211 :名無し生涯学習:2018/11/14(水) 11:30:26.65 ID:R6KjqRLs0.net
>>207
最初に
#include <stdio.h>
#include <ctype.h>
が抜けている。

最後に
return 0;
}
が抜けている。

[tolower(ch)]++;
この行が講義のと違ってるよ。一文字抜けてる。

212 :名無し生涯学習:2018/11/14(水) 11:33:44.36 ID:V5n2DB030.net
#include <stdio.h>
#include <ctype.h>

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

int count[128];
int ch;

for(ch= 0; ch!=128; ch++) count[ch]= 0;
for(; (ch= getchar())!=EOF;){
count[tolower(ch)]++;
}

for(ch= '1'; ch<='9'; ch++){
if( count[ch]!=0 )
printf("%c %d\n", ch,count[ch]);
}


for(ch= 'A'; ch<='Z'; ch++){
if( count[ch]!=0 )
printf("%c %d\n", ch,count[ch]);
}

return 0;
}

213 :名無し生涯学習:2018/11/14(水) 11:34:23.43 ID:R6KjqRLs0.net
>>210

まさにその通り。
講義資料の86ページから99ページまでで教えてるよ。
98, 99ページにはほとんど答が書いてあるから、それを軽く編集するだけでできあがる。
講義内のコードはaからzまでのぶん。
これに0から9までとAからZまでを付け加えればいいんだ。

214 :名無し生涯学習:2018/11/14(水) 11:42:08.13 ID:R6KjqRLs0.net
>>212
数字は1から9じゃなくて0から9ね。

count[tolower(ch)]++;
これは大文字を小文字に変換する命令。
課題は大文字と小文字を同じに扱うんじゃなくて別の文字として扱えと言ってる。だからこれはいらない。
そして、aからzまでのコードを付け加える。

今のままだと、AからZまでを数えるコードは書かれてるけど、その前に大文字を小文字に変換してるからAからZまで存在しないことになってて数えられていない。
count[ch]++;
に書き換えてみて。

215 :名無し生涯学習:2018/11/14(水) 11:48:42.99 ID:V5n2DB030.net
書き換えたけどえラー出るよ?

216 :名無し生涯学習:2018/11/14(水) 11:50:51.98 ID:V5n2DB030.net
#include <stdio.h>
#include <ctype.h>

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

int count[128];
int ch;

for(ch= 0; ch!=128; ch++) count[ch]= 0;
for(; (ch= getchar())!=EOF;){
count[ch]++
}

for(ch= '0'; ch<='9'; ch++){
if( count[ch]!=0 )
printf("%c %d\n", ch,count[ch]);
}
for(ch= 'a'; ch<='z'; ch++){
if( count[ch]!=0 )
printf("%c %d\n", ch,count[ch]);
}
for(ch= 'A'; ch<='Z'; ch++){
if( count[ch]!=0 )
printf("%c %d\n", ch,count[ch]);
}

217 :名無し生涯学習:2018/11/14(水) 11:50:54.23 ID:R6KjqRLs0.net
>>215
さすがにコード見れなきゃ答えようがない。

218 :名無し生涯学習:2018/11/14(水) 11:51:22.53 ID:V5n2DB030.net
returnはここでは省略

219 :名無し生涯学習:2018/11/14(水) 11:54:10.27 ID:R6KjqRLs0.net
>>216
最後に
return 0;
}
が抜けている。

count[ch]++
の後ろに一文字足りない。

220 :名無し生涯学習:2018/11/14(水) 12:24:54.38 ID:CsnZf6Qp0.net
>>208
これ以上ないくらいわかりやすいです。
お陰で解けました、ありがとうございます

221 :名無し生涯学習:2018/11/14(水) 12:41:50.81 ID:V5n2DB030.net
>>219 40点になる
入力には何を入れるの?

222 :名無し生涯学習:2018/11/14(水) 12:51:00.05 ID:R6KjqRLs0.net
>>221
大文字と小文字の順番が逆。
採点コーナーの失敗例を見ればすぐにわかるよ。

223 :名無し生涯学習:2018/11/14(水) 15:49:14.67 ID:V5n2DB030.net
>>221
いれかえたらえらーでたけど?

224 :名無し生涯学習:2018/11/14(水) 15:50:06.33 ID:V5n2DB030.net
#include <stdio.h>
#include <ctype.h>

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

int count[128];
int ch;

for(ch= 0; ch!=128; ch++) count[ch]= 0;
for(; (ch= getchar())!=EOF;){
count[ch]++;
}

for(ch= '0'; ch<='9'; ch++){
if( count[ch]!=0 )
printf("%c %d\n", ch,count[ch]);
}

for(ch= 'A'; ch<='Z'; ch++){
if( count[ch]!=0 )
printf("%c %d\n", ch,count[ch]);
}

for(ch= 'a'; ch<='z'; ch++){
if( count[ch]!=0 )
printf("%c %d\n", ch,count[ch]);
}

return o;
}

225 :名無し生涯学習:2018/11/14(水) 15:52:24.29 ID:V5n2DB030.net
in countって出て40点変わらないよ・・・・

226 :名無し生涯学習:2018/11/14(水) 17:12:14.84 ID:s/2m770+0.net
>>224>>225は同じ人だよな?
>>224は100点が取れる完成プログラムだから、
こういうのは貼り付けるのは良くないから控えるようにしよう。
でもそのままだとコンパイルエラーが出るはず。
エラーメッセージをGoogle翻訳にでもかければ、
どこが間違ってるのか(何行目の何という文字が間違ってるのか)すぐにわかるよ。
それを修正すれば、もう100点だ。
出来たプログラムは貼り付けないでね。

227 :名無し生涯学習:2018/11/14(水) 20:07:20.88 ID:2juI7YUE0.net
すいません…
今5-4やってますが、(課題略)
実行を押すと数字並びの所(というか下)の結果が全て「0」になってしまいます。
試しに数字並びのプラログラムを上へ、英字を下へ入力すると今度は数字並びの結果(↑)はしっかり出て、逆に英字並び(↓)は「0」に…
これはどういうことなのかわかりますかね?

228 :名無し生涯学習:2018/11/14(水) 20:20:30.95 ID:V5n2DB030.net
5-2をやってるんですが
採点が0点です
CW:1〜CW:58と下にずらっと出ます

何が間違いなんでしょうか・

229 :名無し生涯学習:2018/11/14(水) 20:26:49.63 ID:2juI7YUE0.net
>>228
詳しく見ないとわかりませんが…
恐らく英字並びではなく単語をカウントしてないですかね?
後、5-2の答えは既に授業にそのまま出てますよ。

230 :名無し生涯学習:2018/11/14(水) 20:42:51.44 ID:ex/tzvk80.net
>>227
if(〜)の文を数字と英字の二つ用意してると思うけど、両方を同じfor文の中に入れてるかな?
for文を二つ作るのではないよ。

231 :名無し生涯学習:2018/11/14(水) 20:47:41.72 ID:ex/tzvk80.net
>>228
根本的にいろいろ間違ってそうなので。コード晒してみて。
まだ答に近くなってないみたいだから大丈夫だよ。

232 :名無し生涯学習:2018/11/14(水) 21:11:51.58 ID:2juI7YUE0.net
>>230
指摘ありがとうございます!
for2つを1つにしてみましたが、
依然結果は変わりません…

いれるというのは
for分から{if〜}{if〜}で繋げるという意味ですよね?

233 :名無し生涯学習:2018/11/14(水) 21:58:13.80 ID:ex/tzvk80.net
>>233
一応だけど、プログラムには本人のクセが必ず出るから、
誰が書いたものなのかわかりやすいんだ。
5chに書いた人が誰なのかわかってしまうから、
あっちに書くのかコッチにかくのかどちらかにしておいたほうがいいよ。

234 :名無し生涯学習:2018/11/14(水) 22:04:36.71 ID:ex/tzvk80.net
>>232
その通りだよ。
>for分から{if〜}{if〜}で繋げる
これで間違っていない。
そこまでできていれば100点になるはずだけど。
結果が変わらないとは不可解。
二つのif文の違いは、isalpha(ch)かisdigit(ch)の違いだけ。

どうにも煮詰まったらコード晒してみて。

235 :名無し生涯学習:2018/11/14(水) 22:16:57.29 ID:Q8j95+/I0.net
昨日から6-4プログラミングを8時間くらいやってようやく100点になったぞー!

次は7-4か…
まだ8回には一切手を出せてない…

236 :名無し生涯学習:2018/11/14(水) 22:30:37.63 ID:ex/tzvk80.net
>>235
6-4頑張ったな!
これは無茶苦茶難しいやつだ。これをクリアできるとはすごい!!

しかしだ、7-4はそれ以上だ。
というよりあの難しい6-4とは比較にならないくらいだよ。
数学が得意な人にとってはそうでもないのかもしれないけど。

ちなみに8回は7回と違っては簡単だから、
そっちを先にやっつけてしまうのがお奨めだよ。

237 :名無し生涯学習:2018/11/14(水) 22:37:18.94 ID:2juI7YUE0.net
>>234
早速ですがお力添えをお願いします…

ca= cw= state= 0;
for(; (ch=getchar())!=EOF;){
if( state==0 && isalpha(ch) ) ca++;
state= (isalpha(ch) ? 1:0 );
}{
if( state==0 && isdigit(ch) ) cw++;
state= (isdigit(ch) ? 1:0 );
}
printf("%d\n", ca);
printf("%d\n", cw);

主に原因がありそうなのはこのあたりですよね

238 :名無し生涯学習:2018/11/14(水) 22:48:12.34 ID:ex/tzvk80.net
>>237
ifの中にifを入れてる構造になってるね。
中にいれないで、二つのifは並列に並べたらいい。
※ }{の行を消すだけでそうなるよ。

そのかわりに、staitを二つ用意するんだ。
s1とs2なんて感じでいい。
数字とアルファベットでステータスの記録を別々に行うんだ。

ちょっと表現がわかりにくいかな?すまん。
わからなかったらもう一度聞いてね。

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
とそれぞれ書き換えて。

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

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