トップページ⇒tech
1001コメント348KB

C/C++の宿題を片付けます 62代目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/03/03(金) 14:28:38
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】
http://www.linux.or.jp/JM/index.html

【前スレ】
C/C++の宿題を片付ケます 60代目
http://pc8.2ch.net/test/read.cgi/tech/1139053955/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
次スレが立たない時の避難所
http://pc8.2ch.net/test/read.cgi/tech/1122705615/
0002デフォルトの名無しさん2006/03/03(金) 14:31:49
[>>1からついでに色々。]
・同じ講義を受けている人が既に同じ宿題を依頼してるかもしれなせん。
 まずはスレを少しさかのぼって探してみてください。
 それさえ出来ないシメジ野郎はバター焼きにして食っちまうぞ
・解答者は答える義務もないし、答えてもそれが正しいかどうかは保証しません。
 もちろん、出題者先生の意図なんぞ知ったことではありません。
 At your own riskで。
・態度が余りに悪いとすーぱーはかーがあなたの先生にチクるかもしれません。
・>>1の前スレってとこ丸々コピペだから60代目のまんまだった、スマソ
 正しくはこっち
 【http://pc8.2ch.net/test/read.cgi/tech/1140039002/】
0003デフォルトの名無しさん2006/03/03(金) 14:34:56
お金払いますので童貞を捨てられるプログラムをC言語でお願いします
0004デフォルトの名無しさん2006/03/03(金) 14:35:03
>>1
Z
0005デフォルトの名無しさん2006/03/03(金) 14:42:29
避難所を立てた 後悔はしていない

C/C++の宿題を片付ケます@避難所
ttp://pc7.2ch.net/test/read.cgi/pc2nanmin/1141364482/
0006デフォルトの名無しさん2006/03/03(金) 14:45:42
>>前スレ995
英語版では正しく使われている。日本語訳が糞なだけ。
0007デフォルトの名無しさん2006/03/03(金) 14:47:37
スルー用テンプレ

  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_    スルー
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0008デフォルトの名無しさん2006/03/03(金) 14:49:43
それ全然面白くないから
センスも感じられない
0009デフォルトの名無しさん2006/03/03(金) 15:05:15
  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_    スルー
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0010デフォルトの名無しさん2006/03/03(金) 18:10:16
==、,-、  、ヽ、 \>   ,,  '''\ _
メ゙ヽ、\ ̄""" ̄--‐   、 \  /ゝ、\
=─‐\\‐  /─'''''ニ二\''' |レレゝゝ、\
 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、       / ̄ ̄ ̄ ̄ ̄
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\     | さあ問題を言え
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、   < どんな問題も
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ,    | 1つだけスルーしてやろう・・・
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、  \_____
二─二二彡彡、゙、三三二==くメゝ/   ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/::      \''-、メメゝゝゝ_ゝ 、 ,,、ヽヽ
、  ,,,,- ゙彡//ヾ、三二= くゝ/:::....      \>∠レ-,-‐ニ二メヽ''ヽ ノ
 ゙ヽ、,,,-‐//_///,,、゙、三二=  ゙、 ""'''      ヽ>//レレヽ,,___  /
-,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ.         //-ヘヘ,、 レレレレノ
''"      ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,//    ゙ヽフ/|/| レ'
      /ゝ、/ヽ|ヽレ,,゙ヽ、゙''ヽ、,,,,,,_ヽ''ニ='',,-'"、─-,,,,,_   ̄"'ノ
     /メ / レ/,''"へへべ''─---- ̄-メヽ"ゝゞゝヽ、  >---''"
    /ヘヘ、|//ヘヘヘヘヘヘヘヘ,,-イ ̄ | ̄"'''-ニニニ二-''"
   /ヘヘ∧/./フヘヘヘヘヘヘヘ,/イ  /  /   /    ゙ノ\、\
   /ゝゝ| / /メヘヘヘヘヘヘ/'" |  /  /  /    /  \\
  /ゝ /|‐/ /フヘへヘヘヘ/∧  /-'"-'''"__,,-''"    /     /、\
 //|_| /./へへへヘヘ、// |/      \_,,,,-‐'"    /  ゙、.゙、
'"/ヽ"/'"へへヘヘヘヘ//  ノ          \    ,,,,-‐'"    ゙、゙、
.ノ //へへヘヘヘヘ//ヽ ./            ゙、''""      ,,/、゙、
/-"へへヘヘヘヘヘ//  |‐"              \_,,,,,,,,-‐'''"   | |
へへへへヘヘヘヘ//ヽ ノ                ゙,         | |
0011デフォルトの名無しさん2006/03/03(金) 19:21:27
>>3
アメリカの刑務所ではきっとヤポン人は大人気だぉ
あっ、でも童貞は捨てられんか。後ろの処女は捨てれても。
0012 ◆aDhNsJNKcw 2006/03/03(金) 19:51:07
[1] 授業単元:プログラミング C++
[2] 問題文:
8×8のマス目において+と−をランダムに置き、+で囲まれた領域と数を求める
−++++−+−       −++++−+−
+−−−−+−−       + 1 1 1 1 +−−
+−−−−+−−       + 1 1 1 1 +−−
−++++−−−       −++++−−−
−+−−+−−−       −+ 2 2 +−−−
++−−+−−−       ++ 2 2 +−−−
−+++++−−       −+++++−−
−+−−−+−−       −+−−−+−−
これから→              これを表示
データは配列の初期値として与えてください
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 2006年3月6日17:00まで
[5] その他の制限:関数・配列まで
お願いします。
0013デフォルトの名無しさん2006/03/03(金) 20:10:45
俺がC言語で引き受けた。
0014デフォルトの名無しさん2006/03/03(金) 21:55:21
C++の授業なのにクラス習ってないのか・・・?
0015デフォルトの名無しさん2006/03/03(金) 22:03:51
これをクラス化すると…って展開もあるじゃん……って、この時期にか>自分
0016デフォルトの名無しさん2006/03/03(金) 22:06:55
>>12がC++を理解できてないんじゃないの?
万が一ソースコードの説明を求められたら答えられないから。
0017デフォルトの名無しさん2006/03/03(金) 22:50:49
ならクラスで作ろうか
0018デフォルトの名無しさん2006/03/03(金) 22:51:04
この前報酬つきで解いた人って本当にもらったの?
0019デフォルトの名無しさん2006/03/03(金) 22:53:09
黙れ乞食
0020 ◆aDhNsJNKcw 2006/03/03(金) 23:22:07
クラスはまだ習ってないです。
>>15 春休みの課題です。
一応頑張ったんですがどうしても解けないんで…
良ければお願いします。
0021162006/03/03(金) 23:27:57
>>20
ごめんなさい
0022デフォルトの名無しさん2006/03/03(金) 23:29:40
とゆうかこの時期でクラスやってないって
何のためにC++やってるんだ?
0023 ◆aDhNsJNKcw 2006/03/03(金) 23:36:15
>>21
いえいえ、気にしないでください
>>22
2年前期からクラスやるみたいです。�@→�Aと続くんで。
0024デフォルトの名無しさん2006/03/03(金) 23:43:15
C++っぽいの
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1677.txt
0025デフォルトの名無しさん2006/03/03(金) 23:45:48
charがunsignedの環境ではうまく動かんね
0026 ◆aDhNsJNKcw 2006/03/03(金) 23:53:17
>>24
わざわざありがとうございます。
実行してみたら重大なエラーってでましたorz
0027デフォルトの名無しさん2006/03/03(金) 23:54:17
そんなのシラネ
0028デフォルトの名無しさん2006/03/03(金) 23:54:23
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。

メシ喰ってくる!
0029 ◆aDhNsJNKcw 2006/03/03(金) 23:58:04
>>28
すいません。
kai.cpp: In function `void solve(char (*)[8], char (*)[8])':
kai.cpp:85: warning: implicit declaration of function `int copy(...)'
未定義の 最初に参照している
シンボル ファイル
copy /var/tmp/cckKaaHE1.o
ld: 重大なエラー: シンボル参照エラー。kai に書き込まれる出力はありません。
0030デフォルトの名無しさん2006/03/04(土) 00:31:09
#include <algorithm>
0031 ◆aDhNsJNKcw 2006/03/04(土) 00:54:59
すげー!動きました。
どうもありがとうございます。
0032デフォルトの名無しさん2006/03/04(土) 02:01:56
この前報酬つきで解いた人って本当にもらったの?
0033デフォルトの名無しさん2006/03/04(土) 03:54:30
推測なんだが。

口止め料込みで結構もらってるのか、
あるいは、あんまり簡単だったので解答側が報酬を断ったか・・・
だと思っている。

打ち込み作業がある程度あったようなので、
マジで金のやり取りがあったと思われる。
0034デフォルトの名無しさん2006/03/04(土) 07:53:37
>>31
おいおい、授業でなに習ってたんだ?
0035デフォルトの名無しさん2006/03/04(土) 07:56:42
STLって授業で習ってない技術だと思うんだがなぁ。
0036デフォルトの名無しさん2006/03/04(土) 10:52:10
クラスすらやってないのにSTLはまだだろw
とゆうかそもそも授業でするのかすら怪しいが>STL
0037デフォルトの名無しさん2006/03/04(土) 11:46:24
このスレでC++の解答者はSTL使いたがるからなぁ。
相手の力量にあわせて、自分の技術を抑える訓練をするべし。
0038デフォルトの名無しさん2006/03/04(土) 11:51:09
C ばかりで欲求不満なんですお
0039デフォルトの名無しさん2006/03/04(土) 12:03:03
>>33
なんかメール来てたけど暇つぶし貰っただけだから無視した。
0040デフォルトの名無しさん2006/03/04(土) 12:21:36
>>37
というか、明らかに嫌がらせだと思うが
0041デフォルトの名無しさん2006/03/04(土) 12:25:12
相手の力量にあわせたコードを書く位なら相手が自力で書けるようになるまで親切に教える!!!!
0042デフォルトの名無しさん2006/03/04(土) 12:28:43
>>41様が、自力で書けるようになるまで親切に教えてくれるらしいぞ。
おまいら今のうちに頼んどけ!頼んどけ!
0043デフォルトの名無しさん2006/03/04(土) 12:42:28
>41 おせーて。

テストコードの書き方とか。
設計の仕方とか。
ドキュメントの書き方とか。
英語とか。

ぷりーづ・てぃーち・みー。
0044デフォルトの名無しさん2006/03/04(土) 13:00:12
>>12
#include <iostream>

bool fill_area(char * square, int value, int x, int y, int size)
{
  if (x < 0 || x >= size || y < 0 || y >= size) return false;
  if (square[x + size * y] != '-') return true;
  square[x + size * y] = '0' + value;
  int dir[] = {0, 1, 0, -1, 0};
  for (int i = 0; i < 4; ++i)
    if (!fill_area(square, value, x + dir[i], y + dir[i+1], size))
      { square[x + size * y] = '-'; return false; }
  return true;
}

int main()
{
  char cells_square[] = ("-++++-+-" "+----+--" "+----+--" "-++++---"
"-+--+---" "++--+---" "-+++++--" "-+---+--");
  int   value = 1;
  for (int i = 0; i < 64; ++i)
    if (cells_square[i] == '-'
&& fill_area(cells_square, value, i % 8, i / 8, 8)) ++value;
  for (int i = 0; i < 8; ++i) {
    for (int j = 0; j < 8; ++j)
      std::cout << ' ' << cells_square[8 * i + j];
    std::cout << std::endl;
  }
}
0045デフォルトの名無しさん2006/03/04(土) 13:04:41
>>44
それだとエリア数が10以上になった時点でぶっぴんなんだね〜
0046デフォルトの名無しさん2006/03/04(土) 13:34:23
え〜〜〜〜? 81まで大丈夫だよ〜〜〜
0047412006/03/04(土) 13:42:28
>>43
俺の力量にあわせて、質問レベルを抑える訓練をするべし
0048デフォルトの名無しさん2006/03/04(土) 14:02:40
ゾーンなら2300万まで対応可能
0049デフォルトの名無しさん2006/03/04(土) 14:10:57
>>47
あのね、ぷろぐらむがね、ただしくね、うごいているかね、しらべるほうほうをね、おしえてね。
0050デフォルトの名無しさん2006/03/04(土) 14:15:22
変換も知らない馬鹿がいるな。
>>47に質問するなら最低でも変換くらいしろよ低能。
0051デフォルトの名無しさん2006/03/04(土) 14:23:36
>>49 ひねり過ぎ。ソースコードにならん質問はアウト
>>50 ひねり無さ過ぎ。マターリしるっ
0052何人釣れるかな?2006/03/04(土) 14:26:10
4月よりインターネットは免許制になりまつ
0053デフォルトの名無しさん2006/03/04(土) 14:33:11
>>49
プログラムが正しく動かない状況なんてめったにないぞ。
CPUやメモリなどのハードウェア障害か、さもなくば宇宙線などの不慮の事態かだ。
0054デフォルトの名無しさん2006/03/04(土) 16:16:12
>>52
その方がいいと思うよ
0055デフォルトの名無しさん2006/03/04(土) 16:19:18
>>52
俺の聞いた話ではPSEマークのないプロバイダは
サービス停止だということだが、それとは違うのか?
0056デフォルトの名無しさん2006/03/04(土) 17:23:31
真面目に>>52でいいと思うがな
例えば経産省がやってる情報処理技術者資格のどれかが必須とか
0057デフォルトの名無しさん2006/03/04(土) 18:29:26
まぁ、そんなことした瞬間IT産業は終わるわけだが
0058sage2006/03/04(土) 19:40:20
[2]些細な質問でスミマセン・・・。

下のA.txtをインプットすると、B.txtがアウトプットされるC++プログラムを作ります。
while{ }を使うことも条件ですが、なかなかうまくイキマセン・・・。
while{ }で文字カウントする方法を中心に教えてください。

A.txt の内容--------- B.txt の内容-----------------
ll chA chI 母音の数、行数、文字数
ll chU chE Number of a's: 1
ll chO jyo       ⇒⇒ Number of e's: 2
ll shi shu ⇒⇒ Number of i's: 3
ll she sho l Number of o's: 4
nyi nyu nyo Number of u's: 3
---------------------- Number of lines: 5
Number of characters: 68
-------------------------------
0059デフォルトの名無しさん2006/03/04(土) 19:42:01
>>58
日本語でおk
0060582006/03/04(土) 19:42:07
もうしわけございません。行が崩れました。

些細な質問でスミマセン・・・。

下のA.txtをインプットすると、B.txtがアウトプットされるC++プログラムを作りたいです。
while{ }を使うことも条件ですが、なかなかうまくイキマセン・・・。
while{ }で文字カウントする方法を中心に教えてください。


A.txt の内容-------------------
ll chA chI
ll chU chE
ll chO jyo
ll shi shu
ll she sho l
nyi nyu nyo
-------------------------------

↓↓
↓↓

B.txt の内容-------------------
母音の数、行数、文字数。

Number of a's: 1
Number of e's: 2
Number of i's: 3
Number of o's: 4
Number of u's: 3
Number of lines: 5
Number of characters: 68
-----------------------------------
0061デフォルトの名無しさん2006/03/04(土) 19:43:07
マルチは消えろよ
0062デフォルトの名無しさん2006/03/04(土) 23:43:50
>>60

ネタかとおそれつつマジレスすると、無難なところでこんな感じか。

#include <iostream>
#include <vector>
#include <algorithm>
#include <boost/lambda/lambda.hpp>
int main()
{
using namespace std;
using namespace boost::lambda;

// 「while {}で文字カウント」する部分
vector<int> count(256); // int count[256];みたいなもの。文字コード0から255(==256-1)について、それぞれのカウントを格納する
int ch;
while ((ch = cin.get()) != EOF) { // 標準入力から1文字読み込み。end-of-fileが見つかるまで繰り返し
++count[ch]; // 読み込んだ文字のカウントをインクリメントする
}

// 後は何とでも
char chars[] = "aeiou";
for (int i = 0; (ch = chars[i]) != '\0'; ++i)
cout << "Number of " << ch << "'s: " << count[ch] << endl;
cout << "Number of lines: " << count['\n'] << endl;
int total = 0;
for_each(count.begin(), count.end(), (var(total) += _1));
cout << "Number of characters: " << total << endl;

return 0;
}
0063デフォルトの名無しさん2006/03/04(土) 23:59:01
>>62
countをvectorにする意義が見出せない。boost::arrayで十分。
結果を出力するループで改行文字を弾けよ。
最後にboost::lambdaなんて使わなくても<numeric>のstd::accumulateがあるだろ。
0064デフォルトの名無しさん2006/03/05(日) 00:16:38
>>63

>countをvectorにする意義が見出せない。boost::arrayで十分。
速度にこだわるなら、確かに。

>結果を出力するループで改行文字を弾けよ。
出力のフォーマットが違うからうっとうしい。やってみて?

>最後にboost::lambdaなんて使わなくても<numeric>のstd::accumulateがあるだろ。
あちゃー、使ったことないし、知らなかったよ。こんな感じ?
+#include <numeric>
-#include <boost/lambda/lambda.hpp>
+cout << "Number of characters: " << accumulate(count.begin(), count.end(), 0) << endl;
-int total = 0;
-for_each(count.begin(), count.end(), (var(total) += _1));
-cout << "Number of characters: " << total << endl;
0065デフォルトの名無しさん2006/03/05(日) 00:27:39
chはcharにキャストせんとうまくいかんよ。
あとは仕様通りだが、そもそも>>60の行数が5なのが奇妙な話だ。
0066632006/03/05(日) 00:32:40
>>64
> 結果を出力するループで改行文字を弾けよ。
すまん。これ俺の勘違い。忘れてくれ。
0067デフォルトの名無しさん2006/03/05(日) 00:34:47
飢えてるなぁ。
0068デフォルトの名無しさん2006/03/05(日) 00:36:10
宿題を解くとダメ出ししてもらえることがあるのが好きだ
0069デフォルトの名無しさん2006/03/05(日) 00:37:04
>>63,65,66
添削さんくすです。

後は、>>60が理解できることを祈るばかり。
0070デフォルトの名無しさん2006/03/05(日) 00:58:33
>>69
理解する前に、「boostが入っていなくてコンパイルできない」に
1000点。
0071デフォルトの名無しさん2006/03/05(日) 04:12:15
正直 boost は避けてるなあ。使わせてくれない現場多いし。
0072582006/03/05(日) 04:22:27
58です。62-72さん、ありがとうございます。
先月、C++をさわりだした私にとって、難しいです。
正直、62>>内の #include <iostream> using namespace std; しか分かりませんでした。
私のレベル↓を最所に書かなかった事を謝ります。

----------- C++ ----------
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
#include <cmath>

using namespace std;

int main()
{
ifstream inFile;
ifstream outFile;
string outputFile;
string inputFile;
double n, m;
char a;
string L;

cout << endl;
cout << "Enter the name of the input file: ";
cin >> inputFile;
cout << endl << inputFile << endl;
inFile.open(inputFile.c_str()); // open the input file
0073582006/03/05(日) 04:28:36
>>72 続き
if (! inFile)
{cout << "Error opening input file named: " << inputFile << endl;
cout << "Terminating program now..." << endl << endl;
exit(1);}
cout << "Enter the name of the output file: ";
cin >> outputFile;
cout << endl << outputFile << endl;
outFile.open(outputFile.c_str());
inFile.ignore(200,'\n');

// 以下からよく分かりません。
// n = 0;
// while (inFile)
// {
// getline(inFile, L);
// if(inFile.get(a))
// {n= n + 1;}
// ↑こうすると、何故か行数が出る。

// m = 0;
// while (inFile.get(a))
// {m = m + 1;}
// ↑こうすると、何故か総文字数が出る。

outFile.close();
inFile.close();
return 0;
}
0074582006/03/05(日) 04:31:45
あと、大文字、小文字共にカウントします。
例: A と a 両方カウントします。

よろしくお願いします。
0075デフォルトの名無しさん2006/03/05(日) 05:44:17
if(ch='a' || ch='A') countA++; みたいにすりゃいいんじゃね('A`)
0076デフォルトの名無しさん2006/03/05(日) 05:55:10
>>58
ググって適当にコピペ、を何度か繰り返したような感じのコードだなあ。
「//以下からよくわかりません」の前も滅茶滅茶。

CとかC++とか言う前に、ずっと基本的なこと、たとえば
文字はどうやって表現されているのか、とか、
テキストがファイルにどのように格納されているのか、
等々を理解しないと、前に進めそうにない罠。

とりあえず↓当たってみたら。
推薦図書/必読書のためのスレッド PART29
ttp://pc8.2ch.net/test/read.cgi/tech/1138179810/l50

0077デフォルトの名無しさん2006/03/05(日) 06:27:04
>>72心配すんな >>41先生が手取り足取り教えてくれる。
0078デフォルトの名無しさん2006/03/05(日) 09:48:15
愚直にやるならこんなかんじじゃないかね
面倒なんで直接レス書き込み欄から書くのでバグだらけだと思うのでそのまま信用はするなよ?

int ch, nA=0, nE=0, nI=0, nO=0, nU=0, nLine=0, nChars=0;
File *f;
fp = fopen("A.txt", "r");

while((ch=fgetc(f)) != EOF) {
switch(ch) {
case 'A' || 'a': nA++; break;
(中略)
case '\n': nLine++; break;
}
nChars++;
}
0079デフォルトの名無しさん2006/03/05(日) 09:57:51
int count[256] = {0};
int length = 0;
int c;
while ((c = fgetc(fp)) != EOF) {
count[c]++;
length++;
}
printf("A: %d\n", count['a'] + count['A']); /* ここはサブルーチンとかテーブル化できるね */
printf("%d lines\n", count['\n']);
printf("%d charctors\n", length);

0080デフォルトの名無しさん2006/03/05(日) 15:39:39
Winだと行数は厳密には\r\nの連続をカウントしなきゃいかん気がする。
\rの単独は知らないが、\nの単独はExcel形式のCSVで出てくるし。
0081デフォルトの名無しさん2006/03/05(日) 16:41:05
うわ
自分語り始まったw
きもw
0082デフォルトの名無しさん2006/03/05(日) 17:21:33
>>80
テキストモードで開いているから、\r\nは\nに変換されますが。
0083デフォルトの名無しさん2006/03/05(日) 18:02:42
誰か神様!! >>12の問題を発展させたやつで、
16×16マス目で、+とーはランダムじゃなく
配列の初期値としてユーザーが打ち込む。っていうプログラムを、
クラスもSTLも使わないでC++で作ってください…お願いします。
0084デフォルトの名無しさん2006/03/05(日) 18:05:26
  \\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_    スルー
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ        ├┤|
0085デフォルトの名無しさん2006/03/05(日) 18:12:24
つまりクラス・STLだけと言わず、Boostなどをふんだんに使用しろという事だな
0086デフォルトの名無しさん2006/03/05(日) 18:12:41
>>83
・・・・・・・・・・・・>>44を書き換えればいいだけじゃないか・・・・・・・・・・・
0087デフォルトの名無しさん2006/03/05(日) 18:30:15
C言語が全くわからないから、細かい修正から全部やってくれ、ってことだろう
0088デフォルトの名無しさん2006/03/05(日) 18:33:33
>>84
神龍…そんなこと言わずに…
>>85
違いますね
>>86
44は+と−が最初から決められてるんで、
使う人が+−を打ち込む形にしてほしいんですよ…
0089デフォルトの名無しさん2006/03/05(日) 18:37:49
fgetsでもgetsでもscanfでもgetcharでも・・・・
0090デフォルトの名無しさん2006/03/05(日) 18:43:39
今気づいたけど、>>44の
char cells_square[] = ("-++++-+-" "+----+--" "+----+--" "-++++---"
"-+--+---" "++--+---" "-+++++--" "-+---+--");
はBCCだとコンパイル通らないな
括弧を外すか、char*にすると通る

変すぎ
0091デフォルトの名無しさん2006/03/05(日) 18:44:52
確かに変だな
2次元配列にでもすりゃいいのに
0092デフォルトの名無しさん2006/03/05(日) 19:03:23
>>90
たしかにコンパイル通るようになっちゃうかもしれんが
char*にするのはダメ
0093デフォルトの名無しさん2006/03/05(日) 19:18:40
char str[]でも
char *strでも
同じ
0094デフォルトの名無しさん2006/03/05(日) 19:27:49
俺も同じだと思うけど違うって言う人居るんだよな
何が違うのか未だわからない
0095デフォルトの名無しさん2006/03/05(日) 19:28:54
char *str = "abcde";
str[2] = 'X'; //oops!!
0096デフォルトの名無しさん2006/03/05(日) 19:30:05
char str[] = "abcde";
str[2] = 'X'; //OK
0097デフォルトの名無しさん2006/03/05(日) 19:31:03

  ( ´д)ヒソ(´д`)ヒソ(д` )
0098デフォルトの名無しさん2006/03/05(日) 19:37:25
>>95>>96
何が言いたいんだおまいら
0099デフォルトの名無しさん2006/03/05(日) 19:54:53
[1] 授業単元:プログラム
[2] 問題文:最初に文字列を入力し、次に検索する文字を入力して、検索文字が最初何番目にあるか表示させるプログラム。
[3] 環境 windows、C言語
[4] 期限 3/5
[5] その他の制限:初めて3日なのでほとんど分かっていません。
0100デフォルトの名無しさん2006/03/05(日) 19:56:55
strstr
0101デフォルトの名無しさん2006/03/05(日) 19:57:23
>>98
書いてある通りだ
■ このスレッドは過去ログ倉庫に格納されています