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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
2デフォルトの名無しさん:2011/11/29(火) 19:31:21.61
【質問テンプレ】
[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://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
http://pastebin.com/ ←たまにテンポるので上の2つが混んでいる時以外はなるべく使わないで下さい
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 153代目
http://hibari.2ch.net/test/read.cgi/tech/1320365280/
3デフォルトの名無しさん:2011/11/29(火) 23:21:23.48
前スレ>>999

環境は何?
4デフォルトの名無しさん:2011/11/29(火) 23:24:31.02
>>3
% gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)
% uname -a
Linux (ホスト名) 2.6.18-238.12.1.el5 #1 SMP Tue May 31 13:22:04 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
% cat ack.c
#include <stdio.h>

int ack(int m, int n)
{
if (m == 0) return n+1;
if (n == 0) return ack(m-1, 1);
return ack(m-1, ack(m, n-1));
}

int main()
{
printf("%d\n", ack(4, 1));
return 0;
}
% gcc ack.c
% time ./a.out
65533
./a.out 24.65s user 0.79s system 106% cpu 23.969 total
5デフォルトの名無しさん:2011/11/29(火) 23:26:31.69
スタックサイズも出すべきだった。単位はkbytes
% ulimit -s
10240
6デフォルトの名無しさん:2011/11/29(火) 23:27:40.05
まず64ビットだよね
つぎにLinuxだからスタックが足りなくなると自動的に伸ばすよね
多分CPUはCore i7だろうから全部キャッシュに乗っちゃうのかな
どこかにack()の呼び出し回数をカウントするようにしてみて欲しい
ack()の呼び出し回数凄いから
7デフォルトの名無しさん:2011/11/29(火) 23:29:28.17
これはキャッシュに乗るか乗らないかで全然スピードが違ってくるので時間の測定は
あまり意味がないな

むしろスタックサイズに全てかかっていそうだ
俺のはVC10の32bitでスタックサイズ1Mで例外で落ちる
8デフォルトの名無しさん:2011/11/29(火) 23:39:33.31
VC10でもスタックサイズを10Mほどにしたら30秒で65533出てきた
9デフォルトの名無しさん:2011/11/29(火) 23:42:08.17
>>4 の結果はcore i7

32bitマシンでやってみた。
%uname -a
Linux (ホスト名) 2.6.18-92.1.13.el5 #1 SMP Wed Sep 24 19:33:52 EDT 2008 i686 i686 i386 GNU/Linux
% more /proc/cpuinfo | grep "model name"
model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
%time ./a.out
65533
2862984010
./a.out 31.00s user 0.01s system 99% cpu 31.304 total

>>8
なるほど、その間にあるのね。
10デフォルトの名無しさん:2011/11/29(火) 23:43:27.69
書き忘れ。2862984010は呼び出し回数、、おおいねw

>>6
スタックが足りなくなると自動的に伸ばすの初めて知った。ありがとうー
11デフォルトの名無しさん:2011/11/29(火) 23:44:04.87
結局32bitマシンでもスタックサイズを10Mに取ればほとんど結果が出るという事で
この問題はお開きか

何かつまんねえ
12デフォルトの名無しさん:2011/11/29(火) 23:48:20.29
スタックサイズの問題を除外すれば、いくら待っても答えが出ないって状況には誰もならなかったか
13デフォルトの名無しさん:2011/11/29(火) 23:52:06.58
(4,.1)じゃなくて(5,1)だったりしてな
14デフォルトの名無しさん:2011/11/29(火) 23:57:24.38
さすがにそれはw
15デフォルトの名無しさん:2011/11/30(水) 00:02:24.36
wikiのほー修正しといた。
161:2011/11/30(水) 00:05:32.11
一瞬わからなかった。
ありがとう。次は気をつけるー
17デフォルトの名無しさん:2011/11/30(水) 00:05:54.72
前スレの未解決問題。(ほかにあったら転記してね)
979 :デフォルトの名無しさん:2011/11/29(火) 21:17:42.06
[1] 授業単元:コマンドライン引数
[2] 問題文(含コード&リンク):
コマンドライン引数を用いて,以下の計算ができる簡易電卓プログラムを作成せよ.
1. 2 〜5項式までの四則演算(計算順もちゃんと考慮すること)
(出力例)C :¥Programming>dentaku 2 + 5 / 5 + 4 * 2 + 1
答えは 12

C :¥Programming>dentaku 2 * 3 + 1
答えは 7

2.()を用いた演算(かっこの中の計算を最優先する)
(出力例)C :¥Programming>dentaku ( 2 + 3 ) * 7 * ( 3 - 1 )
答えは 70

3. (sin, cos, tan)の演算
(出力例)C :¥Programming>dentaku sin(90) * 2 + 1 - 2
答えは 1

4.logの演算
(出力例)C :¥Programming>dentaku log(3) * 2 + 1
答えは 1.9542425094

5. 半角スペースを入れ忘れても演算可能
(出力例)C :¥Programming>dentaku 1-2*(3+1)-2
答えは 9
[3] 環境
[3.1] OS:Windows7<br>  [3.2] コンパイラ名とバージョン:Borland C++ Compiler 5.5<br>  [3.3] 言語:C言語
[4] 期限:12/3まで
[5] その他の制限:
18デフォルトの名無しさん:2011/11/30(水) 00:15:31.97
>>6
>まず64ビットだよね

これは今回のコードだとどう影響する?

とりあえず引数がレジスタ渡しになる反面フレームポインタとかが64bitだから
スタック使用量としては...

>つぎにLinuxだからスタックが足りなくなると自動的に伸ばすよね

そうだっけ?
19デフォルトの名無しさん:2011/11/30(水) 00:36:04.46
Qの不快な論証を論破するにはここを読もう

http://ronri2.web.fc2.com/kiben.html
http://ronri2.web.fc2.com/shinri.html

まあ精神分析を知ってる人なら皆分かってる事だけどね
20デフォルトの名無しさん:2011/11/30(水) 00:39:04.07
http://ronri2.web.fc2.com/hanron.html

ここを読むとQの書き込みが非論理的である事が一目瞭然

こう書くとQは決まって「私の書き込みのどこが非論理的であるか具体例を上げて
示してください」と反論してくるが、相手にしてはならない

Qは自分に都合の悪い証拠を上げられても徹底的に無視を決め込むので、どんな
ハッキリした証拠を上げても全く無駄です
21デフォルトの名無しさん:2011/11/30(水) 01:09:56.89
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):標準入力から文字型のポイント配列*str[3]を使って"Hello",
"Goodbye","Thankyou"の3つの文字を入力し入力した順番に標準出力に出力する

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: ggc3.4
 [3.3] 言語: C言語
[4] 期限:6時まで
[5] その他の制限: ファイル出力まで習っています

それではお願いします
22デフォルトの名無しさん:2011/11/30(水) 01:15:27.97
strdup()使っていいの?
23デフォルトの名無しさん:2011/11/30(水) 01:18:20.33
使っていいのは、fgets,sscanf,printfのみです
24デフォルトの名無しさん:2011/11/30(水) 02:10:55.38
>>23
malloc() も駄目?
25デフォルトの名無しさん:2011/11/30(水) 02:19:01.44
いいよ
26デフォルトの名無しさん:2011/11/30(水) 02:26:10.79
>>25
良かったの?malloc() を使わないのを書いたところなんだがw
ttp://codepad.org/R3YO4sfJ
27デフォルトの名無しさん:2011/11/30(水) 07:15:21.05
>>17
一番やさしい1. の場合でもマイナス値を扱うと、すこし難しくなるな。
23×−16 などの入力も認めるのかな?
28デフォルトの名無しさん:2011/11/30(水) 08:26:58.10
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4900
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 2011年12月1日
[5] 実装にはスタックを用いてください。
  そのスタックはhttp://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4901です

前スレで未解決だったのでもう一度質問させていただきました。
よろしくお願いします。
29デフォルトの名無しさん:2011/11/30(水) 08:33:05.13
http://hibari.2ch.net/test/read.cgi/tech/1320365280/983
983 名前:デフォルトの名無しさん[sage] 投稿日:2011/11/29(火) 21:35:40.34
Qに一つ例題を出してやろう
アッカーマン関数のAck(4, 1)を出力してみろ
普通に再帰で組むといくら待っても答えが出ないどころかスタックオーバーフローになる
連想配列を使って初めて答えが出る
30デフォルトの名無しさん:2011/11/30(水) 08:45:23.60
京都大学霊長類研究所では、未知の感染症が蔓延し、
感染した研究員はどのスレッドにも同じコピペを
繰り返すといった症状が報告されています。

研究員によると思われる書き込みがあっても
近づかないようにしてください。

                  京都大学
31デフォルトの名無しさん:2011/11/30(水) 09:55:02.28
>>27
認めると思います
32 ◆QZaw55cn4c :2011/11/30(水) 12:21:54.83
>>19-20
おまいさんが QZ を好きなのはよくわかった。蓼食う虫も好き好きというから好みに文句をいうつもりはないが、頼むから、

Q と 略 さ ず に Q Z と 書 け

NGワードに登録できず迷惑だ
33 ◆QZaw55cn4c :2011/11/30(水) 12:23:22.09
34デフォルトの名無しさん:2011/11/30(水) 12:31:39.15
>>33
if (m == 0)
return n + 1;
if (m == 1)
return n + 2;
if (m == 2)
return 2 * n + 3;

だからこれやめいって前の人も書いてたろ
チョンボはあかんよ
あくまでも定義通りの関数だけで答えを出すんだ
本当に人の言う事に耳を貸せないやっちゃな

つーか上の方にも書いてあるけどVC10でもスタックを10MBほど取れば
30秒足らずで答えが出るって分かってるんだけど(Core i7)

お前さんのヘボCPUでは2分ほど掛かるかもしれんけどな
35デフォルトの名無しさん:2011/11/30(水) 12:37:03.28
[1] C言語演習
[2] @ http://codepad.org/jqY1UI1T のプログラムを
スクロール方向を逆にし、さらに文字をキーボードから入力
できるように改良せよ。(全角のみでOK)
  A http://codepad.org/aPqYkjGh のプログラムを、半角スペースが
2つ以上の場合は1つになるように改良せよ。
 [3.1] Windows7
 [3.3] C言語
[4] 12/1の20時まで
[5] @は%sを使用。Aは特に条件なし。
わかる方よろしくお願いします。

36デフォルトの名無しさん:2011/11/30(水) 13:32:28.69
>>947
e^iθ = isinθ + cosθ は感動した
37デフォルトの名無しさん:2011/11/30(水) 13:40:26.24
オイラーの公式か
他にも感動する公式が一杯あるぞ
38デフォルトの名無しさん:2011/11/30(水) 13:44:59.02
iのi乗が実数になるというのも面白いな
39デフォルトの名無しさん:2011/11/30(水) 13:54:21.11
>>35
>半角スペース
変換前? 変換後?
40デフォルトの名無しさん:2011/11/30(水) 13:56:14.90
>>28
後置ならスタックは不要だと思うんだけどなぁ
そこが謎なので手を出しにくい
4140:2011/11/30(水) 14:06:28.74
勘違いしてた、忘れてください
42デフォルトの名無しさん:2011/11/30(水) 14:09:58.67
[1] 授業単元:楽しいC(ポインタと関数)
[2] 問題文(含コード&リンク):
秒数を与えると,それが何日何時間何分何秒にあた
るかを計算する関数
calctime(long sec, int *dp, int *hp, int *mp,
int *sp);
を作成せよ.例えば
calctime(100000, &d, &h, &m, &s);
として呼び出すとd=1, h=3,m=46,s=40 となる
(100,000 秒=1 日3 時間46 分40 秒).以下の実行例の
ように,関数の動作を確認できるmain 関数も作成すること.
(出力例)
秒数を入力してください:100000
100000 秒= 1 日3 時間46 分40 秒
秒数を入力してください:3725
3725 秒= 0 日1 時間2 分5 秒
[3] 環境
[3.1] OS:linux 
[3.2] コンパイラ名とバージョン:gcc [
3.3] 言語:C言語
[4] 期限:12/2まで
[5] その他の制限:
43デフォルトの名無しさん:2011/11/30(水) 14:24:57.03
>>42
前スレで同じのみたな
44デフォルトの名無しさん:2011/11/30(水) 14:51:08.77
#include <stdio.h>
#include <stdlib.h>

int calctime(long sec, int *dp, int *hp, int *mp, int *sp)
{
*dp = *hp = *mp = *sp = 0; if(sec < 0) return 0;
*dp = sec / (60 * 60 * 24); sec %= 60 * 60 * 24;
*hp = sec / (60 * 60); sec %= 60 * 60;
*mp = sec / 60; *sp = sec % 60;
return 1;
}

int main(int ac, char **av)
{
char buf[4096];
long sec;
int d, h, m, s;
while(1){
printf("sec = "); fgets(buf, sizeof(buf), stdin); if(buf[0] == '\n') break;
sscanf(buf, "%ld", &sec);
if(!calctime(sec, &d, &h, &m, &s)) fprintf(stderr, "error %ld\n", sec);
else printf("%ld sec = %d days %d hours %d minutes %d seconds\n", sec, d, h, m, s);
}
return 0;
}
45デフォルトの名無しさん:2011/11/30(水) 15:37:02.24
>>28
あんまりちゃんと動作の確認をしていない、テストは任せるので問題があればレスしてくれ
ttp://codepad.org/hXYphxIz

指定されたソースコードは何か動作が怪しそうなので使っていない
しかし関数IFは合わせて有るので指定されたソースに問題が無ければ差し替えても動作するはずだ
ソースの『ここから』〜『ここまで』の間を指定ソースと差し替えてくれ
46デフォルトの名無しさん:2011/11/30(水) 15:43:07.60
多倍長整数演算までやってるのか
すげーな
47デフォルトの名無しさん:2011/11/30(水) 16:02:08.41
>>46
やってないよ、それも含んでるんだっけ?
だったらパスするよ
48デフォルトの名無しさん:2011/11/30(水) 16:04:58.23
>>34
コテつけてくれ。
49デフォルトの名無しさん:2011/11/30(水) 16:10:06.50
>>47
どんなに長い文字列(数字)も受け付けろと書いてあった
50デフォルトの名無しさん:2011/11/30(水) 16:30:47.38
>>49
ホントだ
『またどのような整数が出現しても』って書いてるな
あんな怪しげなソースを付けてる割にはハードルが高いな
多倍長整数の四則演算か....面倒だな....取りあえずパスしとくわ
51デフォルトの名無しさん:2011/11/30(水) 16:49:13.03
>>49
前スレでそれは考えなくていいといってたよ
52デフォルトの名無しさん:2011/11/30(水) 20:01:24.80
>>45
ありがとうございます。
何か問題があればレスさせていただきます。
53デフォルトの名無しさん:2011/11/30(水) 21:21:41.05
54デフォルトの名無しさん:2011/11/30(水) 22:26:07.66
[1] 授業単元: システムプログラム
[2] 問題文(含コード&リンク):
プロセス間通信のプログラミングです。
ttp://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/252.txt
すまない、ブラウザのエンコードがUTF-8じゃないと多分化ける。
子プロセスから親プロセスに文字列を送るプログラムはかけたんだけど、
ファイル内容を子プロセスから親プロセスに送ると何も表示されなくなってしまう。
自分でやってみたがここ数時間答えが出せない。
誰かお願いします

[3] 環境
 [3.1] OS:mac10.7.2 (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン:gcc4.2.1 (gcc 3.4 VC 6.0等)
 [3.3] 言語:C (C/C++/どちらでも可 のいずれか)
[4] 期限:2011/12/1/14:30 ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限:なし (どこまで習っているか、標準ライブラリは使ってはいけない等々)
55デフォルトの名無しさん:2011/12/01(木) 00:54:04.24
>>54
子から親に複数回文字列を送っても大丈夫かどうかの確認をしてみたら、ぐらいしかいえない。コードがないと。
56 ◆QZaw55cn4c :2011/12/01(木) 01:03:06.04
5756 ◆QZaw55cn4c :2011/12/01(木) 01:04:43.03
cygwin/windows XP/gcc-3 では動いている。
58デフォルトの名無しさん:2011/12/01(木) 01:19:29.17
問題解決しようとする気がないなw
59デフォルトの名無しさん:2011/12/01(木) 01:24:33.79
>>56
助かったありがとう、ちゃんと動いた。
どうやら自分はバッファの扱いがおかしかったみたい。
60 ◆QZaw55cn4c :2011/12/01(木) 01:50:38.60
>>59
詳細に検討することをお勧めします。
61デフォルトの名無しさん:2011/12/01(木) 02:23:04.18
1] 授業単元:バイナリデータの扱い方
[2] 問題文(含コード&リンク):
白黒のbmp画像を読みとり、白なら0、黒なら1として以下の例のような画像情報を載せたtxtファイルを作成する。
(txtファイルの1行目にはbmpの横と縦のピクセル数を書き込むこと)
<例>
元のbmp画像(direct.bmp):http://loda.jp/kng311tt/?id=74.bmp

/********direct.txtの中身********************
24 15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
******************************************/
[3] 環境
 [3.1] OS:windows7 32bit
 [3.2] コンパイラ名とバージョン: Borland 5.51
 [3.3] 言語: C言語
[4] 期限:2011年12月10日 14:00
[5] ASNIの範囲内でよろしくお願いします。
62デフォルトの名無しさん:2011/12/01(木) 04:06:55.36
ASNIってなんだ
63デフォルトの名無しさん:2011/12/01(木) 04:15:31.37
モロッコにある小さな街
64デフォルトの名無しさん:2011/12/01(木) 04:34:45.20
>>61
そのファイル、なんか珍しい形式っぽいのかな。
エラー処理も何もないけど。
http://codepad.org/1F5vD4AE
65デフォルトの名無しさん:2011/12/01(木) 06:50:42.66
>>61
作って全然仕様にあってないけどupする
#include <stdio.h>
#include <stdlib.h>
typedef unsigned char uchar;
int main()
{
FILE *fp = fopen("kng311tt.bmp","rb");
FILE *fw = fopen("direct.txt","w");
uchar BhInfo[54];
uchar *BInfo = NULL;
int i,j;
fread(BhInfo,sizeof(char),51,fp);
fprintf(fw,"%d,%d\n",BhInfo[18],BhInfo[22]);
rewind(fp);
fseek(fp,54,SEEK_SET);
BInfo = malloc(sizeof(uchar)*(BhInfo[18]));
while(!feof(fp)){
fread(BInfo,sizeof(char),BhInfo[18],fp);
for(i = 0; i< (BhInfo[18]);i++){
if(BInfo[i] == 0x00)
fprintf(fw,"1 ");
else if(BInfo[i] == 0xff)
fprintf(fw,"0 ");
}
fputc('\n',fw);
}
free(BInfo);
fclose(fp);
fclose(fw);
return 0;
}
66デフォルトの名無しさん:2011/12/01(木) 08:39:26.82
>>39
変換後の方です。
(e3t55sf45d → e t sf d
となっているのを
e3t55sf45d → e t sf d
となるように改良する。)
67デフォルトの名無しさん:2011/12/01(木) 08:43:27.36
>>66
ミスってるけど、上はtとs、fとdの間は
スペース二つです。
68デフォルトの名無しさん:2011/12/01(木) 08:49:48.52
サンクスかみーゆ
69デフォルトの名無しさん:2011/12/01(木) 10:12:25.73
>>64
ありがとうございます!たぶん、作成者側のオリジナルだと思います^^

以前ここで作っていただいたtxt→bmpに変換するプログラムより
すごくシンプルですね。
白黒のみでもtxt→bmpに変換するのは大変なのでしょうか?
70デフォルトの名無しさん:2011/12/01(木) 13:48:23.39
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
.cファイルを読み込んで、定義されている変数や配列を一覧にして表示する(できれば何型で定義されているかも)プログラムを作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: visual studio 2010
 [3.3] 言語: C言語
[4] 期限:無期限
[5] その他の制限:できるならやってみろって感じで出されたので制限はないです
71デフォルトの名無しさん:2011/12/01(木) 14:33:31.55
>>70
コンパイルの段階で変数名等は失われるので無理。
72デフォルトの名無しさん:2011/12/01(木) 14:34:45.77
>>71

>.cファイルを読み込んで
73デフォルトの名無しさん:2011/12/01(木) 14:37:02.92
>>72
見落としてたよ orz
74デフォルトの名無しさん:2011/12/01(木) 14:47:18.67
車輪の再発明そのものじゃまいか
75デフォルトの名無しさん:2011/12/01(木) 15:02:03.93
>>70
この本読めば作れるようになるかもしれない
ttp://www.amazon.co.jp/dp/4797337958
76デフォルトの名無しさん:2011/12/01(木) 15:04:13.90
機械的構文解析:Cの独り勝ちの世界じゃん
Cプログラマは避けて通れる世界じゃないかと
77デフォルトの名無しさん:2011/12/01(木) 15:10:26.94
grepで十分じゃね?
78デフォルトの名無しさん:2011/12/01(木) 15:26:26.78
>>70
>定義されている変数や配列
structは?
79デフォルトの名無しさん:2011/12/01(木) 15:34:08.68
typedef とか面倒な希ガス
あと、
#define VARIABLE(type, name) (type) (name)
みたいな変なマクロを使って変数宣言してるとか
80デフォルトの名無しさん:2011/12/01(木) 15:46:08.83
>>79
プリプロセスしてから解析すればよくね?
81デフォルトの名無しさん:2011/12/01(木) 15:53:23.00
http://ja.wikipedia.org/wiki/LL%E6%B3%95

C言語はLL(1)だっけ
面倒な問題を出してくれたもんだ〜
8270:2011/12/01(木) 15:59:06.55
>>78
構造体もはいってますね、すみません

>>79
多分そこまでは求めてられないので
int a;みたいな基本的な宣言だけで大丈夫だと思います



口頭で言われたもので、曖昧ですみません…
83デフォルトの名無しさん:2011/12/01(木) 16:10:25.78
>>70
その手の問題は
今までの授業、課題をちゃんとこなしてきた→できる範囲で回答すればおk
今までの授業、課題を人に頼ってきた→詰む時
だよ。最後の審判的な。

丸くおさめたいなら、何も提出せずに、難しいので出来上がらなかったということを口頭で言って終わらせる。
84デフォルトの名無しさん:2011/12/01(木) 16:31:28.72
sizeof()の引数に型名が出てきたり。かなり厄介な言語だよ。
85デフォルトの名無しさん:2011/12/01(木) 16:36:24.01
sizeofは型を渡すとき以外は括弧いらないじゃん
86デフォルトの名無しさん:2011/12/01(木) 17:07:58.27
C言語初心者なのですが、

「2つの 3成分ベクトル a, b の外積 c を求める関数 void acrossb(double a[], double b[], double c[]) を作成せよ。
この関数を用いて次の二つのベクトル va=(1.0, 2.0, 1.0) , vb=(-2.0, 0.5, 1.0) の外積を計算するプログラムを作成せよ。」


どなたか、上の問題がわかる方いらっしゃいましたら、教えて頂きたいです。宜しくお願いします。
87デフォルトの名無しさん:2011/12/01(木) 17:10:47.58
>>86
わかるがお前の態度が気に入らない
つーか>>1
88デフォルトの名無しさん:2011/12/01(木) 17:20:46.05
>>86の者です。失礼致しました。

[1] 授業単元: C言語
[2] 問題文(含コード&リンク):2つの 3成分ベクトル a, b の外積 c を求める関数 void acrossb(double a[], double b[], double c[]) を作成せよ。
この関数を用いて次の二つのベクトル va=(1.0, 2.0, 1.0) , vb=(-2.0, 0.5, 1.0) の外積を計算するプログラムを作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C言語
[4] 期限:12月2日まで
[5] その他の制限: なし

です。すみませんお願いします
89デフォルトの名無しさん:2011/12/01(木) 17:37:58.39
a=(a1,a2,a3)b=(b1,b2,b3)としたとき、 aとbの外積は(a2b3-a3b2, a3b1-a1b3, a1b2-a2b1)であってんのかな。
90デフォルトの名無しさん:2011/12/01(木) 17:45:21.54
91デフォルトの名無しさん:2011/12/01(木) 17:47:01.35
>>89
外積はそうだとおもいます
92デフォルトの名無しさん:2011/12/01(木) 17:50:33.93
>>90
ご丁寧にありがとうございます
助かりました!
93デフォルトの名無しさん:2011/12/01(木) 17:51:03.20
[1] 授業単元:楽しいC(ポインタ配列)
[2]引数vc の指すint 型配列に対して,その(pos + 1)
番目からn 個の要素(vc[pos], vc[pos+1], …のn 個)
の値を0 にする関数
void reset_n(int *vc, int pos, int n)
を作成せよ 。
例.ary[] : 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
ary[n1] からn2 個の要素を0 にします。
n1 を入力してください:2
n2 を入力してください:4
指定された要素を0 にしました。


[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C言語
[4] 期限:12月2日まで
[5] 例えば配列ary[] が
{10, 11, 12, 13, 14, 15, 16, 17, 18, 19}
であるとき,
reset_n(ary, 2, 4);
として呼び出すと,配列ary[] は
{10, 11, 0, 0, 0, 0, 16, 17, 18, 19}
となる.
以下の実行例のように,関数の動作を確認できるmain
関数も作成すること.ただし,プログラムは以下の要件
を満たすこととする.
? main 関数内でint 型配列を適当な値で初期化・宣
言して用いてよい.
? 関数reset_n の中では,添字演算子[] は使用しな
いこと
94デフォルトの名無しさん:2011/12/01(木) 18:04:34.22
単元が楽しいCなのに、問題投げるのは楽しんでないのがなんだかな
単元の名前替えるように教官に言っとけ
95デフォルトの名無しさん:2011/12/01(木) 18:07:04.03
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):http://i.imgur.com/hnQll.jpg
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 12/6 10:00
[5] その他の制限:入門なのでそれほど複雑なものは習ってない・・・かな

お願いします。
96 【だん吉】 :2011/12/01(木) 18:17:51.26
>>93
#include <stdio.h>

void reset_n(int *vc, int pos, int n) {
int i;
for (i = 0; i < n; ++i) *(vc + pos + i) = 0;
}
void print(const int *a, int n) {
int i;
for (i = 0; i < n; ++i) printf("%d ", a[i]);
putchar('\n');
}
int main(void) {
int a[] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
int n = sizeof a / sizeof *a;
int n1, n2;
print(a, 10);
puts("ary[n1] からn2 個の要素を0 にします。");
printf("n1 を入力してください:");
scanf("%d", &n1);
printf("n2 を入力してください:");
scanf("%d", &n2);
if (n1 < 0 || n < n1 + n2) {
puts("範囲オーバー");
} else {
reset_n(a, n1, n2);
puts("指定された要素を0 にしました。");
print(a, 10);
}
return 0;
}
97864:2011/12/01(木) 18:37:27.33
[1] 授業単元:リスト構造
[2] 問題文(含コード&リンク):
http://codepad.org/kRWaQPuY
例えば 学籍番号として 181 など 存在しない学生の番号を入力して実行すると、
エラーを生じてプログラムが停止してしまうなど、このソース コードは不完全である。
そこで存在しない学生の番号を入力した場合には、
「その番号の学生は、いません。」のエラーメッセージを表示するように、プログラムを改良せよ。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:VC2008
 [3.3] 言語:C
[4] 期限:明日
[5] その他の制限:
98デフォルトの名無しさん:2011/12/01(木) 18:57:56.19
>>97

884:デフォルトの名無しさん:2011/11/28(月) 22:51:02.28
>>882
Line94 pointer_student = pointer_student->pointerNext; の次に以下を追加

if( ! pointer_student ) { printf( "その番号の学生は居ない\n" ); return 0; }
99デフォルトの名無しさん:2011/12/01(木) 19:04:59.87
なんか双方向リストに進化してるな
100864:2011/12/01(木) 19:57:52.71
>>98

双方向リストではありません
101デフォルトの名無しさん:2011/12/01(木) 20:36:09.10
102デフォルトの名無しさん:2011/12/01(木) 20:54:02.77
103デフォルトの名無しさん:2011/12/01(木) 21:55:10.15
>>100
処理内容が検索から削除に変化しただけで対応方法は同じだ
再出題したってことは >>98 の意味を全く理解してないって事なんだろうな、さすがにちょっと酷いと思う
104デフォルトの名無しさん:2011/12/01(木) 22:27:18.07
[1] 授業単元:アルゴリズムデータ構造
[2] 問題文(含コード&リンク):
http://f.mjmj.be/disp/dBGyzRvNwj/
http://f.mjmj.be/disp/nOtMDkalj0/
上記のアルゴリズムを使用し、最短経路を求めよ。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:VisualStudio2010
 [3.3] 言語:C言語
[4] 期限: 2日のAM9時まで
[5] その他の制限:2次元配列を使用でお願いします。

画像見づらかったらすみません。長いですがよろしくお願いします。
105デフォルトの名無しさん:2011/12/02(金) 00:58:47.88
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): http://ideone.com/Z4ZMs
              上記のコードを修正せよ
             ※ポイント
             @char stringをmallocでエリアを動的確保(初期化もする)
             Asnprintfをforで回して連結
[3] 環境
 [3.1] OS:指定なし
 [3.2] コンパイラ名とバージョン:指定なし
 [3.3] 言語:C
[4] 期限: 2011/12/3
[5] その他の制限:特になし

よろしくお願いします
106デフォルトの名無しさん:2011/12/02(金) 01:02:19.10
[1] 授業単元:C言語による画像処理の基礎
[2] 問題文(含コード&リンク):
256階調(8bit)のpgm形式の画像を256階調(8bit)のbmp形式の画像へ、
256階調(8bit)のbmp形式の画像を256階調(8bit)のpgm形式の画像へ
それぞれ変換するプログラムを作成せよ。

[3] 環境
 [3.1] OS:windows7
 [3.2] コンパイラ名とバージョン: Borland
 [3.3] 言語: C言語
[4] 期限:2011年12月9日 17:00
107デフォルトの名無しさん:2011/12/02(金) 01:43:03.43
108105:2011/12/02(金) 01:46:28.20
>>107

ありがとうございます!
109デフォルトの名無しさん:2011/12/02(金) 02:08:05.30
110デフォルトの名無しさん:2011/12/02(金) 02:41:51.43
>>106
bmpの指定はそれだけ?
>>61みたいに決めうちでもいいのかな。汎用的にってなると面倒なんでちょっとやる気が…
111 ◆/BwcIAUGUw :2011/12/02(金) 03:07:22.77
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):テキストファイルを読み込み1次元の離散コサイン変換を行って、その結果を新たなテキストファイルに書き込むプログラムを作れ。
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 4.3.2
 [3.3] 言語: C言語
[4] 期限: 12月3日 18時
[5] その他の制限: 例 10,15,20,80,120,160,210,10,20,100...と続くテキストデータ3つ(data.txt data2.txt data3.txt)を(それぞれ内容は違う)読み込む。
それぞれに1次元の離散コサイン変換を行う。
変換後の値を新たなテキストファイルに(data,data2,data3)改行(data,data2,data3)改行...といったような表示で書き込む。
112デフォルトの名無しさん:2011/12/02(金) 06:07:11.57
113デフォルトの名無しさん:2011/12/02(金) 08:28:36.81
それ2次元じゃないか?
問題文とも全然合ってないなw
114デフォルトの名無しさん:2011/12/02(金) 08:45:32.05
>>109
ありがとうございます
115デフォルトの名無しさん:2011/12/02(金) 11:02:25.36
116デフォルトの名無しさん:2011/12/02(金) 11:03:01.37
>>110
それだけなんですけど、面倒ならある程度でお願いします。
117デフォルトの名無しさん:2011/12/02(金) 16:39:46.70
>>111
問題文がいろいろ足りない気がするし離散コサイン変換の名前しか知らんけど
wikipediaに載ってた公式見て適当に組んでみた。
検算もどうやればいいかよくわからんから適当に直して
include <math.h>
#include <string.h>
#include <stdio.h>
#define MAXLINE 1024
void dct(double *i,double *o,int e){int k,n;for (k=0;k<e;k++){for(n=0;n<e;n++)
{o[k]=i[n]*cos(M_PI/(double)e*(0.5+(double)n)*(double)k );}}}int getfield(char
*infile, double *out){FILE *fp=fopen(infile,"r");char *c=",",s[MAXLINE],*tmp;
int i;fgets(s,MAXLINE,fp);fclose(fp);out[0]=atof(strtok(s,c));for(i=1;NULL!=
(tmp=strtok(NULL,c));i++){out[i]=atof(tmp);}return i++;}int main(){double *a[3]
,*b[3];int d[3]={0},i=0;char *filename[]={"data.txt","data2.txt","data3.txt"};
FILE*data,*outp;for(i=0;i<3;i++){a[i]=malloc(MAXLINE*sizeof(double));d[i]=
getfield(filename[i],a[i]);b[i]=malloc(d[i]*sizeof(double));dct(a[i],b[i],d[i]);
free(a[i]);}outp=fopen("outfile.txt","w");for(i=0;i<d[0];i++){fprintf(outp,"(%f"
",%f,%f)\n",b[0][i],b[1][i],b[2][i]);}fclose(outp);for(i=0;i<3;i++)free(b[i]);}
118デフォルトの名無しさん:2011/12/02(金) 17:52:20.01
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4911
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2011年12月4日

よろしくお願いします。
119 ◆/BwcIAUGUw :2011/12/02(金) 18:00:43.52
>>115
ありがとうございます。
そのサイトの手順通りに、解凍→移動→makeしたんですが、makeするとエラーが出て先に進めませんでした。
120 ◆/BwcIAUGUw :2011/12/02(金) 18:02:01.97
>>117
ありがとうございます。
どうやって直せば良いかわかりません、申し訳ありません。
でも、参考にさせていただきます。
121デフォルトの名無しさん:2011/12/02(金) 18:27:07.90
[1] 授業単元:アニメーション・イベント処理
[2] 問題文(含コード&リンク):http://codepad.org/71KFD3ih
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
 [3.3] 言語: C言語
[4] 期限: 2011年12月4日まで
[5] その他の制限: OpenGLを使用

4枚の羽根が作れず、その上視点を変えると羽と噴射口の位置がずれます。
どのように直せばよいのか分からないため、修正をお願い致します。
また、リンク先の(3)(5)も出来ておりません。
122デフォルトの名無しさん:2011/12/02(金) 18:27:22.88
1] 授業単元:
[2] 問題文(含コード&リンク):

(1)
#include <stdio.h>
#define NUMBER 5
int tensu[NUMBER];
int top(void);
int main(void)
{
extern int tensu[];
int i;
printf("%d人の点数を入力してください。\n", NUMBER);
for (i = 0; i < NUMBER; I++) { printf("%d:",i + 1); scanf("%d", &tensu[i]); } printf("最高点=%d\n", top()); return (0);
}
int top(void)
{ extern int tensu[]; int i; int max = tensu[0]; for (i = 1; i < NUMBER; i++) if (tensu[i] > max) max = tensu[i]; return (max);
}
上のプログラムを参考にして、5人の点数の平均点を返す関数 double ave(void)を作成せよ。
その関数を用いて、読み込んだ5人の点数の平均値を出力するプログラムを作成せよ。
(2)
2つの 3成分ベクトル a, b の外積 c を求める関数 void acrossb(double a[], double b[], double c[]) を作成せよ。
この関数を用いて次の二つのベクトル va=(1.0, 2.0, 1.0) , vb=(-2.0, 0.5, 1.0) の外積を計算するプログラムを作成せよ。
[3] 環境 [3.1] OS: Windows [3.3] 言語: C++
[4] 期限: できれば今日中を希望しています。
お手数ですがよろしくお願いします。



123デフォルトの名無しさん:2011/12/02(金) 20:38:31.75
>>109の、節の始点が0になっているので1にしたいのと、
終点も同じように5になっているので6にしたいのですが、変更できるでしょうか。
初期値をいじってみたのですが上手くいきませんでした。
あと出力は通った経路順番に節番号とコストを出したいのですが、
書いて貰った逆なので、可能ならばお願いします
124デフォルトの名無しさん:2011/12/02(金) 20:59:43.69
125デフォルトの名無しさん:2011/12/02(金) 21:02:44.30
>>123
>>109じゃないけど、始点終点の表示だけなら、

68:printf("%d(%d)", x+1, v[x].label);
71:printf(" <- %d(%d)", x+1, v[x].label);
126デフォルトの名無しさん:2011/12/02(金) 23:03:52.94
>>124
ありがとうございます。
127デフォルトの名無しさん:2011/12/02(金) 23:15:48.50
128デフォルトの名無しさん:2011/12/02(金) 23:24:42.96
1] 授業単元:C言語
[2] 問題文(含コード&リンク):
1番:コマンドライン引数を用いて2つの10進数を入力し,
その2つの数を2進数表示したものについて,論理和,論理積,
排他的論理和,を表示するプログラムを作成せよ。
また,2進数で直接入力して計算できるようにせよ。

2番:1番で求めた論理和,論理積,排他的論理和について、
指定したビット目の値、連続する0の数および1の数をそれぞれ数えて
交互に表示するプログラムを作成せよ。

3番目:1番で求めた論理和,論理積,排他的論理和について、
4桁ずつ区切って16進数で表示するプログラムを作成せよ.

例:
論理和 : 000111101001001
1番目の区切り:0001 = 1
2番目の区切り:1110 = e
3番目の区切り:1001 = 9
4番目の区切り:001 = 1
[3] 環境
 [3.1] OS: Windows
 [3.2]bcc
 [3.3] 言語: C言語
[4] 期限: 来週の月曜まで
129デフォルトの名無しさん:2011/12/03(土) 00:10:27.81
>>128
扱う数値は short なのか?
130デフォルトの名無しさん:2011/12/03(土) 00:11:39.37
>>129
わからないです、とうかshortは習ったことないです^^;
131デフォルトの名無しさん:2011/12/03(土) 00:15:07.11
>>125,127
ありがとうです!
132デフォルトの名無しさん:2011/12/03(土) 00:15:42.38
>>128
この問題は原文のままですか?
2番の問題は読解できないです。
133デフォルトの名無しさん:2011/12/03(土) 00:23:03.56
>>132
ほぼ原文ですよ.
ほんとうは紙に実行例が書いてあるんですけど^^

例:
論理和 : 000111101001001
何ビット目を表示?>4
3ビット目 = 1

論理和の連続する0の数および1の数を交互に表示します
3
4
1
1
2
1
2
1
134デフォルトの名無しさん:2011/12/03(土) 00:23:53.56
>>133
間違えました

×3ビット目 = 1
○4ビット目 = 1
135デフォルトの名無しさん:2011/12/03(土) 00:32:28.18
>>130
なら、例題は2バイトだけど回答は4バイトにするって理解すれば良いのかな
問2で連続する0の数と有るけど、小さい数字の場合は左に0が並ぶけどそれもカウントするのか?
それとも1が出現した後だけに着目するのか?
136135:2011/12/03(土) 00:34:10.16
>>133 を見る前に書いたので忘れてくれ
137デフォルトの名無しさん:2011/12/03(土) 00:48:48.78
>>128
最も重要な質問、itoa() と strtol() は使っても良いのか?
これらを作れって題意かも知れない
138デフォルトの名無しさん:2011/12/03(土) 00:52:18.51
>>137
いいと思います。
139デフォルトの名無しさん:2011/12/03(土) 01:10:55.51
140デフォルトの名無しさん:2011/12/03(土) 01:49:39.92
>>133
なんで後だししたの^^
141デフォルトの名無しさん:2011/12/03(土) 02:34:36.24
>>128
ttp://codepad.org/UV3kfRhM

3つも同じようなコードをアップするのは気が引けるから全部まとめた
dispHex() が問3に関する部分で dispOther() が問2に関する部分
適当に切り分けて提出してくれ
142デフォルトの名無しさん:2011/12/03(土) 03:30:02.72
[1] 授業単元:暇つぶし
[2] 問題文:
標準入力より4点 A(x1,y1), B(x2,y2), C(x3,y3), D(x4,y4)の座標が与えられる
座標の数値はいずれも -1000 以上 1000 以下の整数である
線分AB と 線分CD の交点を求め、その座標を小数点以下 20 桁まで表示せよ
線分が重なる場合 および 交点を持たない場合は 無し と表示せよ
但し端点のみが一致する場合はその座標を表示せよ
線分AB および 線分CD の長さは 0 より大きいものとする(A≠B C≠D)


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: (C/C++/どちらでも可)
[4] 期限: 無期限
[5] その他の制限: 外部ライブラリを使用せず単一のソースコードとして下さい
143デフォルトの名無しさん:2011/12/03(土) 03:49:13.58
>>118
>>141と同じく全部まとめました。
十進数と二進数はオプション -d と -b で使い分けます。
Usage 参照。
144デフォルトの名無しさん:2011/12/03(土) 03:49:58.90
145デフォルトの名無しさん:2011/12/03(土) 03:51:34.35
スレ汚しまくりごめんなさい。
>>143>>144>>128宛て
146デフォルトの名無しさん:2011/12/03(土) 03:57:05.11
[1] 授業単元:計算機アルゴリズムT
[2] 問題文(含コード&リンク):
設問1-1
プログラム例10.5.1において「s = sum(x,y); d=difference(x,y);」を、和と差の両方を計算する関数「sumdif(x, y, &s, &d);」に置き換えた後、同じ表示結果が得られるように関数「void sumdif(float x, float y, float *s, float *d)」を作成しなさい。
※return文で返せる戻り値は高々1個であるので、ポインタを使って計算結果を返すことが必要になる。
プログラム例10.5.1
ttp://www.dotup.org/uploda/www.dotup.org2336763.txt.html
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C
[4] 期限:[2011年12月7日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
            繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
            条件分岐if文、要素番号idx使用の書換、データの入れ替え
            条件分岐・論理演算子を用いたif文の条件、if文、else if文
            switch文、ポインタ変数・演算子*と&、関数・プロトタイプ宣言と関数定義
            引数と戻り値、関数の引数とポインタ、関数に配列を渡し、呼び出し側へ戻す方法
            関数から関数を呼び出す方法は習いました。
宜しくお願いします。
147 ◆QZaw55cn4c :2011/12/03(土) 04:28:45.24
148 ◆QZaw55cn4c :2011/12/03(土) 06:00:28.05
149デフォルトの名無しさん:2011/12/03(土) 06:04:49.11
>>142
ほとんどコピペ
http://ideone.com/0OJdm
150デフォルトの名無しさん:2011/12/03(土) 06:08:11.46
>>146
void sumdif(float x, float y, float *s, float *d)
{
*s = x + y;
*d = x - y;
}
151 ◆QZaw55cn4c :2011/12/03(土) 06:09:33.32
>>149
double は 20 桁も保障するのか?
152デフォルトの名無しさん:2011/12/03(土) 06:10:41.98
>>149
演算の精度を問う問題かと思ったが。
153デフォルトの名無しさん:2011/12/03(土) 09:57:56.54
>>141
>>143
>>144
ありがとうございます!
154デフォルトの名無しさん:2011/12/03(土) 10:04:58.26
>>149
計算精度が足りないのと

線分なので
A(2,1) B(3,1) C(1,2) D(1,3)
の時は交差しない
155デフォルトの名無しさん:2011/12/03(土) 10:21:08.12
>>141
すいません。
2進数で入力されても可能というところもコマンドライン引数でお願いします。

>>144
コンパイルしようとしたら以下のエラーが出ました
エラー E2313 prog1005.c 30: 定数式が必要(関数 ConvertBinaryToHexadecimal )
エラー E2313 prog1005.c 70: 定数式が必要(関数 main )
エラー E2313 prog1005.c 71: 定数式が必要(関数 main )
*** 3 errors in Compile ***
156デフォルトの名無しさん:2011/12/03(土) 10:33:35.41
>>155
const の値を#defineに替えれ
157デフォルトの名無しさん:2011/12/03(土) 10:56:39.98
いっぱいでたよ!
http://codepad.org/R1uz170a
エラー E2188 prog1005.c 13: 式の構文エラー(関数 ConvertDecimalToBinary )
エラー E2379 prog1005.c 13: ステートメントにセミコロン(;)がない(関数 ConvertDecimalToBinary )
エラー E2188 prog1005.c 16: 式の構文エラー(関数 ConvertDecimalToBinary )
警告 W8057 prog1005.c 17: パラメータ 'decimal' は一度も使用されない(関数 ConvertDecimalToBinary )
エラー E2290 prog1005.c 30: 配列境界 に ] がない(関数 ConvertBinaryToHexadecimal )
警告 W8019 prog1005.c 30: コードは効果を持たない(関数 ConvertBinaryToHexadecimal)
エラー E2379 prog1005.c 30: ステートメントにセミコロン(;)がない(関数 ConvertBinaryToHexadecimal )
エラー E2188 prog1005.c 31: 式の構文エラー(関数 ConvertBinaryToHexadecimal )
エラー E2379 prog1005.c 31: ステートメントにセミコロン(;)がない(関数 ConvertBinaryToHexadecimal )
エラー E2188 prog1005.c 39: 式の構文エラー(関数 ConvertBinaryToHexadecimal )
エラー E2188 prog1005.c 39: 式の構文エラー(関数 ConvertBinaryToHexadecimal )
警告 W8057 prog1005.c 40: パラメータ 'binary' は一度も使用されない(関数 ConvertBinaryToHexadecimal )
警告 W8057 prog1005.c 40: パラメータ 'hexadecimal' は一度も使用されない(関数 ConvertBinaryToHexadecimal )
158デフォルトの名無しさん:2011/12/03(土) 10:56:59.47
エラー E2290 prog1005.c 45: 配列 に ] がない(関数 DisplayBitInfo )
警告 W8019 prog1005.c 45: コードは効果を持たない(関数 DisplayBitInfo )
エラー E2379 prog1005.c 45: ステートメントにセミコロン(;)がない(関数 DisplayBitInfo )
エラー E2290 prog1005.c 70: 配列境界 に ] がない(関数 main )
警告 W8019 prog1005.c 70: コードは効果を持たない(関数 main )
エラー E2379 prog1005.c 70: ステートメントにセミコロン(;)がない(関数 main )
エラー E2140 prog1005.c 71: ここでは宣言はできない(関数 main )
エラー E2290 prog1005.c 71: 配列境界 に ] がない(関数 main )
エラー E2188 prog1005.c 71: 式の構文エラー(関数 main )
警告 W8019 prog1005.c 71: コードは効果を持たない(関数 main )
エラー E2379 prog1005.c 71: ステートメントにセミコロン(;)がない(関数 main )
エラー E2121 prog1005.c 89: 関数呼び出しに ) がない(関数 main )
エラー E2188 prog1005.c 89: 式の構文エラー(関数 main )
エラー E2451 prog1005.c 91: 未定義のシンボル binary(関数 main )
エラー E2451 prog1005.c 98: 未定義のシンボル hexadecimal(関数 main )
*** 21 errors in Compile ***
159デフォルトの名無しさん:2011/12/03(土) 10:57:36.81
160デフォルトの名無しさん:2011/12/03(土) 12:23:57.06
>>157-158
http://codepad.org/vr6pknwV
#define hoge foo
はコンパイル時に hoge を foo に置き換えるので、
#define hoge foo;
とした場合、hoge は foo; に置き換えられてしまいます。
161デフォルトの名無しさん:2011/12/03(土) 13:56:25.82
[1] 授業単元:C言語プログラミング
[2] 問題文
ポインタの利用方法として,配列を使わない文字列処理を習得する.課題3を配列を使わずに「メモリの動的確保」及び「ポインタ演算」により処理する.
課題3
配列の値を前後に移動させる際に押し出された要素(文字)は反対側に入るようにします.
例. ABCDE に 手続き(1)(=1つ前に詰める)を適用すると
  BCDEA となる.
文字型の配列に値を格納しなくてはなりませんが「配列の初期化」のテクニックを使って,プログラム中で行う(つまりキーボードから打ち込まない).また,配列のサイズ(つまり要素数)は5個とする. ( 例."ABCDE" の5文字を処理対象とする等)
条件
プログラム中で配列を用いてはいけません.配列の宣言の代わりに,必ずにある「メモリの動的割り当て」の手法を使って malloc関数で必要なメモリを確保する方法で実装すること.
変化したことが分かるようにprintf関数で確認できるようにすること
[3] 環境
 [3.3] 言語: C言語
[4] 期限: 12月4日 18時
お願いします
162デフォルトの名無しさん:2011/12/03(土) 14:54:27.56
163デフォルトの名無しさん:2011/12/03(土) 15:08:07.94
[1] 授業単元:C言語による基礎
[2] 問題文(含コード&リンク):
以下の実行例のように,文字列を入力すると,その前
後に"を付けた文字列を生成するプログラムを,ライブ
ラリ関数strcpy とstrcat を用いて作成せよ.ただし,
プログラムは以下の要件を満たすこととする.
? ユーザに入力させる文字列を格納する配列を
str1[],前後に"を付けた文字列のための配列を
str2[] とする.
? ユーザに入力させる文字列は30 字までとする.
? 配列str2[] は初期化せずに宣言し,ライブラリ関
数strcpy とstrcat を使って(添字演算子[] を
使わずに)前後に"を付けた文字列を生成すること.

[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:2011年12月5日 17:00
[5]実行例
 文字列を入力してください:Kousoku
 文字列の前後に"を付けました。
 str2:"Kousoku"
164デフォルトの名無しさん:2011/12/03(土) 15:38:12.62
165デフォルトの名無しさん:2011/12/03(土) 15:56:24.71
>>164
10行目
scanf("%30s", str1);
の方がいいかも

12,13,14行目が
strcpy(str2, "\"");
strcat(str2, str1);
strcat(str2, "\"");
では?
166デフォルトの名無しさん:2011/12/03(土) 16:10:32.67
[1] 授業単元:2分探索
[2] 問題文(含コード&リンク):
2分探索を呼び出すmain関数を作成し、実際の動作を確認せよ。
ただし各データの値は構造体配列の初期設定で設定するものとする。
また、プログラムは以下のように動作するものとする。
Please input a key: 8
Found! Key=8, Name=Hanada
Please input a key: 24
Found! Key=24, Name=Nishida
Please input a key: 6
Not Found!
Please input a key:



[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン: VC2008
 [3.3] 言語: C
[4] 期限:12/5
167デフォルトの名無しさん:2011/12/03(土) 16:11:00.08
>>166
[5]以下のコードを使用してください。
int bi_search(int target){
int hi, lo, mid;
lo=0; hi=N-1; //Nはデータ数
while(lo <= hi){
mid=(lo+hi)/2; //中央のデータのインデックス
if(target==St[mid].num)
return mid;
else if(target<St[mid].num)
hi=mid-1; //左半分を再検索
else
lo=mid+1; //右半分を再検索
}
return -1;
}
168デフォルトの名無しさん:2011/12/03(土) 16:19:45.17
>>165
> scanf("%30s", str1);
> の方がいいかも
なるほど。scanf で文字数指定できるの知らなかったです。

> 12,13,14行目が
> strcpy(str2, "\"");
> strcat(str2, str1);
> strcat(str2, "\"");
> では?
確かにそちらの方が自然ですね・・・
169デフォルトの名無しさん:2011/12/03(土) 16:35:40.43
>>155
なら >>144 と同様に第一引数をスイッチとする事になるな
ttp://codepad.org/x8xykKvQ
170デフォルトの名無しさん:2011/12/03(土) 17:03:49.61
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
double (*e)[4];
printf("*e\t%d\n", sizeof(*e));
なんと表示されるか答えよ。
// コンパイルして32と表示されたが理由がわからない。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC2010
 [3.3] 言語: C
[4] 期限: 特に無し
[5] その他の制限: 多重ポインタまで学習
171デフォルトの名無しさん:2011/12/03(土) 17:07:25.74
>>169>>160
>>128はこのように2つの10進数or2進数から計算できるようにしないといけないのですが
頂いたプログラムではできません。

D:\Prog>test 5 1
x = 0101
y = 0001
x & y = 0001
x | y = 0101
x ^ y = 0100

D:\Prog>test 0111 1001
x = 0111
y = 1001
x & y = 0001
x | y = 0001
x ^ y = 0001
172デフォルトの名無しさん:2011/12/03(土) 17:12:08.59
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
前日商品別に在庫を登録したファイル "zaiko.txt" と
当日商品別に入庫を記録したファイル "nyuko.txt" の2つのファイルを入力し、
新たな在庫ファイル "zaiko_new.txt" を出力するプログラムを作成せよ。
ファイルの各レコード(行)は次の形式であり、ひとつの商品に対してひとつのレコードとする。

商品コード 整数 4桁
数量 数字 4桁

なお、各ファイルは商品コードの昇順にソートされているものとする。
※実行例:http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/256.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:12/4(日)23:59:59
[5] その他の制限:
商品コードや種類の数等は実行例の限りでなく、
自由に変えても対応できるようにお願いします
在庫・入庫ファイルの名前自体はそのままでいいです。
173デフォルトの名無しさん:2011/12/03(土) 17:32:29.62
>>171
第一引数をスイッチにすると書いた
D:\prog>test d 5 1 と D:\prog>test b 0111 1001 を試してみてちょ

もし自動判定するとなると test 100 10 の時どっちか判らなくて困る
2進の時は必ず0から始めるとかのルールを決めれば自動判定できるけどね
174デフォルトの名無しさん:2011/12/03(土) 17:34:29.23
>>173
そうなんですか!
2進数の時は>>171のように最低0001からはじまりますんで
それで判定してもらえないでしょうか?
175174:2011/12/03(土) 17:35:05.02
×最低0001
○最低0000
176デフォルトの名無しさん:2011/12/03(土) 18:16:19.43
>>174
頭悪すぎっぞw
177デフォルトの名無しさん:2011/12/03(土) 18:19:29.41
>>174
>>171 の例題だと第2引数は 1001 になってるけど良いの?
アップするの面倒だから変更部分だけ( #else から #endif の間)を書くね

if( c > 2 ) {
if( *v[1] == '0' || *v[2] == '0' )
base = 2;
else
base = 10;
v1 = strtol( v[1], NULL, base );
v2 = strtol( v[2], NULL, base );
}
else {
printf( "[Usage] this_prog v1 v2\n" );
return 0;
}
178デフォルトの名無しさん:2011/12/03(土) 18:25:28.91
>>177
十進数の0が扱えなくない?
179デフォルトの名無しさん:2011/12/03(土) 18:27:58.94
180デフォルトの名無しさん:2011/12/03(土) 18:31:11.30
181174:2011/12/03(土) 18:45:20.63
>>177
ありがとうございます、いけました!

>>179
ありがとうございます!でもエラーが出ました
エラー E2313 p.c 30: 定数式が必要(関数 ConvertBinaryToHexadecimal )
エラー E2313 p.c 74: 定数式が必要(関数 main )
エラー E2313 p.c 75: 定数式が必要(関数 main )
*** 3 errors in Compile ***
182デフォルトの名無しさん:2011/12/03(土) 18:48:56.07
>>178
そらそうだな、判定条件を変えた方が良いだろう
v[1], v[2] に 01 以外が出現したら無条件に10進っていう条件を追加すれば良いのかな?
183デフォルトの名無しさん:2011/12/03(土) 18:48:59.43
184デフォルトの名無しさん:2011/12/03(土) 18:52:44.90
>>183
いけました!本当にありがとうございます!
185デフォルトの名無しさん:2011/12/03(土) 18:52:48.57
>>182
それだとやっぱり十進数の0が上手く扱えないと思う。
「長さ2以上かつ0で始まるものが二進数、それ以外が十進数」かな。
186デフォルトの名無しさん:2011/12/03(土) 18:58:54.36
>>185
だね、>>183 の判定で良いと思う
直すの面倒だから書かないけどw
187デフォルトの名無しさん:2011/12/03(土) 19:17:42.33
Xの出力値を教えてください。
答えは「81」になるのですがどのように解けばいいのでしょうか?
http://iup.2ch-library.com/i/i0494298-1322907406.jpg


188デフォルトの名無しさん:2011/12/03(土) 19:23:08.69
>>150
その関数はプログラム例10.5.1のどの部分に組み込めばいいのでしょうか?
189デフォルトの名無しさん:2011/12/03(土) 19:24:42.23
>>187
1 + 3 + 5 + … + 17
190日系アメリカ人 ◆japYJPNx6A :2011/12/03(土) 19:28:09.94
652 : ◆QZaw55cn4c :2011/12/03(土) 10:16:56.22
>>650
こっちでいろいろ煽ってくださいよー
http://hibari.2ch.net/test/read.cgi/tech/1322562648/
191デフォルトの名無しさん:2011/12/03(土) 19:32:47.51
>>137
itoa()なんて初めて聞いたけど、特定の環境だとそういうのがあるわけね。
192デフォルトの名無しさん:2011/12/03(土) 19:52:45.72
記述ですがお願いします。

整列手法や探索手法として様々な手法が提案されており、
いくつかの手法について学んできた。
1つの同じ問題を解く方法 として、
様々な手法が提案され実装されベンチマーク評価されている。
しかし、一般的なベンチマークでは評価できない項目がある。
この内容として具体的な例を考えなさい。
193デフォルトの名無しさん:2011/12/03(土) 20:03:23.90
計算時間と計算量の違い。
O(1)でも数時間、数日掛かることもある。
194デフォルトの名無しさん:2011/12/03(土) 20:07:54.03
>>191
iotaは由緒正しい歴史ある関数なんだよ。APL言語からの由来。
195デフォルトの名無しさん:2011/12/03(土) 20:15:21.21
>>193 なるほど有難うございます。

あともう一つあるるので良ければお願いします

クイックソートは、O(n log n) の高速な整列関数としてよく知られている。
高速なソートであるが、ソートのベンチマークに用いられる指標について説明しなさい。
196デフォルトの名無しさん:2011/12/03(土) 20:16:44.63
197デフォルトの名無しさん:2011/12/03(土) 20:19:22.81
>>193
それって具体的にはどんな状況? データの読み書きに凄く時間がかかるとか?
でもそれだってベンチマークはできるような。
198デフォルトの名無しさん:2011/12/03(土) 20:41:51.82
ソート対象の配列が主記憶を使い切るような大きさであった場合、
低速な補助記憶装置が使われるので、アルゴリズムのメモリ使用パターンが重要となる。
そのような状況では、主記憶上ですべてソートできることを前提としたアルゴリズムは効率が極端に悪化する可能性がある。

このような状況では、比較演算回数はあまり重要ではなくなり、ディスクとのメモリ領域のスワップ回数が重要となる。
したがって、なるべくスワップ回数を増やさないようにするために、配列全体を走査する回数や比較の局所性が比較回数よりも重要となる。
例えば、再帰型のクイックソートは主記憶上では性能が良いが、ソート対象の配列が主記憶に収まらない場合は
スワップが頻繁に発生して、性能が極端に低下する。したがって、そのような場合は比較回数が多くても他のアルゴリズムを使った方がよい。
http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%BC%E3%83%88
199デフォルトの名無しさん:2011/12/03(土) 20:47:20.36
前スレで>>17の宿題を依頼したものですが、どなたか完成した方はいらっしゃいますか?
200デフォルトの名無しさん:2011/12/03(土) 20:47:42.49
>>197
それはおいといて。ベンチマークからではオーダーは決定できない。(推定はできるが)
O(n*n)がO(n)やO(1)より速いことはある。
201デフォルトの名無しさん:2011/12/03(土) 21:47:53.95
202 ◆QZaw55cn4c :2011/12/03(土) 22:42:36.89
http://hibari.2ch.net/test/read.cgi/tech/1320365280/993
>C++のsetかmapを使えば楽で短く書けるのに
>何でそこまで自虐的なのか
http://ideone.com/c5LCj
203デフォルトの名無しさん:2011/12/03(土) 22:52:05.16
>>202
そうそうこんな感じ
お前なかなか可愛い所があるじゃないか
アッカーマン関数もこんな感じで再計算を防止すると馬鹿っ速くなるよ
204 ◆QZaw55cn4c :2011/12/03(土) 22:55:16.83
>>203
m(_ _;; m
205デフォルトの名無しさん:2011/12/03(土) 23:42:56.20
階乗計算(5000!など)は定数時間でできるらしい。
206デフォルトの名無しさん:2011/12/04(日) 00:22:07.18
207デフォルトの名無しさん:2011/12/04(日) 00:23:22.93
>>200
あ、もちろんそういう事実は了解していますが、
そもそも>この問題の真意が自分にはよくわからなかったのでw

これが>>192の問題への解答ということであれば、
あるソート関数の計算量のオーダーがわからない状況でベンチマークだけ
やってみる、というのがこの問題の前提になるような?
それだとむしろ実データから計算量のオーダーを逆推定する問題の困難さ、の方が
強調されてしまうような... そういうことを授業とかで問う必要はあるのかなあと。
計算量の次数だけでは必ずしも速度はわからない、という話ならわかるんですけど。
考え過ぎ?
208デフォルトの名無しさん:2011/12/04(日) 03:11:52.15
>>199
あるページのコピペのソース
http://codepad.org/ZiyXiSsP
209 ◆QZaw55cn4c :2011/12/04(日) 04:30:48.35
>>208
http://karetta.jp/book-node/cpuzzle-recursion/002797
ですねえ。有名どころだし。
210デフォルトの名無しさん:2011/12/04(日) 04:49:53.13
>>187
#include <stdio.h>

int main()
{
int x = 0;
int y = 1;
do {
x = x + y;
y = y + 2;
} while (y <= 15);
x = x + y;
printf("%d\n", x);

return 0;
}
211デフォルトの名無しさん:2011/12/04(日) 04:57:37.21
>>203
いたのか。
いつまでたっても終わらなかったコードを提示しろと散々
212デフォルトの名無しさん:2011/12/04(日) 05:27:59.61
P型記述子を用いて曲線をフーリエ変換するプログラムを作らなければならないのですが、
全く進まなくて困っています。
サンプルプログラムなどを見て理解していきたいのですがどなたか教えていただけないでしょうか
213デフォルトの名無しさん:2011/12/04(日) 06:19:24.11
なんのサンプルがほしいんだろ。
P型記述子を用いて曲線をフーリエ変換するサンプルプログラムじゃないんだよね
214デフォルトの名無しさん:2011/12/04(日) 06:28:49.17
分かりにくくなってしまってごめんなさい
P型記述子を用いて曲線をフーリエ変換するサンプルプログラムがほしいです。
215デフォルトの名無しさん:2011/12/04(日) 08:00:19.13
>>180
動作確認しました、ありがとうございます!
216デフォルトの名無しさん:2011/12/04(日) 08:29:19.22
それはサンプルじゃなくて直球の答えじゃないのかっていう突っ込みかと
217デフォルトの名無しさん:2011/12/04(日) 08:39:37.13
まぁぶっちゃけそのまま答えになっちゃうようなものですが・・・
どうしていいか全く分からないもので・・・
218デフォルトの名無しさん:2011/12/04(日) 09:04:31.42
>>193 197 198 200 207

本当に有り難うございました。

申し訳ないのですがもう1問お願いします。

[1] 授業単元: プログラム
[2] 問題文(含コード&リンク):クイックソートは、O(n log n) の高速な整列関数としてよく知られている。
               高速なソートであるが、ソートのベンチマークに用いられる指標について説明しなさい。
[4]月曜日
[5]基本的にC言語

宜しくお願いします。
219デフォルトの名無しさん:2011/12/04(日) 09:09:10.35
>>218
> [2] 問題文: 指標について説明しなさい。
> [5] 基本的にC言語

お前はその単元落ちた方がいいと思う。
220 ◆QZaw55cn4c :2011/12/04(日) 09:10:46.10
221デフォルトの名無しさん:2011/12/04(日) 09:46:39.97
>>220

このページの一般的なオーダのことでしょうか?
222 ◆QZaw55cn4c :2011/12/04(日) 10:10:26.33
>>221
「ソートのベンチマークに用いられる指標」なら、ランダウのΟ記法じゃないかと思ったのだが、違う?
223デフォルトの名無しさん:2011/12/04(日) 10:17:42.38
スレチ
224デフォルトの名無しさん:2011/12/04(日) 10:18:05.65
>>222

書き方しだいだけど少し違う らしいです
225デフォルトの名無しさん:2011/12/04(日) 11:04:45.62
>>218
お前受けてる授業が何なのか、わかってないだろ
226デフォルトの名無しさん:2011/12/04(日) 11:15:43.29
>>225

単元でしたか・・ 教科名だと思ってました。 単元はソートですね
227デフォルトの名無しさん:2011/12/04(日) 11:20:42.50
まぁぶっちゃけそのまま答えになっちゃうようなものですが・・・
どうしていいか全く分からないもので・・・
228デフォルトの名無しさん:2011/12/04(日) 11:33:36.59
授業受けてないんだな・・・しかも相談する友達もいないのか・・・
229デフォルトの名無しさん:2011/12/04(日) 11:37:43.66
そもそもあの問題C言語もC++も関係ないだろ
230デフォルトの名無しさん:2011/12/04(日) 11:40:20.15
>>208
>>17の3、4、5が満たされてないです
231 ◆/BwcIAUGUw :2011/12/04(日) 13:34:40.28
>>117
wikiを参考にされたということですが、DCT(タイプ1から4まである中)のどの公式を見たのでしょうか?
今更ですが教えていただけませんか?
232デフォルトの名無しさん:2011/12/04(日) 15:27:24.27
>>117
関数dct、o[k]って加算して出すんじゃないかな?
233 ◆/BwcIAUGUw :2011/12/04(日) 17:07:24.13
>>232
加算して出すとはどういうことなのでしょうか?
もう少しかみくだいて教えていただけませんか?
234デフォルトの名無しさん:2011/12/04(日) 18:31:48.63
Σだからn0〜N-1までを加算するってことだと
235デフォルトの名無しさん:2011/12/04(日) 19:43:51.22
>>233
 for(k=0;k<e;k++){
  for(n=0;n<e;n++){
   o[k]=i[n]*cos(M_PI/(double)e*(0.5+(double)n)*(double)k);
  }
 }

 for(k=0;k<e;k++){
  o[k]=0;
  for(n=0;n<e;n++){
   o[k]+=i[n]*cos(M_PI/(double)e*(0.5+(double)n)*(double)k);
  }
 }
236デフォルトの名無しさん:2011/12/04(日) 21:53:43.61
[1] 授業単元:C++
[2] 問題文(含コード&リンク):次の if 文を表す抽象構文木を構築して表示するプログラムを作成せよ
if (i < 0) {s = s - i;}
else {s = s + i;}
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C++
[4] 期限: 明日の明朝
[5] その他の制限:

クラス St_if の仕様は次の通りである.
? 継承関係
Statement の派生クラスである.
? メンバー
1. Expression* cond … 条件式
2. Statement* then … then 部の文
3. Statement* else … else 部の文
? メソッド
5?141. St if(Expression* cond, Statement* then, Statement* els)
条件式が cond, then 部の文が then, else 部の文が els
6 であるようなインスタンスを作るコンス
トラクタ.
2. ?St if()
デストラクタ. cond , then , else を delete する.
3. const Expression* condition() const … cond を読み出す.
4. const Statement* then part() const … then を読み出す.
5. const Statement* else part() const … else を読み出す.
6. void print(std::ostream& os, int indent=0) const … 表示
237デフォルトの名無しさん:2011/12/04(日) 21:59:25.76
>>236
誤字訂正します

・継承関係
  Statement の派生クラスである.
class Statement
{
public:
Statement() {} // コンストラク
virtual ~Statement() {} // デストラク
virtual void print(std::ostream& os, int indent=0) const = 0; //表示
private:
Statement(const Statement&); // コピーコンスタラクタは禁止
Statement& operator=(const Statement&); // 代入演算は禁止
};
・メンバー
 1. Expression* cond … 条件式
 2. Statement* then … then 部の文
 3. Statement* else … else 部の文
・メソッド
 1 St_if(Expression* cond, Statement* then, Statement* els)条件式が cond, then 部の文が then, else 部の文が elsであるようなインスタンスを作るコンストラクタ.
 2. 〜St_if() デストラクタ. cond , then , else を delete する.
 3. const Expression* condition() const … cond を読み出す.
 4. const Statement* then part() const … then を読み出す.
 5. const Statement* else part() const … else を読み出す.
 6. void print(std::ostream& os, int indent=0) const … 表示
238デフォルトの名無しさん:2011/12/04(日) 22:38:06.60
239デフォルトの名無しさん:2011/12/04(日) 23:16:06.57
>>238
ありがとうございます。
もしよければ ast.cpp(クラスの入った実装ファイル) ast.h(printが実装されたヘッダファイル) ***.cpp(mainのファイル)といった3つの形で
g++ -g ***.cpp ast.cppを使いコンパイルできるコードを書いていただければありがたいです。

240デフォルトの名無しさん:2011/12/05(月) 00:08:16.69
>>239
それくらい自分でできないなら学校辞めたほうがいいレベル
241デフォルトの名無しさん:2011/12/05(月) 00:11:50.90
プログラミングUの先生は意味分からんよね
242デフォルトの名無しさん:2011/12/05(月) 00:13:39.96
困ってるのはお互い様です
243デフォルトの名無しさん:2011/12/05(月) 00:14:18.22
私はテスト捨てますがね
244デフォルトの名無しさん:2011/12/05(月) 00:17:35.47
>>239
そんぐらい分けろよ
245デフォルトの名無しさん:2011/12/05(月) 00:21:30.58
[1] 授業単元:2分探索
[2] 問題文(含コード&リンク):
http://ideone.com/YJwRQ
データが昇順ではなく、降順に並んでいる場合の2分探索をプログラムを作成せよ
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:VC2008
 [3.3] 言語: C
[4] 期限:12/6
246デフォルトの名無しさん:2011/12/05(月) 00:22:00.97
>>139 >>143
ありがとうございます。
247デフォルトの名無しさん:2011/12/05(月) 00:23:32.09
これが反日マスコミの編集による矮小化
176 :七つの海の名無しさん:2011/11/17(木) 21:57:56.45 ID:gClQt5ed
【重要】 ブータン国王の演説の報道は、重要な部分がことごとく反日マスコミにカットされて報道されています

「世界史において、かくも傑出し、重要性を持つ機関である日本国、(その)国会の中で、」 →★全部カット

「ブータン国民は、常に、日本に、強い、愛着の心を持ち、何十年もの間、偉大な日本の成功を →★全部カット
心情的に分かち合ってきました。」

「日本は、当時外国の領地(植民地)であったアジアに、自信とその進むべき道への自覚をもたらし
以降、日本のあとに続いて世界経済の最前線に躍り出た数多くの(アジアの)国々に希望を与えてきました」 →★全部カット

「日本は、過去においても、現代においても、世界のリーダーであり続けます」 
「このグローバル化した世界において、日本は、技術と革新の力、勤勉さと責務、強固な伝統的な価値における模範
であり、これまで以上にリーダーにふさわしいのです。」 →★全部カット

「世界は、常に、日本のことを、大変な名誉と誇り、そして規律を重んじる国民、歴史に裏打ちされた誇り高き伝統を持つ国民、
不屈の精神、断固たる決意、そして秀でることに願望を持って、何事にも取り組む国民、知行合一、兄弟愛や友人、
ゆるぎない強さと気丈さを併せ持つ国民、であると認識してまいりました」 →★全部カット

「他の国であれば、国家を打ちのめし、国家を打ち砕き、無秩序、大混乱、そして悲嘆をもたらしたであろう事態に
日本国民の皆様は、最悪の状況下でさえ、静かな尊厳、自信、規律、ここの強さを以って、対処されました」 →★全部カット

他にもカットシーンがたくさんあるので、ブータン国王の演説 でyoutube検索してください
248デフォルトの名無しさん:2011/12/05(月) 00:54:27.11
スレチ

あほか?
249デフォルトの名無しさん:2011/12/05(月) 03:07:22.89
250デフォルトの名無しさん:2011/12/05(月) 04:49:03.10
文字入力して簡単な加工なり計算なりして表示しなさい
っていう学校の問題としても初期のところを丸投げしてるとその先完全に詰むぞ多分
離散コサイン変換がわからん〜とか言うところならしょうがないけど
251デフォルトの名無しさん:2011/12/05(月) 09:27:33.76

A(1,4) B(2,2) C(3,5) D(4,1) の4点があり線分ADと線分BCが点P(x,y)で交差している。

(1)四角形ABCDの面積を求めよ(2分)
(2)P(x,y)のx,yを求めよ(4分)
252デフォルトの名無しさん:2011/12/05(月) 10:39:36.90
>>150
有難う御座います

>>188の件は自己解決しました
253デフォルトの名無しさん:2011/12/05(月) 13:32:18.78
[1] 授業単元:ポインタと関数
[2] 問題文(含コード&リンク):
数(整数)へのポインタsc を引数として,点数を
0 以上100 以下に修正する関数limit_sc(int *sc) を
作成せよ.
実行例.
・点数を入力してください:110
点数を修正しました。
点数:100
・例2,点数を入力してください:85
点数を修正しませんでした。
点数:85
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:12/6
[5]・負の点数を0 点に,100 を超える点数を100 点に修
正するものとする
 ・関数の返却値はint 型とし,点数を修正した場合
  には1,修正しなかった場合は0 を返す関数とすること.

以下の実行例のように,関数の動作を確認できるmain
関数も作成すること.
254デフォルトの名無しさん:2011/12/05(月) 13:34:47.75
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
連立方程式、ax+by=c,dx+ey=fの係数a,b,c,d,e,fを2×3の2次元配列にキーボードから入力し、
この連立方程式を解くプログラムを作成せよ。(ただし、a〜fは0ではないと仮定してよい)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C言語
[4] 期限: 12月5日19時迄
[5] その他の制限:期限まで短いですが宜しくお願いします。
255デフォルトの名無しさん:2011/12/05(月) 13:37:51.20
>>253
「以下の実行例」ってやつが書いてないからmainは何とかしろ

int limit_sc(int *sc)
{
if (*sc > 100) {*sc = 100;return 1}
if (*sc < 0) {*sc = 0;return 1}
return 0
}
256255:2011/12/05(月) 13:39:35.39
セミコロン忘れたけどまあいいか
257デフォルトの名無しさん:2011/12/05(月) 13:45:28.09
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
xy平面上の2点の座標を2×2の2次元配列にキーボードから入力し、これら2 点間の距離を計算して画面表示するプログラムを作成しなさい。ただし、2点の座標をそれぞれ (x_1, y_1),(x_2, y_2) とするとき、これらの間の距離は{(x_2-x_1)^2+(y_2-y_1)^2}^1/2で求められる。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C言語
[4] 期限:12月5日19時迄
[5] その他の制限:先程の者ですが、こちらも宜しくお願いします。
258デフォルトの名無しさん:2011/12/05(月) 13:49:40.53
[1] 授業単元:プログラム
[2] 問題文:ローマ数字をアラビア数字に変換するプログラム
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2012年12月5日24:00まで
[5] その他の制限: 使用出来るライブラリはstdioとstdlib
259デフォルトの名無しさん:2011/12/05(月) 15:26:01.70
260デフォルトの名無しさん:2011/12/05(月) 15:42:19.66
>>258
ありがとうございまぷ。
261デフォルトの名無しさん:2011/12/05(月) 15:43:50.07
ミスりました
>>259 ありがとうございます。
262デフォルトの名無しさん:2011/12/05(月) 16:05:49.08
263デフォルトの名無しさん:2011/12/05(月) 16:32:54.14
264デフォルトの名無しさん:2011/12/05(月) 16:34:11.56
>>262
ありがとうございます。
自分のものと比べつつ後学に使わせてもらいます。

265デフォルトの名無しさん:2011/12/05(月) 16:35:41.28
>>263
ありがとうございます。
266デフォルトの名無しさん:2011/12/05(月) 17:03:44.20
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
キーボードから10個の整数を整数型配列に入力し、1番大きな数、2番目に大きな数、3番目に大きな数…10番目に大きな数の順に画面表示するプログラムを作成しなさい。
(ただし、同じ数が入力されても対処できるようにすること)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:12月5日24:00
[5] その他の制限:宜しくお願い致します
 
267デフォルトの名無しさん:2011/12/05(月) 17:29:50.64
>>263
コンパイルで弾かれるのですが、もう一度確認してもらってよろしいでしょうか
あと、gcc 2.95でした。すいません。
268デフォルトの名無しさん:2011/12/05(月) 17:34:38.33
>>267
エラーメッセージも貼れないの?
269デフォルトの名無しさん:2011/12/05(月) 17:38:34.39
270デフォルトの名無しさん:2011/12/05(月) 18:15:46.96
>>259さんのroman_to_int関数の解説を、どなたか頂けませんか。
271デフォルトの名無しさん:2011/12/05(月) 18:29:04.24
>270

名前の通りだが?
読めない?
272デフォルトの名無しさん:2011/12/05(月) 18:42:58.71
>>267
色々と間違えました。
>>257のエラーで、エラーメッセージは、

/tmp/ccTVCSf2.o: In function `distance':
9-15.c:(.text+0x7b): undefined reference to `sqrt'
collect2: ld はステータス 1 で終了しました

です。
 
273デフォルトの名無しさん:2011/12/05(月) 18:45:09.90
…どなたかって本人でもいいのかな。

基本的には対応する数字(Xなら10)を加算して、
次の文字が今の文字よりも大きいとき(IVとか)はIを減算してる
次の文字が\0の場合は0が返ってくるので問題なし
18行目の;;はただのtypo
274デフォルトの名無しさん:2011/12/05(月) 18:46:29.82
>>273
ありがとうございます!!
理解できました。
275255:2011/12/05(月) 18:47:12.98
>>272
sqrtのリンクに失敗してんだよ
#include <math.h>
って行がソースにあったらコマンドラインの最後に
-lm
つけれ
276デフォルトの名無しさん:2011/12/05(月) 18:47:53.01
あと、get_roman_valuesって名前はどうかと思いつつ、めんどくさくてそのままにした。
roman_to_intと、roman_string_to_intあたりがいいのかも
277デフォルトの名無しさん:2011/12/05(月) 18:54:26.45
-lmって大抵の人が一回はまるよね。
278デフォルトの名無しさん:2011/12/05(月) 18:55:04.09
あれ、俺ずっとageてたごめん
279デフォルトの名無しさん:2011/12/05(月) 18:59:41.01
>>255
なるほど、できました。
ありがとうございます。
280デフォルトの名無しさん:2011/12/05(月) 21:59:53.34
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://www1.axfc.net/uploader/Sc/so/298224
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2011年12月06日18:00まで
[5] その他の制限:あまり高度な記述をしないで作成していただけると有難いです
281デフォルトの名無しさん:2011/12/05(月) 23:22:01.47
>>277
そういえばMac OS Xだとlibc相当部分にlibm相当もリンクされているのではまらないw
これはいいことなのか悪いことなのか
282デフォルトの名無しさん:2011/12/05(月) 23:22:23.34
[1]C言語
[2]xy平面上の2点の座標を2x2の2次元配列にキーボードから入力し、これら2点間の距離を計算して画面表示するプログラム
※√(x2-x1)^2+(y2-y1)^2で求められる。
[3]OS:win7
コンパイラ:?
言語:C
[4]12/6 0:00
283282:2011/12/05(月) 23:23:45.60
自己解決しました
すいませんでした
284デフォルトの名無しさん:2011/12/05(月) 23:24:07.86
285デフォルトの名無しさん:2011/12/05(月) 23:30:53.44
286デフォルトの名無しさん:2011/12/05(月) 23:38:20.38
287デフォルトの名無しさん:2011/12/06(火) 02:51:09.50
なんでBMI大人気なのw
288デフォルトの名無しさん:2011/12/06(火) 03:35:35.06
>>287
まぁ、入門用の問題としていいからじゃないの?
289デフォルトの名無しさん:2011/12/06(火) 06:31:03.70
[1] 授業単元:ポインタと関数
[2] 問題文(含コード&リンク):
数(整数)へのポインタsc を引数として,点数を
0 以上100 以下に修正する関数limit_sc(int *sc) を作成せよ.
[3.1] OS:linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:12/6
[5]・負の点数を0 点に,100 を超える点数を100 点に修
正するものとする
・関数の返却値はint 型とし,点数を修正した場合
には1,修正しなかった場合は0 を返す関数とすること.

以下の実行例のように,関数の動作を確認できるmain
関数も作成すること
実行例
・点数を入力してください:110
点数を修正しました。
点数:100
・例2,点数を入力してください:85
点数を修正しませんでした。
点数:85.
290デフォルトの名無しさん:2011/12/06(火) 07:34:31.30
>>289
#include <stdio.h>

int limit_sc(int *sc)
{
if(*sc > 100){
*sc = 100;
return 1;
}else if(*sc < 0){
*sc = 0;
return 1;
}else{
return 0;
}
}
int main()
{
int n;
printf("点数を入力してください:");
scanf("%d",&n);
if(limit_sc(&n)){
puts("点数を修正しました。");
}else{
puts("点数を修正しませんでした。");
}
printf("点数:%d\n",n);
return 0;
}
291デフォルトの名無しさん:2011/12/06(火) 08:10:53.55
>>284-286
ありがとうございます
292デフォルトの名無しさん:2011/12/06(火) 12:00:29.44
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):多重配列を降順ソートする
[3] 環境
 [3.1] windows 7
 [3.3] C言語
[4] 期限: 12/7 17時
[5] 特になし

1列目をソートする方法は分かったのですが、2列目以降を基準としてソートする方法がわかりません
ソート前   ソート後
  1 3 3   5 2 8
  5 2 8   1 3 3
293255:2011/12/06(火) 12:05:17.70
>>292
どうやってソートした?
294デフォルトの名無しさん:2011/12/06(火) 12:05:19.64
>>292
3列目でソート
2列目でソート
1列目でソート
295292:2011/12/06(火) 12:22:57.74
今のプログラムはこんな感じです

int aaa(const void *a, const void *b);
int i;
int *j;

typedef struct {
double abc;
double def;
double ghi;
} ponta;

int main(void){
ponta datee[10]={
{ 8, 4, 3 },
{ 6., 1, 7 },
{ 2, 2, 1 },
{ 5, 9, 6 },
};

qsort(datee, 3, sizeof(double), aaa);

for (i=0; i<=3; i++){
printf("%.1lf %.1lf %.1lf\n",datee[i]);}

return 0;}

int aaa(const void *a, const void *b){
if (*(double*)a<*(double*)b) return -1;
else if (*(double*)a == *(double*)b) return 0;
else return 1;}
296292:2011/12/06(火) 12:25:03.62
色々いじってたらなんかまたおかしくなってますね…1列目でソートしたプログラムを誤って消してしまったようです
297デフォルトの名無しさん:2011/12/06(火) 12:58:37.81
298デフォルトの名無しさん:2011/12/06(火) 12:59:04.81
多重配列じゃなくて構造体配列じゃね。
それならaaaを工夫すればいいよ
299デフォルトの名無しさん:2011/12/06(火) 13:02:59.16
>>297
えっ
300デフォルトの名無しさん:2011/12/06(火) 13:04:27.84
あっ
301デフォルトの名無しさん:2011/12/06(火) 13:19:35.92
302デフォルトの名無しさん:2011/12/06(火) 13:28:14.89
>>292の書き込みだけで、おまえらよくエスパーできるな
303デフォルトの名無しさん:2011/12/06(火) 13:29:53.93
>>295もあるよ!
304255:2011/12/06(火) 13:43:42.27
>>295まででできてたら、もう自分でできそうな気もするんだが
aaaのなかでdouble*でなくて、pontaでキャストして
abc、def、ghiでそれぞれ比較するような感じの関数3つ作れ
305デフォルトの名無しさん:2011/12/06(火) 13:46:31.35
名前消すの忘れてた・・・
306デフォルトの名無しさん:2011/12/06(火) 13:46:37.46
関数3つ?
>>301でいいとおもうんだけど。
307デフォルトの名無しさん:2011/12/06(火) 13:55:16.69
3つに分けたほうが読みやすくね?
308デフォルトの名無しさん:2011/12/06(火) 13:56:37.04
qsort3回呼ぶってことか?
qsortって非破壊?
309デフォルトの名無しさん:2011/12/06(火) 14:00:16.35
いや?破壊する。
310292:2011/12/06(火) 14:49:00.12
皆さんのおかげで無事完成しました
ありがとうございました
311デフォルトの名無しさん:2011/12/06(火) 20:02:31.00
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4921
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 2011年12月8日
[5] その他の制限: リスト操作関数http://ideone.com/v7JGBを用いてください

よろしくお願いします。
312デフォルトの名無しさん:2011/12/06(火) 21:41:19.43
>>311
アルゴリズムは低速でもおk?
313デフォルトの名無しさん:2011/12/06(火) 23:07:01.56
アルゴリズム指定されてる気がするけど、いいんじゃない
314311:2011/12/06(火) 23:08:20.67
>>312
全然構いません。
315デフォルトの名無しさん:2011/12/06(火) 23:09:39.99
嘘吐き朝鮮、中国人がやってる報道機関 朝鮮人犯罪があまり報道されない理由
韓国文化放送(MBC) 〒135-0091 東京都港区台場2-4-8 18F
フジテレビジョン 、、 〒137-8088 東京都港区台場2-4-8 

韓国聯合TVNEWS(YTN) 〒105-0000 東京都港区赤坂5-3-6
TBSテレビ     、 、、 .〒107-8006 東京都港区赤坂5-3-6 

大韓毎日   、、、、、、、、、、、、 〒108-0075 東京都港区港南2-3-13 4F
東京新聞(中日新聞社東京本社) 〒108-8010 東京都港区港南2-3-13

京郷新聞  、、、、、、〒100-0004 東京都千代田区大手町1-7-2
産経新聞東京本社  〒100-8077 東京都千代田区大手町1-7-2
(サンケイスポーツ、夕刊フジ、日本工業新聞社)

朝鮮日報   、、、  〒100-0003 東京都千代田区一ツ橋1-1 4F
毎日新聞東京本社 〒100-8051 東京都千代田区一ツ橋1-1-1

韓国日報  、、、、  〒100-0004 東京都千代田区大手町1-7-1 8F
読売新聞東京本社 〒100-8055 東京都千代田区大手町1-7-1

東亜日報   、、、  〒104-0045 東京都中央区築地5-3-2
朝日新聞東京本社 〒104-8011 東京都中央区築地5-3-2(AFP、NYT)

韓国放送公社(KBS) 〒150-0041 東京都渋谷区神南2-2-1NHK東館710-C
NHK放送センター、  〒150-8001 東京都渋谷区神南2-2-1
316デフォルトの名無しさん:2011/12/06(火) 23:23:57.22
[1] 授業単元:C
[2] 問題文(含コード&リンク):
http://codepad.org/QfW3xLnm
リンク先のコードのint searchを、以下のコードに書き換えて、プログラムを完成させなさい。
int bi_search(int target) {
int hi, lo, mid;
lo = 0;
hi = N - 1;
while (lo <= hi) {
mid = (lo + hi) / 2;
if (target == St[mid].num)
return mid;
else if (target < St[mid].num)
hi = mid - 1;
else
lo = mid + 1;
return -1;
}
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:12/8
[5] その他の制限:
317デフォルトの名無しさん:2011/12/06(火) 23:24:50.35
[1] 授業単元:ソフトウェア設計
[2] 問題文(含コード&リンク):http://codepad.org/Gp4kGOVZ
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: visual C++ 2008
 [3.3] 言語: C++
[4] 期限: 2011年12月07日13:00まで
[5] その他の制限: 特に無し

助けて下さい。
よろしくお願いします。
318デフォルトの名無しさん:2011/12/06(火) 23:38:53.45
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):http://www1.axfc.net/uploader/Sc/so/298505
 リンク先のグラフを探索して最短経路を求めるプログラムを作ってください。
 探索アルゴリズムは横型探索を用いてください。
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2011年12月10日
[5]http://www1.axfc.net/uploader/Sc/so/298517 横型探索のアルゴリズム
 に則って作成お願いします。OPENに探索可能なノードのリスト、CLOSEDに
 既に探索したノードのリストを格納してください。
 *横型探索なのでグラフにあるエッジを通るコストと予測コストは関係ないと思います。
  エッジの向きだけ考慮して作成お願いします。
319デフォルトの名無しさん:2011/12/07(水) 00:32:02.26
[1] 授業単元:プログラミング(c言語)
[2] 問題文(含コード&リンク):
ビンゴゲームで、ビンゴした列の数字を足し、その合計によってランクをつけるプログラムを作れ。
ビンゴカード(5*5)に書かれている数字はランダムで1から75まで、ランクはSからEまでとする。
S 365-310
A 309-251
B 250-192
C 191-133
D 132-74
E 73-15
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン:Dev-C++ 5
 [3.3] 言語: C言語
[4] 期限: 2011年12月9日15:00まで
[5] その他の制限:
数人のチームでの課題で、私の担当は数字を足しランク付けするところです。
すみませんが、よろしくお願いします。
320デフォルトの名無しさん:2011/12/07(水) 01:35:54.94
>>319
スコアすごいことになってるけど
http://codepad.org/d9kUDbzg
321デフォルトの名無しさん:2011/12/07(水) 01:38:34.84
ビンゴってビンゴしたら終わりだったか( ;∀;)
322デフォルトの名無しさん:2011/12/07(水) 02:05:16.14
323デフォルトの名無しさん:2011/12/07(水) 02:21:40.38
>>322
エスパーすると、最高得点が365ってところから、同時に複数列ビンゴした場合は、
合計が最大となる列のもののみ対象とする気がする
validが
1 1 1 1 1
1 0 0 0 0
1 0 1 0 0
1 0 0 0 0
1 0 0 0 0
のときとか。

あと、これは本当にささいなことなんだけど、diagon → diagonalかもしれない
324デフォルトの名無しさん:2011/12/07(水) 02:40:07.63
325デフォルトの名無しさん:2011/12/07(水) 03:59:03.83
>>319
やっぱりこれで
http://codepad.org/XDRVQWus

>>323
エスパーしたはずだったんだけどなぁ( ;∀;) 忘れてた。
ありがとう!

書きながらダイアゴン横丁が浮かんでた。修正感謝。
326デフォルトの名無しさん:2011/12/07(水) 04:00:29.49
327デフォルトの名無しさん:2011/12/07(水) 04:03:27.05
328デフォルトの名無しさん:2011/12/07(水) 06:16:38.22
329デフォルトの名無しさん:2011/12/07(水) 06:38:58.42
330デフォルトの名無しさん:2011/12/07(水) 09:05:40.43
[1] 授業単元:プログラミング演習 2
[2] 問題文(含コード&リンク)
テキストファイル bmi.txt を用意します
17人の名前と彼らの身長と体重が記入されています.
$ cat bmi.txt
Ackley,D.H. 181.5 65.1
Baker,J.E. 185.3 68.3
Keller,K.S. 175.2 63.4
Brent,R.P. 174.4 52.8
Jong,K.A. 186.2 73.4
Goldberg,D.E. 174.0 60.0
Forrest,S. 175.5 60.6
Fletcher,R. 180.3 73.8
Powell,M.J.D. 170.1 55.9
Smith,R.E. 178.7 69.6
Richardson,J. 167.7 51.5
Martin,F.G. 179.2 65.3
Wilson,S.W. 185.8 84.4
Lawler,E.L. 166.5 59.6
Reed,J. 176.3 58.8
Holland,J.H. 186.1 70.4
Jones,W.T. 171.4 63.7

C プログラム delcomma.c を書き,以下の要領でコンパイルし,実行モジュール delcomma を生成します.
delcomma は想像通り,delete comma の略です.
標準入力から受け取った名前の中で,カンマ以下を削除して標準出力に表示するコマンドです.

331デフォルトの名無しさん:2011/12/07(水) 09:05:57.06
[1] 授業単元:プログラミング演習 2
[2] 問題文(含コード&リンク)
テキストファイル bmi.txt を用意します
17人の名前と彼らの身長と体重が記入されています.
$ cat bmi.txt
Ackley,D.H. 181.5 65.1
Baker,J.E. 185.3 68.3
Keller,K.S. 175.2 63.4
Brent,R.P. 174.4 52.8
Jong,K.A. 186.2 73.4
Goldberg,D.E. 174.0 60.0
Forrest,S. 175.5 60.6
Fletcher,R. 180.3 73.8
Powell,M.J.D. 170.1 55.9
Smith,R.E. 178.7 69.6
Richardson,J. 167.7 51.5
Martin,F.G. 179.2 65.3
Wilson,S.W. 185.8 84.4
Lawler,E.L. 166.5 59.6
Reed,J. 176.3 58.8
Holland,J.H. 186.1 70.4
Jones,W.T. 171.4 63.7

C プログラム delcomma.c を書き,以下の要領でコンパイルし,実行モジュール delcomma を生成します.
delcomma は想像通り,delete comma の略です.
標準入力から受け取った名前の中で,カンマ以下を削除して標準出力に表示するコマンドです.

332デフォルトの名無しさん:2011/12/07(水) 09:06:07.91
[1] 授業単元:プログラミング演習 2
[2] 問題文(含コード&リンク)
テキストファイル bmi.txt を用意します
17人の名前と彼らの身長と体重が記入されています.
$ cat bmi.txt
Ackley,D.H. 181.5 65.1
Baker,J.E. 185.3 68.3
Keller,K.S. 175.2 63.4
Brent,R.P. 174.4 52.8
Jong,K.A. 186.2 73.4
Goldberg,D.E. 174.0 60.0
Forrest,S. 175.5 60.6
Fletcher,R. 180.3 73.8
Powell,M.J.D. 170.1 55.9
Smith,R.E. 178.7 69.6
Richardson,J. 167.7 51.5
Martin,F.G. 179.2 65.3
Wilson,S.W. 185.8 84.4
Lawler,E.L. 166.5 59.6
Reed,J. 176.3 58.8
Holland,J.H. 186.1 70.4
Jones,W.T. 171.4 63.7

C プログラム delcomma.c を書き,以下の要領でコンパイルし,実行モジュール delcomma を生成します.
delcomma は想像通り,delete comma の略です.
標準入力から受け取った名前の中で,カンマ以下を削除して標準出力に表示するコマンドです.

333デフォルトの名無しさん:2011/12/07(水) 09:08:21.81
$ gcc -o delcomma delcomma.c

コマンド delcomma にリダイレクト機能を使って入力ファイル bmi.txt の中身を処理させます.
結果は以下のようになります.綺麗に名前のカンマ以下が消えています.

$ ./delcomma < ./bmi.txt
Ackley
Baker
Keller
Brent
Jong
Goldberg
Forrest
Fletcher
Powell
Smith
Richardson
Martin
Wilson
Lawler
Reed
Holland
Jones
334デフォルトの名無しさん:2011/12/07(水) 09:09:57.72
ソース delcomma.c の一部を示します.残りを埋めて完成させて下さい.
#include <stdio.h>

#define MAX_LINE 20
#define MAX_NAME 20

int main(void);
int readfile(char (*)[MAX_NAME]);
void del_comma(char (*)[MAX_NAME], int);
void write_array(char (*)[MAX_NAME], int);
int main(void)
{
char name[MAX_LINE][MAX_NAME];
int n;

n = readfile(name);
del_comma(name, n);
write_array(name, n);

return 0;
}
void write_array(char (*name)[MAX_NAME], int n)
{
int i;

for (i = 0; i < n; i++) printf("%s\n", name[i]);

return;
}
335デフォルトの名無しさん:2011/12/07(水) 09:11:34.43
すいません間違えて何度も同じ書き込みしてしまいました。[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:12月7日(出来れば早めにお願いします)

よろしくお願いします
336デフォルトの名無しさん:2011/12/07(水) 09:33:55.21
337デフォルトの名無しさん:2011/12/07(水) 09:52:19.25
338デフォルトの名無しさん:2011/12/07(水) 09:55:18.06
>>327
感謝!!
339デフォルトの名無しさん:2011/12/07(水) 10:17:29.42
>>337
X while (fgets(s, "%s", stdin) != NULL)
O while (fgets(s, MAX_NAME, stdin) != NULL)
340デフォルトの名無しさん:2011/12/07(水) 10:45:11.96
近々これを元にBMI計算しろって丸投げがくるな
341デフォルトの名無しさん:2011/12/07(水) 11:02:28.20
[1] 授業単元: プログラミング演習
[2] メンバに氏名、身長(double)、体重(double), BMI (double)をもつ構造体をつくり、氏名、身長、体重に適当な値を設定します。
そしてこの構造体のポインタを引数として渡したときにBMIメンバに計算結果を格納する関数を作ってください。
(もちろん、メイン関数もかいて動作を確かめよ。)
BMI : 体重(kg)を身長の2乗(m)で割った値
(体重(kg)/(身長(m))^2)
[3] 環境
[3.1] OS: Windows
[3.2] visual C++2005
[3.3] C
[4] 期限:2011/12/8
342デフォルトの名無しさん:2011/12/07(水) 11:20:28.51
343デフォルトの名無しさん:2011/12/07(水) 12:05:58.87
安定のBMIスレ
double BMI(double weight,double height)
/*weight: 体重(kg)*/
/*height: 身長(m)*/
{if((weight<0)||(height<0){return -1 /*エラー*/}
return weight/(height*height);}
までテンプレ
344デフォルトの名無しさん:2011/12/07(水) 12:14:37.11
>>329
ありがとう御座います。助かりました。
345デフォルトの名無しさん:2011/12/07(水) 12:43:30.56
>>336
雛形コードについての表現がおもろいな。
・ここまで何とかできた
・友達と一緒にやって、教科書などから「だいたいこんな感じではないか」
346デフォルトの名無しさん:2011/12/07(水) 13:34:20.47
>>311
http://ideone.com/Xe3sf
すんません。私の技量ではこれが限界です。
347デフォルトの名無しさん:2011/12/07(水) 14:00:38.70

民主は反日で論外
自民は谷垣のようなエセ保守が居る限り衰退
348デフォルトの名無しさん:2011/12/07(水) 15:32:42.15
349335:2011/12/07(水) 16:55:00.92
>>337だとコンパイル可能なのですが実行するとSegmentation faultが出てしまいます
どこを修正すれば見当つきません 誰か教えてもらえますか
350デフォルトの名無しさん:2011/12/07(水) 17:17:40.29
>>349
ゴミなので全部書き直せばいい
351デフォルトの名無しさん:2011/12/07(水) 17:20:01.74
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
キーボードから二つの文字列を配列x[256]とy[256] に入力する。
配列xに含まれる文字列の後ろに配列yに含まれる文字列をつなげたものを配列z[256] に代入し、画面表示するプログラムを作成せよ。
(ただし、NULL文字「\0」の扱いに注意し、配列z の文字列の後ろにNULL文字を入れておくこと)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 2.9
[3.3] 言語:C言語
[4] 期限: 12月13日24時
[5] その他の制限:ありません。宜しくお願いします。
352デフォルトの名無しさん:2011/12/07(水) 17:25:29.21
>349

マジで半分くらいは書き換え
353デフォルトの名無しさん:2011/12/07(水) 17:39:16.37
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
以下の手順に従ってプログラムを作成せよ。
適宜printfを利用して、入力支援(「文字列を入力してください」等の画面表示)を行うこと。
1.文字配列name[5][64]を作成
2.キーボードから5人分の名前を入力し、name配列に格納
3.キーボードから名前を入力し、name配列の何番目に格納されているかを検索して表示
(見つからなかった場合は「見つかりません」と表示)
4.「quit」が入力されるまで3の処理を繰り返す
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限: 12/10/20:00
[5] その他の制限:お願いします。
354デフォルトの名無しさん:2011/12/07(水) 17:40:56.24
>>349
コンパイル通るのか? fgets() が....
355335:2011/12/07(水) 17:41:31.53
>>352 >>350 そうなのですか すみません誰か別のをお願いします
356デフォルトの名無しさん:2011/12/07(水) 17:48:04.40
>335

礼もなしで使い捨てって、すごいなお前
357デフォルトの名無しさん:2011/12/07(水) 17:50:29.65
>>351

#include <stdio.h>

int
main(void)
{
char x[256], y[256], z[256];
printf("x = ");
scanf("%s", x);
printf("y = ");
scanf("%s", y);
sprintf(z, "%s%s", x, y);
printf("z = %s¥n", z);
return 0;
}
358デフォルトの名無しさん:2011/12/07(水) 17:51:45.84
>>355
書き直した方が良いとは思うけど、面倒くさいから修正指示で良い?
30行目
× while( fgets( s, "%s", 〜
○ while( fgets( s, 100, 〜
359デフォルトの名無しさん:2011/12/07(水) 18:01:12.51
>>351>>357
sprintfを使わないとこうなるという例 sprintfバンザイ センセーに怒られても知らないけどね

//ヘッダファイルの読み込みだよ
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//マジックナンバーはプログラム内に書かないほうがいいよ
#define N 256
//メイン関数だよ
int main(void) {
//文字列配列の宣言だよ
char x[N];
char y[N];
char z[N];
//xを入力させるよ
printf("x入れてね:");
fgets(x, sizeof(x), stdin);
fflush(stdin); //おまじないだよ
x[strlen(x) - 1] = '\0'; //NULL文字つけるよ
//yを入力させるよ
printf("y入れてね:");
fgets(y, sizeof(y), stdin);
fflush(stdin); //おまじないだよ
y[strlen(y) - 1] = '\0'; //NULL文字つけるよ
strcpy(z, x); //xをzにコピーするよ
strcat(z, y); //zにyを連結するよ
printf("配列zの中身は%sだよ",z); //表示するよ
return 0; //おまじないだよ
}
360デフォルトの名無しさん:2011/12/07(水) 18:01:20.65
>>355
あれ、ここではベース書き換えおk?
361デフォルトの名無しさん:2011/12/07(水) 18:07:31.30
[1] 授業単元: プログラミングC (ポインタ、文字列)
[2] 文字列を後ろから逆に表示する(例えば"ABC"を受け
取ったら"CBA"と表示する)関数
void put_rstring(const char *st)
を,添字演算子[] を使わずに作成せよ
[3] 環境
[3.1] OS: linux
[3.2] gcc
[3.3] C
[4] 期限:2011/12/8
[5] 関数の動作を確認できるmain 関数も作成す
ること.
(実行例)
文字列を入力してください:Koudai
逆順に表示:iaduoK
362デフォルトの名無しさん:2011/12/07(水) 18:12:11.18
>>359

sprintfがstrcpyとstrcatにかわっただけだろ。
strcpy(z, x); //xをzにコピーするよ
strcat(z, y); //zにyを連結するよ

それから、これはやりたいことの説明になってない。
> x[strlen(x) - 1] = '\0'; //NULL文字つけるよ

それよりも何よりも、この恐ろしいコードを足したのはなぜ?
> fflush(stdin); //おまじないだよ
363デフォルトの名無しさん:2011/12/07(水) 18:27:03.35
>>361
void put_rstring(const char *st) {
const char *p = st;
while(*p++);
while(st != p) putchar(*--p);
}

こういう。
364335:2011/12/07(水) 18:36:07.17
>>356 貴方の言う通りですね 礼も無しは失礼ですね これから気をつけるので今回はすみませんでした
>>358 はい 無事できましたありがとうございました
365デフォルトの名無しさん:2011/12/07(水) 18:49:41.24
>>363
X while(*p++);
O while(*p)p++;
366デフォルトの名無しさん:2011/12/07(水) 18:57:04.95
>>365
あ、ほんと。ありがと
367デフォルトの名無しさん:2011/12/07(水) 19:27:15.99
>>364
ふーん >>358 のような変更でコケたりコケなかったりするんだ。
いや、元のコードだとバッファのサイズとして文字リテラルのアドレス値が渡るだけで
「一応」動かなくもないのかなあと思ったのだが。

コケるとしたらfgets()が本当にそんだけバッファがあるかチェックしたりしてるとか?
あるいは文字リテラルがすごく小さいアドレスに割り当てられてて、fgetsがバッファ不足
(と思い込む)で文字列がカンマまで取り込めなくて暴走とか?
368デフォルトの名無しさん:2011/12/07(水) 19:43:52.23
>>342
マイナス値が入力されたら?
369デフォルトの名無しさん:2011/12/07(水) 19:49:36.34
宿題なんだから、条件チェックは指示された範囲でいいんじゃないの?
370デフォルトの名無しさん:2011/12/07(水) 19:50:22.68
>>342
>>343
ありがとうございました
371デフォルトの名無しさん:2011/12/07(水) 20:12:05.79
>>367
fgets() の第二引数は signed int だから unsigned int のポインター値が負になるかも知れないよ
372デフォルトの名無しさん:2011/12/07(水) 20:27:27.40

朝日新聞は一時期300人のネット工作員をかかえ、工作していた。
捕まった編集者は49歳ですが、こんなカスでも1500万円の年収がもらえるんですよ。
>>866
14時以降に何が起きたんだ

>>866
Domain Information: [ドメイン情報]
a. [ドメイン名] ASAHI-NP.CO.JP
e. [そしきめい] かぶしきがいしゃ あさひしんぶんしゃ
f. [組織名] 株式会社 朝日新聞社

これが規制されたからじゃねw

−「朝日新聞社は、とある思想やパラダイムに日本の世論を誘導する見返りに、中国から大量の資金を貰っている。」−
これはおそらく週刊誌さえ書けない。
「失語症躁鬱ニートは氏ねよ」【ネット】朝日新聞社員(49)ネットで荒らし行為、会社ごとアクセス規制へ
373デフォルトの名無しさん:2011/12/07(水) 20:36:14.77
>>367
> バッファがあるかチェック
できないでしょ
374デフォルトの名無しさん:2011/12/07(水) 20:43:55.89
>>361
#include <stdio.h>

void func(char*s){
if(*s)
func(s+1);
putchar(*s);
}

int main(void){
char s[100];
printf("in=");
scanf("%s",s);
func(s);
return 0;
}
375デフォルトの名無しさん:2011/12/07(水) 20:45:23.13
[1] 授業単元:C
[2] 問題文(含コード&リンク):
http://codepad.org/ag7XWjHf
リンク先のコードをデータが昇順ではなく、
降順に並んでいる場合の二分探索はどのように改良すればいい?
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:12/8
[5] その他の制限:
376デフォルトの名無しさん:2011/12/07(水) 20:54:33.78
377デフォルトの名無しさん:2011/12/07(水) 20:56:19.50
>>375
else if (target < St[mid].num)
→ else if (target > St[mid].num)
378デフォルトの名無しさん:2011/12/07(水) 21:59:47.07
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):↓

文字列操作のライブラリ関数を使用して、指定したファイルで、
最も辞書順(ASCIIコード順)で最初に出てくる単語と、最後に出てくる単語を見つけて表示せよ。また、最も長い単語も表示せよ。
・同じ長さの単語が複数ある場合には、最初に見つけたものだけ表示するだけでよい。
・ただし,ここでいう単語とは、スペースや改行、タブで区切られる文字の列で必ずしも、英数字とはかぎらない。(このような区切りで、ファイルから文字列を読むために%sを用いる)
・単語の長さは100文字以内と考えてよい。
・標準文字列関数を利用すること。

(指定されたファイルとは普通の英文が書かれた.txtファイルです)
実行例
$./quiz10-2
Input file name!:sample.txt
file1 open Error sample.txt
$
$./quiz10-2
Input file name!:English.txt
The First word = 's
The Last word = yokozuna
The Longest word = accomplishment.

[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 12/13 10:00
[5] その他の制限:初学者向けらしい

お願いします。
379デフォルトの名無しさん:2011/12/07(水) 22:27:05.81
>>371
負の整数値ですか。確かに文字列をスタック変数に確保した場合とか、なりそうですね。
今回は違いますけど。
で、仮にバッファサイズが負で渡された場合、fgets()は何もせずに終わって欲しいような...
バッファサイズが負だとおかしくなるようなfgest()の実装があるのかな?

>>373
いや、たとえば超おせっかいなfgets()があって、バッファの領域すべてを0で初期化して
くれるとかそんなのがあればクラッシュするかなあとw
380デフォルトの名無しさん:2011/12/07(水) 22:30:20.77
[1] 授業単元:C++入門
[2] 問題文(含コード&リンク):文字型へのポインタ変数を宣言、new演算子を使用してメモリを確保しなさい
文字列のサイズがプログラム実行時に決まるようにして、そのポインタ変数が文字列として使用できることを、
画面出力で確認できるようにしなさい

[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C++
[4] 期限:12/9
[5] その他の制限:なし

http://codepad.org/5ly4iZhi
↑のプログラムを作成したんですが、文字を入力するとエラーになってしまいます
どうすれば改善できるのか教えてください
381デフォルトの名無しさん:2011/12/07(水) 22:37:03.42
382デフォルトの名無しさん:2011/12/07(水) 22:38:30.68
>>380
> if(Data = NULL)
if(Data == NULL) に修正
383デフォルトの名無しさん:2011/12/07(水) 22:46:03.40
>>380
17行目でNULLを代入しちゃってるよね。

あと1文字ずつ入力したければ、getchar()を使おう。
384デフォルトの名無しさん:2011/12/07(水) 22:53:24.13
>>380

>>382で嘘を書いてしまった。C++のnewはNULLを返さないんだった。
if(Data == NULL)は不要です。
385デフォルトの名無しさん:2011/12/07(水) 22:55:18.80
>>383
…getじゃなくてか。
386デフォルトの名無しさん:2011/12/07(水) 23:15:01.96
動画:【映画盗撮防止キャンペーン】 NO MORE 映画泥棒 (ver.2) 【HD】


自民、公明両党は7日、インターネットを通じた音楽や映像ファイルの違法ダウンロードに対し、
2年以下の懲役か200万円以下の罰金を科す法案をまとめた。民主党に協力を求め、来年の通常国会で成立を目指す。
ネット上では音楽ファイルなどの違法ダウンロードが相次ぎ、関係業界に多大な損害を与えている。
従来、違法なアップロードは著作権法で処罰対象とされていたが、ダウンロードには刑事罰が科されていなかった。
ttp://www.jiji.com/jc/c?g=pol_30&k=2011120701034

PC画面を直接録画すればおk?

  ∧_∧_
 ( ・∀|[ニ:|ol
 ( つ ∩ ̄
 と_)_)
http://himado.in/75952
387デフォルトの名無しさん:2011/12/07(水) 23:58:57.20
>>382-385
17行目を削除したところ動作するようになりました
それと tanaka と一回で入力したんですが
どうすればできますか
388デフォルトの名無しさん:2011/12/08(木) 00:17:52.99
[1] 画像処理入門
[2] 問題文(含コード&リンク):OpenCVを用いて、x枚(一応与えられたのは200)の画像から
それぞれの画素の輝度平均、標準偏差、中央値、最頻値を用いて画像を生成しろ
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2010
 [3.3] 言語:C
[4] 期限:12/10
[5] その他の制限:なし

カメラ固定の動画像から静止画を取得し、そこから背景画像を生成しろというものです
輝度平均と標準偏差での画像は作成できたのですが
中央値、最頻値での画像作成がどうしたものかわかりません
よろしくお願い致します
389デフォルトの名無しさん:2011/12/08(木) 01:19:51.31
>>388
輝度平均と標準偏差での画像作成のプログラムくらいは見せてくれないとねえ・・・
390387:2011/12/08(木) 02:06:51.07
「tanaka と一回で入力したんですが」→ ×
「tanaka と一回で入力したいんですが」→ ○ でした
>>387の方法をおしえてもらえると嬉しいです
おねがいします
391デフォルトの名無しさん:2011/12/08(木) 02:34:40.19
>>390
#include<iostream>
using namespace std;

int
main()
{
int Size;
char *Data;

cout << "配列のサイズを入力" << endl;
cin >> Size;
Data = new char [Size + 1];
cin >> Data;
cout << Data << endl;
delete Data;

return 0;
}
392デフォルトの名無しさん:2011/12/08(木) 02:55:26.91
>>391
メモリリークのコードを書くぐらいならstd::stringにしときなさいな
393デフォルトの名無しさん:2011/12/08(木) 02:56:03.41
って元からか。スマソ
394デフォルトの名無しさん:2011/12/08(木) 04:22:58.32
>>391
ありがとうございます
395デフォルトの名無しさん:2011/12/08(木) 07:14:43.59
>>379
> 今回は違いますけど。

それは環境依存だろ、そもそもアレのコンパイルが通るかどうかも環境依存だよ

ttp://akademeia.info/index.php?C%B8%C0%B8%EC%2F%C9%B8%BD%E0%A5%E9%A5%A4%A5%D6%A5%E9%A5%EA%2F%CA%B8%BB%FA%C6%FE%BD%D0%CE%CF%B4%D8%BF%F4%2Ffgets#qa5c3584
このページに有るソースコードによると ansi なら fgets( s, -1, は NULL を返すだけだから何もしないで終了する
でも K&R なら NULL文字を読んだ事になり、 del_comma() が ',' を見つけられないから落ちる場合も有るだろう
試しに fgets( s, -1, 〜 としたら bcc ではハングした
396デフォルトの名無しさん:2011/12/08(木) 09:06:40.49
>>395
質問者はbccで…とは書いてないぞ。
397デフォルトの名無しさん:2011/12/08(木) 09:30:19.27
>>396
日本語の読解力はどんな仕事でも必要だよ
>>395 を読んで bcc に限定した話をしていると考えるなら問題が有るな
398デフォルトの名無しさん:2011/12/08(木) 12:41:39.62
>>317ですが>>327
#include<iostream>
#include<fstream>
#include<string>
のみを使ってプログラムを作りたいです。
どなたか時間があるときによろしくお願いします。
399デフォルトの名無しさん:2011/12/08(木) 14:56:59.28
>>395
>> 今回は違いますけど。
>
>それは環境依存だろ、そもそもアレのコンパイルが通るかどうかも環境依存だよ

これは「スタック変数ではない」という意味で書いたんだけど... だったらOK?

で、bccでは
- (キャスト等して)intの変数に文字リテラルを渡すと負数が渡る?
- fgets()はK&R Cのように振る舞う(振る舞わさせることが出来る)?
んですか?

環境依存なのは百も承知なので、では実際にどういう環境があるのかなと
400デフォルトの名無しさん:2011/12/08(木) 15:03:33.45
平松邦夫/民主党
大阪市役所・自治労・大阪市労働組合・日教組・大阪市教育委員会・自民党・共産党・社民党・関西電力・住友グループ
・毎日放送・毎日新聞・関西経済連合・日本原子力発電株式会社 ・ 週刊文春・週刊新潮・NHK・朝日新聞・読売新聞
・部落解放同盟・朝鮮総連・在日本大韓民国民団・日本遊技関連事業協会・全日本遊技事業協同組合連合会・日本弁護士連合会・生活保護受給者・反日左翼・9条の会・革マル派・中核派

VS

橋下徹/維新の会
大阪市民・みんなの党・国民新党・亀井静香・石原慎太郎・東国原英夫
 様子見:公明
401デフォルトの名無しさん:2011/12/08(木) 15:10:48.32
>>398
template <typename T>
void scan_line(const string &prompt, T &x)
{
cout << prompt;
while( ! ( cin >> x ) ) {
cin.clear();
cin.ignore( 10000, '\n' );
cout << "Error:" << prompt;
}
}
>>327 は numeric_limits<streamsize>::max() によりバッファの最大サイズを取得しているけど、
十分に大きいと思われる数値を与えれば十分じゃないかなと思う
402デフォルトの名無しさん:2011/12/08(木) 15:26:57.57
>>399
スタック・ヒープ・リテラルがアドレスの何処に配置されるかは環境依存だよって意味

> (キャスト等して)intの変数に文字リテラルを渡すと負数が渡る?
渡らなかった、リテラルは 0x400000 台のアドレスに配置されているようだ

> fgets()はK&R Cのように振る舞う(振る舞わさせることが出来る)?
質問の意味が不明だ
fgets( s, -1, stdin ) が NULL文字を読み込む事が確認できたので、K&Rスタイルに実装と推定できる
ANSIスタイルであればNULLを返すだろう
403デフォルトの名無しさん:2011/12/08(木) 15:50:52.16
>>337は仕様、動作すら確認せずに書いた産廃。
それで終わりだ。宿題スレで関係ない話してんな。
404デフォルトの名無しさん:2011/12/08(木) 17:46:49.10
>>389
IplImage **src = 0;
IplImage *src0 = cvLoadImage("./src/000.bmp", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
cvSaveImage( "src_image.jpg", src0, 0);
if( NULL == (src = (IplImage**)malloc(IMG_NUM*sizeof(src0))) ){
printf("メモリ確保出来ず.\n");
return -1;
}
for(i=0;i<=IMG_NUM;i++){
sprintf(filepath, "./src/%03d.bmp",i);
src[i] = cvLoadImage(filepath, CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
}

という感じで読み込んで

for (i = 0; i <= IMG_NUM; i++) {
cvConvertScale (src[i], tmp, 1.0, 0);
cvAcc(tmp, ave_img, NULL);
cvSquareAcc(tmp, ave2_img, NULL);
}
cvConvertScale (ave_img, ave_img, 1.0/100, 0);//平均
cvConvertScale (ave2_img, ave2_img, 1.0/100, 0);//二乗和の平均
//分散
Iplimage *dispersion = cvCreateImage(cvSize(width,height),IPL_DEPTH_32F,3);
cvMul( ave_img, ave_img, ave_img,0);
cvSub( ave2_img, ave_img, dispersion,0 );
//標準偏差
Iplimage *sd = cvCreateImage(cvSize(width,height),IPL_DEPTH_32F,3);
cvPow( dispersion, sd, 0.5 );

これで出せている…つもりです
よろしくお願い致します
405デフォルトの名無しさん:2011/12/08(木) 18:00:27.09
標準偏差出せるならメジアンとかもできるんじゃないの…?
406デフォルトの名無しさん:2011/12/08(木) 18:14:41.71
[1] 授業単元: プログラミングC (ポインタ、文字列)
[2] 文字列を後ろから逆に表示する(例えば"ABC"を受け
取ったら"CBA"と表示する)関数
void put_rstring(const char *st)
を,添字演算子[] を使わずに作成せよ
[3] 環境
[3.1] OS: linux
[3.2] gcc
[3.3] C
[4] 期限:2011/12/8
[5] 以下の実行例のように関数の動作を確認できるmain 関数も作成す
ること.
(実行例)
文字列を入力してください:Koudai
逆順に表示:iaduoK

407デフォルトの名無しさん:2011/12/08(木) 18:27:05.25
408デフォルトの名無しさん:2011/12/08(木) 19:05:21.64
[1] アルゴリズム 文字列ポインタ演習
[2] 問題文:文字列st の中に,文字c が含まれていればその文字
へのポインタを返し,含まれていなければNULL を返す
関数char *str_chr(const char *st, int c)
を作成せよ.以下の実行例のように,関数の動作を確認
できるmain 関数も作成すること.
実行例
文字列str:ABCDEFGHIJKLMNOPQRSTUVWXYZ
1 文字入力してください:X
その文字はstr に含まれています。
その文字以降を表示します:XYZ
例.2
文字列str:ABCDEFGHIJKLMNOPQRSTUVWXYZ
1 文字入力してください:3
その文字はstr に含まれていません
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2010
 [3.3] 言語:C
[4] 期限:12/9
[5] その他の制限:
・ 関数str_chr は,添字演算子[] を使わずに作成すること.
・? 文字c が複数ある場合は,最も先頭側の文字c へ
のポインタを返すものとする.
409デフォルトの名無しさん:2011/12/08(木) 19:26:44.45
>>408
#include <stdio.h>
#include <string.h>
char *str_chr(const char *st, int c)
{return strchr(st, c);}
int main()
{
char str[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("1 文字入力してください:");
c = getchar();
p = str_chr(str, c);
if(p!=NULL){
printf("その文字はstr に含まれています。\n"
"その文字以降を表示します:%s\n", p);
}else{
printf("その文字はstr に含まれていません\n", c);
}
return 0;
410デフォルトの名無しさん:2011/12/08(木) 19:50:26.99
>>409実行したらエラーが出ましたよ
411デフォルトの名無しさん:2011/12/08(木) 20:17:42.93
>>410
嘘つくな、コンパイルすら通らないぞ
412デフォルトの名無しさん:2011/12/08(木) 20:21:02.69
>>実行とコンパイル間違えた
413デフォルトの名無しさん:2011/12/08(木) 21:05:54.83
414デフォルトの名無しさん:2011/12/08(木) 21:33:49.67
>>408ありがとうございます
415デフォルトの名無しさん:2011/12/08(木) 21:46:08.27
[1] 授業単元:関数とポインタ
[2] 問題文(含コード&リンク):
ある実数値の2乗を求める関数jijyoと、3乗を求める関数sanjyoを作成し、メイン関数から呼び出して動作を確認せよ。ただし、関数の返却値は無いものとし、引数はアドレス渡し(ポインタ)とする。
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン: わかりません
 [3.3] 言語: C++
[4] 期限: 12/8 23:00
[5] その他の制限: 基本しかやってません
416デフォルトの名無しさん:2011/12/08(木) 22:10:41.09
[1] 授業単元:C言語による基礎数学
[2] 問題文(含コード&リンク):
  問題1
    ttp://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4927
    問題2
    ttp://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4928
    参考プログラム
    ttp://codepad.org/nxeE5z0Z
[3] 環境
 [3.1] OS:windows7
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C言語
[4] 期限: 12/9 16:00
[5] その他の制限: できるだけ簡単に、参考プログラムを元に作成をよろしくお願いします。
417デフォルトの名無しさん:2011/12/08(木) 22:39:08.54
418デフォルトの名無しさん:2011/12/08(木) 23:12:04.24
419デフォルトの名無しさん:2011/12/08(木) 23:36:32.21
スレ痴
420デフォルトの名無しさん:2011/12/08(木) 23:59:38.91
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):メイン関数でキーボードから2つの整数値を入力し、関数sisokuenzanにて和差積商を計算するプログラムを作成せよ。
なお、関数sisokuenzanの仕様は以下のとおりとし、計算結果はメイン関数で表示するものとする。計算結果の変数は、結果をよく考えて適切な型を使うこと。

関数名: sisokuenzan
 引数 :整数1: x
     整数2: y
     計算結果:和 wa, 差 sa,積 seki,商 syou
     (ただし、計算結果はポインタ)

 返却値:無し(return文は無い)
 その他:「関数sisokuenzanが呼ばれました」と、画面に表示する。


(実行例)

整数1= 10
整数2= 3

関数sisokuenzanが呼ばれました

メイン関数に戻りました
和 = 13 差 = 7 積 = 30 商 = 3.3


[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2010 Express
 [3.3] 言語: C++
[4] 期限:できるだけ早くでお願いします
[5] その他の制限:
421デフォルトの名無しさん:2011/12/09(金) 00:37:03.18
422デフォルトの名無しさん:2011/12/09(金) 00:41:20.78
>>402 >>403
確かにそんなに引っ張る話題でもないんで一個だけ。

fgets( s, -1, stdin ) が NULL文字を読み込む事が確認できたので、K&Rスタイルに実装と推定できる
>ANSIスタイルであればNULLを返すだろう

もしかしてK&Rに書いてあるfgets()のコードのことですか? その場合「ANSIスタイル」
というのは何なのかという疑問が...
423デフォルトの名無しさん:2011/12/09(金) 00:43:52.14
>>422
ああ、>>395のリンクをちゃんとよんでませんでしたごめんなさい。
というわけで終了。
424デフォルトの名無しさん:2011/12/09(金) 01:34:38.68
>>416
1. http://ideone.com/KaADl
2. 回路わからん
425デフォルトの名無しさん:2011/12/09(金) 05:17:40.88
>>416
課題2
あってるかどうか、さっぱりわからん
http://codepad.org/N8rd6RQW
426デフォルトの名無しさん:2011/12/09(金) 06:50:40.83
>>424
ありがとうございます

>>425
ありがとうございます
たぶん間違ってると思います
427426:2011/12/09(金) 07:00:42.94
>>425
と思ったんですけど-jってprintfで表示されるようにしてたんですね^^;
ありがとうございました
428デフォルトの名無しさん:2011/12/09(金) 13:33:28.25
[1] 授業単元:C入門
[2] 問題文(含コード&リンク):メンバとして名前(文字列)と生年月日(yyyymmdd
形式のlong 型整数)をもつ構造体friend を宣言し,
friend 型構造体のオブジェクトfr を引数としてメン
バの情報を"○○さんの生年月日はyyyy 年mm 月dd 日
です。" のように表示する関数
void print_friend(struct friend fr)
を作成しプログラムを完成させよ

以下の実行例のように,関数の動作を確認できるmain
関数も作成すること.ただし,main 関数は以下のよう
に動作するものを作成せよ。
友人の名前を入力してください:Taro
友人の生年月日(yyyymmdd) を入力してください:
19911001
Taro さんの生年月日は1991 年10 月1 日です。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:12/10
[5]
・main 関数内で,friend 型構造体のオブジェクトfr1 を初期化せずに宣言する.
・ 以下の実行例のように,fr1 のメンバの値(名前と生年月日)をユーザに入力させる.このとき,scanf関数の引数にfr1 のメンバのアドレスを用いること.
・その後,関数print_friend を呼出してfr1 の情報を表示し,終了する.
429デフォルトの名無しさん:2011/12/09(金) 13:54:53.10
430デフォルトの名無しさん:2011/12/09(金) 18:08:58.15
>>346
とても助かりました!ありがとうございます!
431デフォルトの名無しさん:2011/12/09(金) 18:21:33.78
            ,.r.:::;;;;:ュ、
         fイ´__  __ヾ
           {:六;;;;:ハ:;;;:カ   
         (_  ' _^_ヽリ    なんだ AKBって整形した反日朝鮮人だったのかァ
          ,人 l⌒l、      ブームの捏造手法が寒流と同じだけはあるな
        / \,ゝヽr' \    
       /      |:|   ヽ
        l   l   /´堰@ l  !
        |___l  ノ ,イ   !__,}


432デフォルトの名無しさん:2011/12/09(金) 21:03:01.65
[1] 授業単元:プログラミング画像処理実習
[2] 問題文(含コード&リンク):画像からエッジの検出処理を行い別の画像として出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:visual studio
 [3.3] 言語:C
[4] 期限:2011年12月22日 23時59分まで
[5] その他の制限:なし
433426:2011/12/09(金) 21:49:48.86
>>432
画像の種類は?
434デフォルトの名無しさん:2011/12/10(土) 01:35:03.04
曲線をP型記述子でフーリエ変換するプログラムができずに困っています。
どなたか教えていただけないでしょうか。
435デフォルトの名無しさん:2011/12/10(土) 07:31:17.74
 ここにいる人はプログラムは書けても数学や電気回路に強いわけじゃないから式をかけ式を。
436デフォルトの名無しさん:2011/12/10(土) 09:29:14.19
[1] 授業単元:プログラミング C言語入門
[2] 問題文(含コード&リンク):文字列st の中に,文字c が含まれていればその文字
へのポインタを返し,含まれていなければNULL を返す
関数char *str_chr(const char *st, int c)
を作成せよ.以下の実行例のように,関数の動作を確認
できるmain 関数も作成すること.
ただし,プログラムは以下の要件を満たすこととする.
・ 関数str_chr は,添字演算子[] を使わずに作成すること.
・文字c が複数ある場合は,最も先頭側の文字c へ
のポインタを返すものとする.
・main 関数は以下に示すものを用いること.空欄は
自分で埋めること.
なお,以下のmain 関数では,指定した文字が文字列中
に含まれていた場合に,文字列のその文字以降の部分を
表示するようなプログラムとしている.

[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:visual studio
 [3.3] 言語:C
[4] 期限:2011年12月10日 23時59分まで
[5] その他の制限:なし
437デフォルトの名無しさん:2011/12/10(土) 09:30:40.23
>>435 続き
[5]なお,以下のmain 関数では,指定した文字が文字列中
に含まれていた場合に,文字列のその文字以降の部分を
表示するようなプログラムとしている.
int main( void )
{
int ch;
char str[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char *ptr;
printf("文字列str:%s\n", str);
/* 探したい文字を入力させる*/
printf("1 文字入力してください:");
ch = getchar();
/* 文字ch を探す関数を呼出す*/
ptr =           
/* 文字ch が見つかればstr のその文字以降の部分
を表示*/
if (         ){
printf("その文字はstr に含まれています。\n");
printf("その文字以降を表示します:%s\n",);
}
else
printf("その文字はstr に含まれていません。\n");
return
[実行例]
文字列str:ABCDEFGHIJKLMNOPQRSTUVWXYZ
1 文字入力してください:X
その文字はstr に含まれています。
その文字以降を表示します:XYZ

よろしくお願いします
438デフォルトの名無しさん:2011/12/10(土) 10:20:26.49
>436-437
>408
439 ◆Z1sp.Bulpo :2011/12/11(日) 02:33:53.74
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
リスト構造を使用して平均を求めるプログラムの作成
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 12月14日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
440432:2011/12/11(日) 04:03:38.57
>>433
pgm画像です
441デフォルトの名無しさん:2011/12/11(日) 06:18:35.57
[1] 数値解析
[2]
123   456   789.012   345.678
901   234   567.890   123.456
789   12    345.678   901.234
567   890   123.456   789.012
・・・
のような適当な値のテキストファイル(q.txt)があり(50×4)、これらのうち3列目と4列目でそれぞれの差を取り、
以下のような新しいテキストファイル(a.txt)に出力せよ。
-221.122   -222.222
-222.212   777.778
-222.222   -112.222
・・・
[3] 環境
 [3.1] Windows
 [3.2] VS2010Express
 [3.3] C
[4] 2011/12/12まで
[5] 特に制限はありません。
流れとしてq.txtを読み込み、3,4列目を二次元配列に入れ、それぞれ計算させてa.txtを出力すると思いますが、
入出力はまだ理解できますが、配列に入れるのとそれらの配列を用いて計算させる辺りがあやふやです。
御教示お願いします。
442デフォルトの名無しさん:2011/12/11(日) 06:30:39.70
>>441
>のような適当な値のテキストファイル(q.txt)
のテキストを出してくれ
いちいち作るのめんどくせ
443デフォルトの名無しさん:2011/12/11(日) 07:04:06.05
444デフォルトの名無しさん:2011/12/11(日) 09:55:56.24
[1] 授業単元: アルゴリズム(構造体・ポインタ)
[2] 問題文(含コード&リンク):
メンバとして映画のタイトル(文字列)と公開年(int
型整数)をもつ構造体movie を宣言し,movie 型構造
体へのポインタmv と映画タイトルの文字列str を引数
としてタイトルを書きかえる関数
void set_title(struct movie *mv, char str[])
および,movie 型構造体へのポインタmv と公開年y を
引数として公開年を書きかえる関数
void set_year(struct movie *mv, int y)
を作成しプログラムを完成させる

実行例.
タイトル:HAYABUSA 公開年:2011
データを書きかえました。
タイトル:October Sky 公開年:1999
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 12月11日まで
445デフォルトの名無しさん:2011/12/11(日) 09:56:47.53
>>444 続き
[5] その他の制限:以下の実行例のように,関数の動作を確認できるmain
関数も作成すること.ただし,main 関数は以下のよう
に動作するものを作成すること
・main 関数内で,タイトルをHAYABUSA,公開年
を2011 として初期化したmovie 型構造体のオブジェクトmovie1 を宣言する
・以下の実行例のように,movie1 のメンバの値を表
示した後,関数set_title と関数set_year を用
いて別のタイトルと公開年の値に変更する.変更す
るタイトルと公開年は適当な値を用いてよい(ユー
ザに入力させる必要はない
・その後もう一度movie1 のメンバの値を表示して終
了する.
お願いします
446デフォルトの名無しさん:2011/12/11(日) 14:31:15.96
宿題の名を借りたアンケだな・・・センセはおもしろい映画を見たいようだw
ちょっとまってね、今作ってみるわ。
447デフォルトの名無しさん:2011/12/11(日) 14:49:36.49
#include <stdio.h>
#include <string.h>

#define TITLESIZE 100
struct movie{char title[TITLESIZE];int year;};
void set_title(struct movie *mv, char str[]){strcpy(mv->title, str);}
void set_year(struct movie *mv, int y){mv->year = y;}
void print_movie(struct movie *mv){printf("タイトル:%s 公開年:%d\n", mv->title, mv->year);}
int main(void){struct movie movie1 = {"HAYABUSA", 2011};print_movie(&movie1);
set_title(&movie1, "WarGames");set_year(&movie1, 1983); /* ←ネタが思いつかんかった */
printf("書き換えました\n");print_movie(&movie1);return 0;}
448デフォルトの名無しさん:2011/12/11(日) 15:14:56.98
/* >>441 */
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
double a, b, c, d, oldc, oldd;
FILE *fin = fopen("q.txt", "r");
FILE *fout = fopen("a.txt", "w");
if (fin == NULL || fout == NULL) {
fprintf(stderr, "ファイルが開けないよ\n");
exit(2);
}
fscanf(fin, "%lf %lf %lf %lf", &a, &b, &oldc, &oldd);
while (fscanf(fin, "%lf %lf %lf %lf", &a, &b, &c, &d) == 4) {
fprintf(fout, "%lf %lf\n", c - oldc, d - oldd); /* ←自分で調整してちょ */
oldc = c;
oldd = d;
}
fclose(fin);
fclose(fout);
return 0;
}
449デフォルトの名無しさん:2011/12/11(日) 15:18:42.89
>>442
そういうもんでもないだろ
450デフォルトの名無しさん:2011/12/11(日) 15:31:44.48
あ、fprintf()ん中の%lfは%fだったわ。。。orz
451デフォルトの名無しさん:2011/12/11(日) 16:14:56.24
pgm形式ですか・・・テキストファイルで読み込めます?
先頭の4行は次のような、形でしょうか。
---次の行から
P1
# comment
100 200
256
---上の行まで。
pgmファイルの読み書き習っているなら、そのプログラムを提示してくれれば組める。
452デフォルトの名無しさん:2011/12/11(日) 16:27:41.78
そういう時はやらなければいいんだよ。やれないってことだから。
453デフォルトの名無しさん:2011/12/11(日) 16:50:10.02
>>452
足引っ張ることしかできんのかお前は。
454デフォルトの名無しさん:2011/12/11(日) 16:52:21.20
どうせまともなのが出来るわけないんだから
printf("Hello World\n");
でいいんじゃね?
455デフォルトの名無しさん:2011/12/11(日) 16:54:25.70
とりあえず、P2を読めるプログラム今書いてるけどねー。
標準画像のlenaさんてプレイボーイのグラビアだったのねー・・・。
456デフォルトの名無しさん:2011/12/11(日) 17:32:14.74
>>441 ありがとうございます
457デフォルトの名無しさん:2011/12/11(日) 18:13:32.24
>>455
だよ。顔だけばっかりみるけど
458デフォルトの名無しさん:2011/12/11(日) 18:23:07.99
[1] 授業単元:配列とポインタ
[2] 問題文(含コード&リンク):1,2,3,4,5,6...と続くテキストファイルを読み込み、8×8の2次元配列で表し、別のテキストファイルに結果を書き込みなさい。ただし、読み込むファイルのデータの数が64個に満たない場合は、0を代入しなさい。
[3] 環境
 [3.1] OS: linux debian
 [3.2] コンパイラ名とバージョン: gcc4.3.2
 [3.3] 言語:C言語
[4] 期限: 12月12日 14時
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
459デフォルトの名無しさん:2011/12/11(日) 18:49:44.75
460458:2011/12/11(日) 20:14:13.09
>>459
Error: 'for' loop initial declaration used outside c99 mode
というエラーがでます。
461466:2011/12/11(日) 20:36:43.47
[1]再起的関数
[2]10×10の二次元配列を用意し、□か■を適当に格納し■が上下左右に連続してマークされた要素の集まりを島と呼び島の個数を数える(関数の再起処理を使用)
3] 環境
 [3.1] Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 2011年12月11日24時
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
462デフォルトの名無しさん:2011/12/11(日) 20:49:03.00
>>460
C99より前のバージョンのC言語は、ローカル変数の宣言は全てコードブロックの一番前で
行わなければならないからね。
for ( int j = 0; j < 8; j++ ){

の部分を
int j;
for ( j = 0; j < 8; j++ ){

にすればいいんじゃないかな?
ついでにFILE *fp = fopen(in_file, "rb");の行も、gets(in_file);の前にFILE *fp;をおいて、
もともとの場所はfp = fopen(in_file,"rb");に置き換える必要もあるし…。

それかC99モードでコンパイルするのが一番いいかもしれないね。どうすればいいかは、
それくらい調べた方がいいかも。
463459:2011/12/11(日) 20:51:24.48
>>460
つ -std=c99
464458:2011/12/11(日) 21:00:40.66
>>463
ありがとうございます。
-std=c99試しましたがまだエラーがでます。
465458:2011/12/11(日) 21:01:22.26
>>462
ありがとうございます。
教えていただいた通り、書き換えましたがコンパイルできません。
466デフォルトの名無しさん:2011/12/11(日) 21:07:59.17
>>465
エラーメッセージ貼れよバカ
467458:2011/12/11(日) 21:11:24.58
>>466
In function 'main'
warning: the `gets' function is dangerous and should not be used
です。
468 ◆QZaw55cn4c :2011/12/11(日) 21:15:59.42
>>465
http://ideone.com/x4K0I 書き直しただけ。
469デフォルトの名無しさん:2011/12/11(日) 21:18:22.59
警告ですな。まー宿題レベルなら問題ない。
gets()は(配列の長さを知らないでメモリを壊すので)危ないから、使わないでねというやつ。
470デフォルトの名無しさん:2011/12/11(日) 21:20:08.71
471466:2011/12/11(日) 21:32:31.82
[1]再起的関数
[2]10×10の二次元配列を用意し、□か■を適当に格納し■が上下左右に連続してマークされた要素の集まりを島と呼び島の個数を数える(関数の再起処理を使用)
3] 環境
 [3.1] Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 2011年12月11日24時
[5] その他の制限: 標準ライブラリは使ってはいけない,再起関数までしか習っていない、
472デフォルトの名無しさん:2011/12/11(日) 21:32:36.14
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):textfileの1行を読み込み、1次元配列にバッファリングしたものの1部をスペースが出るまで
別の二次元配列に格納せよ。
テキストファイルに書かれている内容は
AA 1,2,3,4,5;
・・・
です。
のようにAAと数字の間は1スペース開いています。
AA 2,3,4,5;の1行だけをバッファリングすることが
できました。AAの文字のみを別の二次元配列に格納するにはどうすればよいか?
[3] 環境
 [3.1] OS: (Windows/Linux/等々)windows
 [3.2] コンパイラ名とバージョン:制限なし
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
2011年12月15日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
なし。 1次元配列に格納するところまではできたのですが、そこから先に進めないので、
お願いします。
473458:2011/12/11(日) 21:35:20.09
>>469
warningは出ますが実行ファイルは出来たので、./で実行しましたが何も起きません。
gets()を使わない方法を知っていたら教えてくれませんか?
474466:2011/12/11(日) 21:36:24.86
1]再起的関数
[2]10×10の二次元配列を用意し、□か■を適当に格納し■が上下左右に連続してマークされた要素の集まりを島と呼び島の個数を数える(関数の再起処理を使用)
#include<iostream>
#include<string>
using namespace std;
const int size_y=10;
const int size_x=10;
ここにプログラムを書く
int main()
{
string map[size_y][size_x]={
{" "," "," "," "," ","#"," "," ","#","#"},
{" "," "," "," "," "," ","#"," ","#","#"},
{" "," "," ","#","#","#"," ","#"," "," "},
{" "," ","#","#"," ","#"," "," "," "," "},
{" "," "," ","#"," "," ","#"," "," "," "},
{" "," "," "," "," "," "," "," "," ","#"},
{" "," "," "," ","#"," "," "," "," "," "},
{" "," ","#"," "," ","#"," "," "," ","#"},
{" "," ","#","#"," ","#"," "," "," ","#"},
{"#"," "," "," "," "," "," "," "," "," "}};
print_map(map);
ここにプログラムを書く
return 0;
}
ここにプログラムを書く
3] 環境
 [3.1] Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 2011年12月11日24時
[5] その他の制限: 標準ライブラリは使ってはいけない,再起関数までしか習っていない、
475デフォルトの名無しさん:2011/12/11(日) 21:42:05.65
>>472
2度手間になるから、できたところまでのソースくださいな
476デフォルトの名無しさん:2011/12/11(日) 21:52:09.40
>>473
実行時に説明文とか出力してないから実行しても何も動作してないように見えるが、
入力ファイル エンター
出力ファイル エンター

ってすれば最後まで処理走るよ、
文字列入力使わないってニュアンスでgets()以外の方法ってんなら、
後はmain()の引数argvにファイル名を持たせるとか、いっその事ファイル名もコードに決め打ちとか

まあ自分でprintf文で説明文埋め込んだりして使用者の事考えるのもいい勉強になるよ

477デフォルトの名無しさん:2011/12/11(日) 21:53:26.77
>>473
gets(in_file)

fgets(in_file, sizeof(in_file), stdin)
・・・まあテキトーにコト書いてて、試してないが。
478458:2011/12/11(日) 21:59:31.11
>>476
ありがとうございます。
10,15,20...とかだと上手く結果が出ません。
また、新しいファイルに書き込まれるものが、1,2,3,4,5,6,...とただ続くものになってしまいます。

新しいファイルには8×8の配列で書き込んで欲しかったのですが。
479デフォルトの名無しさん:2011/12/11(日) 22:05:07.17
>>474
おー、AOJでやったなぁ…どれどれ、問題0067だな( ´∀`)

>[5] その他の制限: 標準ライブラリは使ってはいけない

むちゃいいうなよ(´・ω・`)
480466:2011/12/11(日) 22:12:46.41
>>479
すいません標準ライブライの意味がよくわかりません。
ここにプログラムを書くの所を埋めるかんじです。
481432:2011/12/11(日) 22:18:52.45
>>451
それがpgmファイルの読み書きは習ってないんです
482デフォルトの名無しさん:2011/12/11(日) 22:30:55.07
>>432 こんなカンジのでえーのん?
ttp://loda.jp/kng311tt/?id=75
これはpngだけど。
483472:2011/12/11(日) 22:41:16.66
#include<stdio.h>
#include <string.h>
FILE *fp;
char buffer[1000];
char name[100][10];
char list[50];
int b,n1,n2,a1,a2,list;
int main(void){
if((fp=fopen("text.txt","r"))==NULL){
printf("error!\n");
exit(1);
}
n1=0;
n2=b;
while((buffer[b]=getc(fp))!=';'){
printf("%s",buffer);
}
for(b=0;b<1000;b++){
if(buffer[b]==' '){
b=b+1;
}
else{
strcpy(name[n1][n2],buffer[b]);
}}
printf("name:%s",name);
fclose(fp);
return 0;
}
484479:2011/12/11(日) 22:51:12.74
>>474,480
今日の24時までという大変厳しい条件ゆえ、
過去につくったものをそのまま流用したが、
問題あったら他にも作ってくれる人いるだろうからそっちを使ってね(´・ω・`)

http://codepad.org/yLSJHvP9
485デフォルトの名無しさん:2011/12/11(日) 23:11:28.45
/* >>472 >>483 できるだけ崩さずにやってみた */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
FILE *fp;
char buffer[1000];
char name[100][10];
int n1;
int main(void){
int i;
if((fp=fopen("text.txt","r"))==NULL){
printf("error!\n");
exit(1);
}
for (n1 = 0; fgets(buffer, sizeof(buffer), fp); n1++)
sscanf(buffer, "%s", name[n1]);
for (i = 0; i < n1; i++)
printf("name:%s\n",name[i]);
fclose(fp);
return 0;
}
486472:2011/12/11(日) 23:15:07.91
ありがとうございます。
487デフォルトの名無しさん:2011/12/11(日) 23:23:47.08
レナたん
http://www.lenna.org/full/l_hires.jpg
「Muirheadは、100ライン/インチの固定解像度を持っていたが、彼らは512×512イメージを望んだた
め、走査を画像のトップ5.12インチに制限したので、ちょうどモデルの肩で画像が切れてしまったとい
うわけさ」
「1997年のSociety for Imaging Science and Technology 50周年記念会議にゲストとして招かれた。
彼女はサインをし、写真撮影に応じ、自己紹介をするなど非常に多忙であった。」
「現在ストックホルム近郊にすみ、政府所有の酒専売店で働いている。彼女は結婚しており、3人の子
供たちがいる。」
488デフォルトの名無しさん:2011/12/11(日) 23:26:55.67
C++で、ファイルオープン使って画像ファイルを読み込むことはできますか?

コンソールアプリケーションで書いているんですが、無理ですかね??
489デフォルトの名無しさん:2011/12/11(日) 23:31:15.09
>>488
できるよ
jpeg とかは自分でデコードしようとすると大変だけど
490デフォルトの名無しさん:2011/12/11(日) 23:38:57.16
ああ、lennaタンか。lenaと勘違いをしてた(^^;;
画像ファイルを扱うのは既存のライブラリ使うのが楽そうですけどねぇ。
Cだったら日本語の説明でImageMagicの使い方とかありそう。

とか言いつつ、PNMのP2とP5の読み込み「だけ」できるの作ったけど。
エラーチェックが酷いので晒せないわ。

暇つぶしになりました。おやすみー。
491472:2011/12/12(月) 00:59:22.29
472のものですが、問題はname[n1][n2]という二次元配列に格納するプログラム
です。
name[n1]は1次元配列ではありませんか?
492デフォルトの名無しさん:2011/12/12(月) 01:00:12.38
>>490
もしかして16時ごろからやってた人?
まぁ、勉強になったならいいか
493デフォルトの名無しさん:2011/12/12(月) 01:15:21.10
>>491
for(i...の前にさ
printf("%c\n", name[0][0]);
ってのつけたしてみるとよいかもですね。
2次元配列中にちゃんと最初の文字入ってるでしょ?
494472:2011/12/12(月) 01:21:25.52
ありました。
ありがとうございます。
495デフォルトの名無しさん:2011/12/12(月) 04:40:06.25
496495:2011/12/12(月) 05:12:20.15
補足:一連の書き込みの人とは別人ですのであしからず。
497495:2011/12/12(月) 06:19:15.57
>>495
すまない。バグ有りだった。
ラプラシアンの分岐忘れ修正。ついでに全方向化。
http://ideone.com/6M17y
498デフォルトの名無しさん:2011/12/12(月) 07:21:26.25
民主党のマニフェスト

子供手当満額、公務員制度改革、最低時給1000円、消費税据置、高速道路無料化

小沢一郎 総理大臣なら全部やってくれるんじゃ!?!
499デフォルトの名無しさん:2011/12/12(月) 11:18:11.49
で、それがどうCの宿題として出題されたんだ?
500デフォルトの名無しさん:2011/12/12(月) 11:32:52.41
過去の発言、撤回の履歴から、今喋ってる事の信頼性を推定せよ、とかだったら有るかも。
政治学、社会学あたりかな。
501デフォルトの名無しさん:2011/12/12(月) 15:24:51.36
[1] 授業単元:配列とポインタ(アルゴリズム)
[2] 問題文(含コード&リンク):以下の実行例のように,文字列を入力すると,その前
後に"を付けた文字列を生成するプログラムを,ライブ
ラリ関数strcpy とstrcat を用いて作成せよ.ただし,
プログラムは以下の要件を満たすこととする
・ユーザに入力させる文字列を格納する配列をstr1[],前後に"を付けた文字列のための配列をstr2[] とする.
・ユーザに入力させる文字列は30 字までとする。
・配列str2[] は初期化せずに宣言し,ライブラリ関数strcpy とstrcat を使って(添字演算子[] を使わずに)前後に"を付けた文字列を生成すること.
  実行例.
文字列を入力してください:Tokyo
文字列の前後に"を付けました。
str2:"Tokyo"
 [3.1] OS: linux debian
 [3.2] コンパイラ名とバージョン: gcc4.3.2
 [3.3] 言語:C言語
[4] 期限: 12月13日 14時
[5] その他の制限:
502デフォルトの名無しさん:2011/12/12(月) 15:38:51.14
char str1[30+1];
char str2[30+1+2];

/* str1 入力処理略 */

strcpy(str2, "\"");
strcat(str2, str1);
strcat(str2, "\"");
printf("文字列の前後に\"を付けました。\nstr2:%s\n", str2);
503デフォルトの名無しさん:2011/12/12(月) 16:28:07.06
504デフォルトの名無しさん:2011/12/12(月) 19:05:02.15
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 0から16までの整数を2進数変数で表記した時,
2^2 の桁の値を表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 特になし あまり難しくない表記で

505デフォルトの名無しさん:2011/12/12(月) 19:15:36.38
printf("0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0\n");
506デフォルトの名無しさん:2011/12/12(月) 19:17:34.72
>>504
^ってCでは排他的論理和だが、ひょっとして意図は階乗?
507デフォルトの名無しさん:2011/12/12(月) 19:26:49.39
>>506
階乗のつもりでした、すみません。
508デフォルトの名無しさん:2011/12/12(月) 19:29:06.21
>>504,507
#include <stdio.h>

int
main()
{
int i;

printf("元の数¥t2^2 の桁の値¥n");
for(i=0; i<16; i++)
printf("%d¥t%d¥n",i,(i/4)%2);

return 0;
}
509デフォルトの名無しさん:2011/12/12(月) 19:37:04.18
>>508

どうもありがとうございます!
510デフォルトの名無しさん:2011/12/12(月) 20:10:16.24
【質問テンプレ】
[1] 授業単元:バケツソート(アルゴリズム)
[2] 問題文(含コード&リンク): http://codepad.org/04CeYgrq
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 12月15日
[5] その他の制限: リンク先のコードの訂正をお願いします。
511デフォルトの名無しさん:2011/12/12(月) 22:15:10.06
>>510
負の整数は考慮不要?
512デフォルトの名無しさん:2011/12/12(月) 22:25:57.66
511>>
はい。
正の整数のみで4桁目は1~9で始まる仮定でお願いします。
513デフォルトの名無しさん:2011/12/12(月) 22:39:48.38
>>501ですポインタでプログラム作成してください
おねがいします。
514デフォルトの名無しさん:2011/12/12(月) 23:33:25.09
515デフォルトの名無しさん:2011/12/12(月) 23:38:35.99
>>501,513
>>502ではないが、mainを付加した。

>>501ですポインタでプログラム作成してください
strcpy, strcatを使ったら、ポインターは不要だが?

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

int
main()
{
char str1[30+1];
char str2[30+1+2];

printf("文字列を入力してください:");
scanf("%s",str1);
strcpy(str2, "¥"");
strcat(str2, str1);
strcat(str2, "¥"");
printf("文字列の前後に¥"を付けました。¥nstr2:%s¥n", str2);

return 0;
}
516デフォルトの名無しさん:2011/12/12(月) 23:46:42.89
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://www1.axfc.net/uploader/Sc/so/300238
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2011年12月13日18:00まで
[5] その他の制限:できれば高度な記述ではなく簡単な記述をしていただけたら有難いです
517デフォルトの名無しさん:2011/12/12(月) 23:52:37.86
[1] 授業単元:誤差
[2] 問題文(含コード&リンク):
http://ideone.com/hdkMd
問題1と問題2の誤差は、それぞれ 桁あふれ、打切り誤差、丸め誤差、桁落ち、情報落ち
のうちどれか。
また、問題2については誤差がない場合に本来期待される演算結果との比較も行え。

[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: c
518デフォルトの名無しさん:2011/12/12(月) 23:57:15.63
519デフォルトの名無しさん:2011/12/13(火) 00:24:29.93
520デフォルトの名無しさん:2011/12/13(火) 02:04:50.62
>>510
R[i]の代わりに、Q[i][0]を使った参考バージョン。
http://ideone.com/m6Je0
521デフォルトの名無しさん:2011/12/13(火) 03:56:47.54
>>506-507
 スレチだが言っておく

 ^は普通べき乗を表す
 階乗は!と書く
522デフォルトの名無しさん:2011/12/13(火) 04:00:05.19
^がベキ乗とか!が階乗とかってBASIC文化っぽくて好きじゃない
523デフォルトの名無しさん:2011/12/13(火) 04:08:22.68
>>517
 オーバーフロー、アンダーフロー

 「桁あふれ」でいいんじゃね?

signed char v;
unsigned char w;
524デフォルトの名無しさん:2011/12/13(火) 04:08:36.97
>>522
アホか
525523:2011/12/13(火) 04:13:53.98
途中で送っちゃった

正しい結果との比較は
signed char v;
unsigned char w;
をint型で書き換えること。


なんか問題の意図がよくわからんなあ。
526デフォルトの名無しさん:2011/12/13(火) 23:19:48.68
[1] 授業単元:プログラミング言語T
[2] 問題文(含コード&リンク):m行n列のテキストファイル(1.txt)をそれぞれ二次元配列に入れ、その配列から新しいテキストファイル(2.txt)に1.txtと同じ内容を出力するようなプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 2008
 [3.3] 言語:C
[4] 期限:2011年12月14日
[5] その他の制限:制御文・入出力・配列・ポインタ程度しか習っていないため、
複雑な演算子や構造体などを用いないシンプルな記述でお願いします。
527デフォルトの名無しさん:2011/12/14(水) 01:12:32.19
>>525
wの誤差がない場合の本来の値は ー100,ー200,ー300ですか?
528デフォルトの名無しさん:2011/12/14(水) 03:25:56.62
>>526
m,nは画面から入力?
テキストの最大長は?
529デフォルトの名無しさん:2011/12/14(水) 14:09:06.76
>>526
何時まで?配列は整数? 区切り文字は? 配列の幅は固定?
仕様適当で「シンプルに」とか自分の要求まで入れて舐めてるの?
530デフォルトの名無しさん:2011/12/14(水) 15:03:11.00
>>529
> 配列は整数? 区切り文字は?
この疑問が出る時点で想定してる内容と異なるものだろうと予測。

多分ただのテキストファイルだよ。
531デフォルトの名無しさん:2011/12/14(水) 15:10:06.62
>>530
何言ってるんだお前は。デリミタ無かったらバイナリだろ。
532デフォルトの名無しさん:2011/12/14(水) 15:11:43.33
>>526
http://ideone.com/ngLgv
設定と入力のお好きな方をどうぞ
533デフォルトの名無しさん:2011/12/14(水) 15:16:49.07
空白区切りもただのテキスト?
534デフォルトの名無しさん:2011/12/14(水) 15:34:12.23
>>526
n文字の文字列がm個?
それとも、ある程度の長さの文字列がm*n個?
535デフォルトの名無しさん:2011/12/14(水) 17:45:27.28
>>514 >>520

回答ありがとうございました。
剰余算とポインタがいまひとつわかりませんが、
自分なりに考えて見ます。
536デフォルトの名無しさん:2011/12/14(水) 20:26:23.29
>>535
>剰余算とポインタがいまひとつわかりませんが、

例:数値4567から、
1回目:7を得たい ← (4567/1)%10 = 4567%10 = 7
2回目:6を得たい ← (4567/10)%10 = 456%10 = 6
3回目:5を得たい ← (4567/100)%10 = 45%10 = 5
4回目:4を得たい ← (4567/1000)%10 = 4%10 = 4

上記式中の、/1、/10、/100、/1000を、/xとして
int x=1;

ループ{
...
x*=10;
....
}
537デフォルトの名無しさん:2011/12/14(水) 20:36:25.21
>>535
>ポインタ
520で、Q[i]は
Q[i][0] ← R[i}の代わり。
Q[i][1〜31]にはデータが入る。

QをLIFOにしたため、F[i]が不要になった。
538 ◆QZaw55cn4c :2011/12/14(水) 21:14:56.22
>>532
>if( x < n ){ fprintf(fp," ");
この文、意図どおりに動いているか? x < n - 1 では?

>return (-1);
なぜ括弧でくくる?

>fprintf(fp," ");
>fprintf(fp,"\n");
fputc() を使いたい。
539デフォルトの名無しさん:2011/12/14(水) 21:39:42.41
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4940
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 2011年12月16日

よろしくお願いします。
540デフォルトの名無しさん:2011/12/14(水) 21:41:34.80
>>538
>>if( x < n ){ fprintf(fp," ");
>この文、意図どおりに動いているか? x < n - 1 では?
これは確かにそうですね。修正しました。どうもです。
http://ideone.com/L3AXc

>なぜ括弧でくくる?
見やすいと思いまして。

>fputc() を使いたい。
そうですか。
541デフォルトの名無しさん:2011/12/14(水) 21:48:10.07
>>539
むしろその掲示板ってどっからたどり着くの?
542デフォルトの名無しさん:2011/12/14(水) 21:51:29.81
>>388をお願いできませんでしょうか
分散などはOpenCV自体の関数だけで事足りるので大丈夫だったのですが
直接画素を触らなければならない最頻値などがどうにもうまくいきません
543デフォルトの名無しさん:2011/12/14(水) 22:33:16.04
>>542
画素はRGB24bit?
544デフォルトの名無しさん:2011/12/14(水) 23:45:44.91
>>543
はい、その通りです
予めビットマップとして取得してあります
545デフォルトの名無しさん:2011/12/14(水) 23:48:10.90
[1] 授業単元:C++
[2] 問題文:キーボードから元金、返済回数(月数)、利率(年利)を入力し、元金均等払いの1回から指定回数までの支払額、利息、残高を表示する。
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/268.pdf
[3] 環境
 [3.1] OS:(Windows
 [3.2] コンパイラ名とバージョン:VC2010
 [3.3] 言語: C++
[4] 期限: 12月16日

pdfで大変申し訳ないんですがよろしくお願いします。
546デフォルトの名無しさん:2011/12/15(木) 00:09:18.74
>>545
アクセスが許可されていません。 
以下の理由が考えられます。
・外部から直接呼び出された場合
・リファラーが返されていない場合
・indexファイルが存在していない場合
・適切なパーミッション(属性)が与えられていない場合
9秒後に、自動的に 無料でEタウン に戻ります。


Sorry, Access is not admitted.
The following reasons are thought about.
.When there is not an index file
.When it was called directly by the outside
.When appropriate access permission (an attribute) is not given
547デフォルトの名無しさん:2011/12/15(木) 00:10:54.13
548デフォルトの名無しさん:2011/12/15(木) 00:14:52.72
法政のやつかな
申し訳ないと思うならそれくらい手打ちしたらどうだ
549デフォルトの名無しさん:2011/12/15(木) 00:28:02.99
550545:2011/12/15(木) 00:32:34.16
pdfの中身を打つと


元金?20000
回数(月数)?15
利率(%)?5
回数 支 払 額  利  息   残  高
1 14171 833 186662
2 14110 777 173329
3
4
5
6
7 ・ ・ ・
8 ・ ・ ・
9 ・ ・ ・
10
11
12
13
14
15    0
合計 206659     6659

続行するには何かキーを押してください


こんな感じのプログラムを作る課題がでました

.>>548
法政です!びっくりしました
551デフォルトの名無しさん:2011/12/15(木) 00:57:13.83
>>545
法律上の計算はわからん。
http://ideone.com/4x8Bg
552デフォルトの名無しさん:2011/12/15(木) 01:02:09.98
>>551
うおおおありがとうございます!!!!
553デフォルトの名無しさん:2011/12/15(木) 01:16:39.78
>>547
ありがとうございます!助かりました。
554デフォルトの名無しさん:2011/12/15(木) 01:51:51.45
>>544
ゴリ押しでならどういう手順の処理かは分かるけど、
さすがにCは面倒すぎだわ。
555デフォルトの名無しさん:2011/12/15(木) 03:32:37.59
総相 川端達夫 帰化人。 在日韓国人法的地位向上議員連盟
法相 平岡秀夫 帰化人。 在日韓国人法的地位向上議員連盟
文科相 中川正春 在日韓国人法的地位向上議員連盟
厚労相 小宮山洋子 帰化人。 在日韓国人法的地位向上議員連盟 自身の選挙区の太平建設と談合
国家戦略相 古川元久 パチンコ協会政治アドバイザー
556デフォルトの名無しさん:2011/12/15(木) 11:20:28.26
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
氏名、体重、身長の入力を受けつけ、ファイル
に書き込むプログラムをかけ。
[3] 環境
 [3.1] Windows
 [3.2] visual C++2005
[3.3] C
[4] 2011/12/22
557デフォルトの名無しさん:2011/12/15(木) 12:47:30.20
>>556
入力の形式と出力ファイルの形式は?
558デフォルトの名無しさん:2011/12/15(木) 12:51:04.82
適当に決めてもらっていいです
559デフォルトの名無しさん:2011/12/15(木) 15:29:21.33
560デフォルトの名無しさん:2011/12/15(木) 18:51:53.83
561デフォルトの名無しさん:2011/12/15(木) 23:25:23.59
>>559
ありがとうございました!
562デフォルトの名無しさん:2011/12/16(金) 11:15:59.57
[1] プログラミング実習応用
[2] ファイル"tmp.csv"を入力ファイルとして、座標(x,y)の組を終端まで読み込み、
x,yそれぞれの平均値(重心)を計算して、画面上に表示するプログラムを作成せよ
□"tmp.csv"は「関数y=x^3-xのグラフを描くため、定義域[-2,2]に対するyの値を0.1刻みで計算し、
結果をファイルに出力する」というプログラムで作ったファイルで、もう用意してあります。
□コンパイラの標準外の仕様による異常終了を避けるため、変数の宣言部分にダミーの変数を追加する。例えば、"double dummy=0.0;"(変数名や値は変えてよい)
[3] 環境
 [3.1] Windows7
 [3.2] VC2010
 [3.3] C
[4] 2011年12月16日22:00まで

よろしくお願いします
563デフォルトの名無しさん:2011/12/16(金) 13:06:08.01
VC2010にそんなバグがあんの?
564デフォルトの名無しさん:2011/12/16(金) 19:03:13.02
>562
tmp.csvのうpよろ。
565デフォルトの名無しさん:2011/12/16(金) 19:14:05.76
異常終了の原因は
配列の領域外をアクセスしたか
初期化していないポインタを使ってるんだろう
566デフォルトの名無しさん:2011/12/16(金) 19:23:58.88
誰か俺にダミー変数の必要性を教えてくれ
567デフォルトの名無しさん:2011/12/16(金) 19:38:49.98
>>566
ソースコードをパクられても決まった手順、コンパイラ、オプションでないと使えないようにできる
568>>562:2011/12/16(金) 20:53:12.61
>>564
遅れてすいません
多少期限すぎても大丈夫です
あと//で軽い説明・解説つけてくれると嬉しいです

#include<stdio.h>
double f(double x){
return x*x*x - x;
}
int main(){
FILE *fp;
double x;
fp = fopen("tmp.csv","w");
if (fp == NULL){
printf("File creation error.\n");
return -1;
}
for (x=-2.0; x<=2.0; x+=0.1){
fprintf(fp, "%lg,%lg\n",x,f(x));
}
fclose(fp);
return 0;
}
569デフォルトの名無しさん:2011/12/16(金) 21:50:02.71
>>568
> コンパイラの標準外の仕様による異常終了
どゆこと?

#include<stdio.h>

int main(){
FILE *fp;
int count = 0;
double sum[2] = {0,0}, value[2] = {0,0};

fp = fopen("tmp.csv","r");
if (fp == NULL){
printf("File open error.\n");
return -1;
}
while( fscanf(fp,"%lg,%lg\n",&value[0],&value[1]) == 2 ){
sum[0] = sum[0] + value[0];
sum[1] = sum[1] + value[1];
count++;
}
printf("%lg,%lg\n",sum[0]/count,sum[1]/count);

}
fclose(fp);
return 0;
}
570デフォルトの名無しさん:2011/12/16(金) 21:51:31.40
括弧多かった。

int main(){
FILE *fp;
int count = 0;
double sum[2] = {0,0}, value[2] = {0,0};

fp = fopen("tmp.csv","r");
if (fp == NULL){
printf("File open error.\n");
return -1;
}
while( fscanf(fp,"%lg,%lg\n",&value[0],&value[1]) == 2 ){
sum[0] = sum[0] + value[0];
sum[1] = sum[1] + value[1];
count++;
}
fclose(fp);
printf("%lg,%lg\n",sum[0]/count,sum[1]/count);
return 0;
}
571デフォルトの名無しさん:2011/12/16(金) 22:07:52.71
>568
俺の環境だとx=2のときの出力がないから、
#define EPS 1e-9
とかして、
for(x=-2.0-EPS; x<=2.0+EPS; x+=0.1)
ってやった方がいいんじゃないかなあ。
最善策かどうかは分かんないけど。
572デフォルトの名無しさん:2011/12/16(金) 22:12:52.04
>>569
ありがとうございます

多分それはあんま関係ないです…
重心って0,0じゃなくてもいいのですか?
573デフォルトの名無しさん:2011/12/16(金) 22:13:55.57
>>571
ループさせたい回数が決まってるなら普通は int を使う
574デフォルトの名無しさん:2011/12/16(金) 22:19:53.18
>>571
今みたら俺がつくったtmpのエクセルにもX=2がありませんでした
でも俺のエクセルでもX=2がでないってことは俺のもそういう仕様ってことですか?
575571:2011/12/16(金) 22:26:22.39
>574
いや、>573が良いことを言ってる。

#include<stdio.h>
double f(double x){
return x*x*x - x;
}
int main(){
FILE *fp;
int xx;
fp = fopen("tmp.csv", "w");
if(fp == NULL) {
printf("File creation error.\n");
return -1;
}
for(xx=-20; xx<=20; xx++) {
fprintf(fp, "%lg,%lg\n", xx/10., f(xx/10.));
}
fclose(fp);
return 0;
}
576デフォルトの名無しさん:2011/12/16(金) 22:45:45.98
ありがとうございました(^-^)
577デフォルトの名無しさん:2011/12/16(金) 23:03:40.39
>>560
ありがとうございます、非常に助かります
578デフォルトの名無しさん:2011/12/17(土) 01:50:08.39
こういう書き方をしても問題無いでしょうか?
if(num>0 && Aray[num-1]=="hoge")

もしnumが0だった場合Aray[num-1]は存在しないのですが。
579デフォルトの名無しさん:2011/12/17(土) 02:01:09.30
>>578
if(num) だけでいい。
580デフォルトの名無しさん:2011/12/17(土) 02:03:47.97
>>579
num = -1 とかで困る。
581デフォルトの名無しさん:2011/12/17(土) 02:10:30.21
>>578
1.num>0 を先にチェックするから概ねokだが念のため上限チェックもした方がいい。
2.Aray[num-1]=="hoge" ではなく、strcmpな。
3.コンパイルエラーが無いソースで質問してくれ。

#include <stdio.h>
#include <string.h>
int main(){
int num = 0;
char Aray[10][10];

if (num > 0 && num < 10 && strcmp(Aray[num - 1], "hoge")) {
printf("%p¥n", Aray[0]);
printf("%p¥n", Aray[-1]);
}
return 0;
}
582デフォルトの名無しさん:2011/12/17(土) 02:30:50.10
C++の string なんじゃねぇの?
583デフォルトの名無しさん:2011/12/17(土) 02:34:39.14
>>580
そうだった、すまん。
584デフォルトの名無しさん:2011/12/17(土) 08:39:12.36
>>582
それか、(めったにないけど) ポインタ値そのものを比較したいのかもしれない。
585デフォルトの名無しさん:2011/12/17(土) 11:16:28.97
有り得んわ、"hoge" のアドレスには何の意味も無いもん
586デフォルトの名無しさん:2011/12/17(土) 11:20:23.85
>>584
ポインタ値の比較は普通にやる事だし、
ポインタと文字列リテラルの比較はありえない。
587デフォルトの名無しさん:2011/12/17(土) 12:04:18.03
コンパイラにリテラルがまとめられて同じアドレスになるのを確かめるプログラムかもしれないだろ
588デフォルトの名無しさん:2011/12/17(土) 14:19:03.31
[1] 授業単元:計算機アルゴリズムT
[2] 問題文(含コード&リンク):
設問1-1
大域変数x,yは初期値が0.0に自動的に設定されるが、局所変数a,bはそうではないことを確かめるために、
プログラム例10.4.1とプログラム例11.3.1に適当なprintf文を挿入しなさい。
プログラム例10.4.1
ttp://www.dotup.org/uploda/www.dotup.org2390035.txt.html

プログラム例11.3.1
ttp://www.dotup.org/uploda/www.dotup.org2390042.txt.html

設問1-2
プログラム例11.3.1を、大域変数を使わずに局所変数と引数によるデータの引渡しを使うプログラムに書換えなさい。
プログラム例11.3.1
ttp://www.dotup.org/uploda/www.dotup.org2390042.txt.html
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C
[4] 期限:[2011年12月21日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
            繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
            条件分岐if文、要素番号idx使用の書換、データの入れ替え
            条件分岐・論理演算子を用いたif文の条件、if文、else if文
            switch文、ポインタ変数・演算子*と&、関数・プロトタイプ宣言と関数定義
            引数と戻り値、関数の引数とポインタ、関数に配列を渡し、呼び出し側へ戻す方法
            関数から関数を呼び出す方法、大域(global)変数、局所(local)変数は習いました。
宜しくお願いします。
589デフォルトの名無しさん:2011/12/17(土) 16:06:27.91
全部習っててワロタ
日本語が理解できなくて困ってんのかな
590589:2011/12/17(土) 16:11:59.94
>>588
1-1 結果は環境依存
http://ideone.com/2mtbx
1-2
http://ideone.com/3F1gO
591デフォルトの名無しさん:2011/12/17(土) 17:27:13.91
>>590
設問1-1のプログラム例11.3.1の方もお願いします。
592589:2011/12/17(土) 17:41:35.98
やめちまえ
593デフォルトの名無しさん:2011/12/17(土) 17:50:29.59
>>592
そこを何とかお願いします
594デフォルトの名無しさん:2011/12/17(土) 18:06:00.28
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):0.123,1,12,150...と続く「1.txt」と6,13,25,10...と続く「2.txt」がある。
1.txtの数値を2.txtの数値で割り、小数点第一位で切り捨てし、3.txtに結果を書き込むプログラムを作りなさい。
[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc4.3.2
 [3.3] 言語: C言語のみ
[4] 期限: 12月19日14時
[5] その他の制限: 特にありません。
595デフォルトの名無しさん:2011/12/17(土) 18:14:04.22
>594
0割りの考慮は要る?
596594:2011/12/17(土) 18:21:58.53
>>595
すみません。
0割りの考慮って何ですか?
597デフォルトの名無しさん:2011/12/17(土) 18:25:21.61
>>596
1÷0はいくらだ?
598デフォルトの名無しさん:2011/12/17(土) 18:59:18.80
>>587
そういうのって割りと何度か確かめるよなw
599デフォルトの名無しさん :2011/12/17(土) 19:14:34.84
>>594
あのな数値を0でわれば∞になるだろ?
知らんのか?
高校で習ったろ?
600デフォルトの名無しさん:2011/12/17(土) 19:59:49.58
>>599
>あのな数値を0でわれば∞になるだろ?

ならないし。
601デフォルトの名無しさん:2011/12/17(土) 20:25:13.24
0で割った解は定義できない
C言語的には例えば浮動小数点ならNaNか無限大の特殊な数になる
602デフォルトの名無しさん:2011/12/17(土) 20:32:58.55
>あのな数値を0でわれば∞になるだろ?

さすがIT土方wwwwwwwwwwwwww
603599 :2011/12/17(土) 20:36:31.61
>>600
数学的には∞として、扱うだろ
1/0.1=10 1/0.01=100 1/0.001=1000 ・・・
x/0 ≒ ∞
604 ◆QZaw55cn4c :2011/12/17(土) 20:46:24.17
>>603
扱わない。
0×a = 1 をみたす a は「存在しない」というのが正確だ。
数列の極限の状態をもって、実存するひとつの数であるかのように扱ったり代表させたりすることは、「普通は」しない。
ε-δでぐぐれ。
605599 :2011/12/17(土) 21:22:55.99
>>604
ググってみました。
なるほどね。
ε-δ 論法なんて、三流大学の電気電子
工学科では、おじさん習わなかった。
数学、物理がすきなおじさんには、良いことを
教えてもらった。
606デフォルトの名無しさん:2011/12/17(土) 22:24:44.90
0除算が数学的に未定義なのは大学出てるならまず知ってる事。
ただ基本的にプログラミングでは無限大って考えでいい。
型安全?の実装的にInifinityで扱う処理系もあるから。
607デフォルトの名無しさん:2011/12/17(土) 22:29:16.88
例えば?
608デフォルトの名無しさん:2011/12/17(土) 22:31:17.59
>>606
>ただ基本的にプログラミングでは無限大って考えでいい。

だめだろ。

>型安全?の実装的にInifinityで扱う処理系もあるから。

浮動小数点はいざ知らず、整数で無限大なんて扱える処理系あるのか?
609デフォルトの名無しさん:2011/12/17(土) 22:35:07.42
>>608
こういうJavaしか知らない馬鹿がよく釣れます。
610デフォルトの名無しさん:2011/12/17(土) 22:42:44.09
>>607 >>608
JavaScript

>浮動小数点はいざ知らず
あるじゃん。
611デフォルトの名無しさん:2011/12/17(土) 22:46:31.39
まさかこのスレで

JavaScript キリ!

なんてレス返す馬鹿がいるとは思わなかったよ。
612デフォルトの名無しさん:2011/12/17(土) 22:47:15.37
>>611
ほらねw反例を提示できたのに馬鹿にするw
その程度の知識なんですよお前らなんてw
613デフォルトの名無しさん:2011/12/17(土) 22:54:14.78
はいはい、わかったから巣に帰れよ。
614デフォルトの名無しさん:2011/12/17(土) 23:01:13.10
浮動小数点数演算だと無限大になるよって言ってる時点で、
本来はおかしいことだって気づけ。
615デフォルトの名無しさん:2011/12/17(土) 23:06:07.09
そんなもんとうにわかってると思うが、いまさらなに言ってるんだ?
616デフォルトの名無しさん:2011/12/17(土) 23:09:40.54
人を馬鹿にしてんだからこっちも馬鹿にするね。
JavaScriptすら知らない馬鹿w
617デフォルトの名無しさん:2011/12/17(土) 23:32:47.19
どなたか>>588の設問1-1のプログラム例11.3.1の方をお願いします。
618デフォルトの名無しさん:2011/12/18(日) 00:13:08.10
windowsなら0除算はハードウェア例外で落ちるだろ
619デフォルトの名無しさん:2011/12/18(日) 02:56:30.97
620599 :2011/12/18(日) 03:06:36.68
>>588
確認て言っても、イニシャライズされてないものを
扱うとデバッグでエラーでるからな〜・・・
621594:2011/12/18(日) 03:44:24.98
遅くなってすみません。
1÷0は0でおねがいします。
622デフォルトの名無しさん:2011/12/18(日) 04:45:23.93
>>603
極限としてはそう。
高校数学だけど、x->+0 x->-0という表記に記憶は?
ただし、0で割ることはアウト。これはイコールじゃないんよ。
623599 :2011/12/18(日) 07:39:30.12
>>622
あー、あったねプラス側からとマイナス側からとのね
おじさん34歳だから、だいぶわすれてんだよ
624 ◆QZaw55cn4c :2011/12/18(日) 08:18:43.15
>>623
34でおじさんといわれてもこまってしまうのですが、はっ、hexですか‥‥
625:デフォルトの名無しさん:2011/12/18(日) 08:58:29.34
[1] 授業単元:アルゴリズム(構造体)
[2] 問題文(含コード&リンク):メンバとして学籍番号("C0110999"のような文字列) ,5 科目の点数(int 型整数の配列) ,平均点(double 型)をもつ構造体score を宣言し,score 型
構造体へのポインタsc を引数としてメンバの値を設定する関数void set_score_and_calc_ave(struct score *sc)を作成しプログラムを完成させよ。
 ただし,構造体score と関数set_score_and_calc_ave については以下の要件を満たようにせよ。
[以下の要件]
・構造体の宣言において,5 科目の点数のメンバは5つのメンバを用意するのではなく,1 つのint 型配列とすること。
・平均点のメンバについては,入力された5 科目の点数から関数set_score_and_calc_ave 内で平均点を計算して設定すること
・関数set_score_and_calc_ave 内で,ユーザに学籍番号と5 科目の点数を入力させること.その際,0〜100 の範囲の点数が入力されたかどうかのチェックも行わせる。
以下の実行例のように関数の動作を確認できるmain関数も作成せよ
[実行例]:
    学籍番号を入力してください:A12557
5 科目の点数(0〜100)を入力してください。
科目1 の点数:101
0 以上100 以下の点数を入力してください:-1
0 以上100 以下の点数を入力してください:0
科目2 の点数:100
科目3 の点数:88
科目4 の点数:77
科目5 の点数:66
データを設定しました。
学籍番号:A12557 平均点:66.2 点
科目1: 0 点
科目2:100 点
科目3: 88 点
科目4: 77 点
科目5: 66 点

626:デフォルトの名無しさん:2011/12/18(日) 08:59:04.05
>>625続き
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2011年12月19日18:00まで
[5] その他の制限:できれば高度な記述ではなく簡単な記述をしていただけたら有難いです平均点のメンバについては,入力された5 科目の
点数から関数set_score_and_calc_ave 内で平均
点を計算して設定すること
627599 :2011/12/18(日) 09:33:08.54
>>624
ちゃうわ!
628デフォルトの名無しさん :2011/12/18(日) 09:39:35.16
>>625の問題
誰かやってやれよ
しょっちゅう名前と五科目の点数と平均関係の
問題見るし、もう俺何回もこの関係のやつ
アップしたし。
めんどくせ
629デフォルトの名無しさん:2011/12/18(日) 09:52:28.87
>>616
>JavaScriptすら知らない馬鹿w

かわいそうに…
知っててもスレ違いのところには書かないという、普通の対応もできないんだな。
630デフォルトの名無しさん:2011/12/18(日) 11:01:22.58
>>625
void set_score_and_calc_ave(struct score *sc, int* ponits) じゃないのか?
関数名から推測しただけだけど
631デフォルトの名無しさん:2011/12/18(日) 12:26:19.11

7月の段階で民主党が2兆円の復興予算を組んだとき
自民党が要請した復興予算は累計17兆円

自民党の17兆が7月時点でに決定されていたのなら
今の日本はもう少し違って居た筈だ
ちなみに関東大震災のときは復興予算として現在の価値にして150兆円以上を組んでいた。
この事実を知れば、予算の規模の小ささ、ましてや増税なんて奇知涯にも程があると思わざる負えない。
632デフォルトの名無しさん:2011/12/18(日) 12:29:31.25
で、それがどうC/C++の宿題として出されたんだよ
633 ◆QZaw55cn4c :2011/12/18(日) 13:26:55.49
634594:2011/12/18(日) 13:48:10.82
どなたか、>>594お願いします。
635デフォルトの名無しさん :2011/12/18(日) 14:42:06.65
>>594
じゃぁ、その1.txtと2.txtを作って。
話はそれからだ。
636594:2011/12/18(日) 14:57:46.17
637デフォルトの名無しさん :2011/12/18(日) 15:04:52.90
>>594
>>636
ウィルスバスタークラウド2012が
「このページは見んな」ってブロックした。
まともなところに上げなさい。
638594:2011/12/18(日) 15:09:26.88
>>637
テンプレに載ってたところなんですけど、他にどこがいいんでしょうか?
639デフォルトの名無しさん :2011/12/18(日) 15:14:55.30
>>594
http://codepad.org/でPlain Textえらんで
ファイル内容コピペすればいいじゃん
640デフォルトの名無しさん :2011/12/18(日) 15:18:38.13
>>594
俺が、見ようっと
641594:2011/12/18(日) 15:20:07.79
>>639
ありがとうございます。
これでいいですか?

http://codepad.org/HOnlcBse 1.txt
http://codepad.org/bq33JDAv 2.txt

642 ◆QZaw55cn4c :2011/12/18(日) 15:39:26.21
>>594
http://codepad.org/NrxBdKKX
codepad ではなぜ segmented violation が出るのだろう?
643 ◆QZaw55cn4c :2011/12/18(日) 15:41:32.21
>>594
0割り対策追加
http://codepad.org/jq1PGPNv
644 ◆QZaw55cn4c :2011/12/18(日) 15:49:08.84
645622:2011/12/18(日) 15:52:09.65
>>623
同い年なんだけど。
646デフォルトの名無しさん :2011/12/18(日) 16:10:45.31
647646:2011/12/18(日) 16:26:49.70
>>622
いや、もう俺の脳みそつるつるだから
648594:2011/12/18(日) 16:49:59.57
>>646
ありがとうございます。
すみませんが、1.txt 2.txt 3.txtなど読み込み、書きこみファイルを自分で自由に選択して使えるようにしてくれませんか?
649デフォルトの名無しさん:2011/12/18(日) 17:14:41.67
>648
>1を100回読め。
650646:2011/12/18(日) 17:19:40.44
>>648
http://codepad.org/oqK1nXXp
これで良いの?
他にも方法はあるけど、めんどうなので、これで。
651594:2011/12/18(日) 18:17:09.69
>>650
ありがとうございます。
652:デフォルトの名無しさん:2011/12/18(日) 18:34:53.17
>>625ですもう少し
簡単なソースコードお願いします
スミマセン作ってもらったのに
653デフォルトの名無しさん:2011/12/18(日) 19:17:48.65
654デフォルトの名無しさん:2011/12/18(日) 19:19:34.98
あいかわらずQは自己満足のみを追求してるな

>>625,652
ttp://codepad.org/uE8dXT00
655622:2011/12/18(日) 19:32:41.70
宿題の回答をするということを理解していないよね
656デフォルトの名無しさん:2011/12/18(日) 19:36:26.17
ガン無視よりはマシだけど、仕様を満たせない時点で意味はないな。
657デフォルトの名無しさん:2011/12/18(日) 20:17:32.01
いや、ガン無視の方がマシ。
あれを読まされることはデメリット
658デフォルトの名無しさん:2011/12/18(日) 20:31:49.44
自分が作りますって流れにしておいて、途中で投げ出す奴が一番最悪。
あいつも完全に自己愛だわ。
659デフォルトの名無しさん:2011/12/18(日) 20:37:38.13
それも自己愛なん?ただのいたずらか、説明することによって理解するということを期待したレスかと思っていた。
自己愛って言葉はこのスレで恐ろしいほどの回数見たけどよくわからないまま。
660デフォルトの名無しさん:2011/12/18(日) 20:45:15.99
>>659
自分も含め自己愛という言葉をレッテル張りに使う奴は自己愛。
軽い気持ちで調べるのはやめとけ。まじめな奴ほど精神病むから。
661デフォルトの名無しさん:2011/12/18(日) 20:58:36.40
責任云々が間違ってるんよ、
問題が出てきてやりたい奴がやるってスタイルでOK
662デフォルトの名無しさん:2011/12/18(日) 21:10:52.52
基本はそれでいいと思うけど、
裏に同時並行で作ってる奴がいるかもしれないって事は考えてほしい。
663 ◆QZaw55cn4c :2011/12/18(日) 21:11:43.69
>>654
(^^;;;; 楽しくないとね。

>>656
仕様が満たせてないのですか?

>>660
その点はご心配なくー。
664 ◆QZaw55cn4c :2011/12/18(日) 21:13:36.87
>>662
別に複数が作ってたからってそれぞれが回答して問題ないし、私に限っていえば複数の解が出てくるほうが楽しいのですが。
665デフォルトの名無しさん:2011/12/18(日) 21:15:57.17
なるほどね。その場のコンセンサスなんて考えるなと。
そりゃ仕様が満たせないわけだ。
666 ◆QZaw55cn4c :2011/12/18(日) 21:29:35.22
>>665
え?どの仕様が満たせてなかったのですか?具体的に。

>その場のコンセンサスなんて考えるなと。
先に解けた人がどんどんコードを提示すればいいだけだと思いますが。
667デフォルトの名無しさん:2011/12/18(日) 22:14:32.23
>>666
まじめにレスしようと推敲してたけど、
会話不能になるのが目に見えてるのでこれで終わりね。

668 ◆QZaw55cn4c :2011/12/18(日) 22:32:36.62
>>667
それは残念。でも仕様が満たせていないというのは、こちらでは確認できていません。
もしよろしければ、キーワードだけでも。
669デフォルトの名無しさん:2011/12/18(日) 22:44:30.62
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 文字列HeLLo中の文字について、大文字は小文字に
               小文字は大文字に変換せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 12月20日まで
[5] その他の制限:標準ライブラリは使ってはいけない

670デフォルトの名無しさん:2011/12/18(日) 23:07:23.88
#include <stdio.h>

char *lowerupper2upperlower(char *s)
{
char *t;
for (t = s; *t; t++) {
if (*t >= 'A' && *t <= 'Z') {
*t = *t - 'A' + 'a';
} else if (*t >= 'a' && *t <= 'z') {
*t = *t - 'a' + 'A';
}

}
return s;
}

int main(void)
{
char s[] = "HeLLo";
printf("before: %s\n", s);
lowerupper2upperlower(s);
printf("after: %s\n", s);
return 0;
}
671 ◆QZaw55cn4c :2011/12/18(日) 23:08:57.85
672デフォルトの名無しさん:2011/12/18(日) 23:11:55.81
はっはっは。ほぼ同じコードだな。
673デフォルトの名無しさん:2011/12/18(日) 23:46:28.46
Qが使う xmalloc() って嫌がらせだよな
あれを見ただけで他人のコードだってすぐ判る
パクリがばれて講師に叱られる出題者を想像して満足してるんだろうな
674デフォルトの名無しさん:2011/12/18(日) 23:49:55.99
ぼくの先生はネットから引用おkだから大丈夫ですwwwwwwwwwwww
675 ◆QZaw55cn4c :2011/12/18(日) 23:54:49.79
>>672
ですねえ。タッチの差で残念。
676デフォルトの名無しさん:2011/12/18(日) 23:57:15.53
え?マジで言ってのこいつ?
しかもコピペ間違えてるのに。
677 ◆QZaw55cn4c :2011/12/18(日) 23:57:51.54
>>673
debug コード含みの malloc()/free()/realloc() なんですが(以前内容を全部晒したことがあったはずです)、そうですね、今後は余力があれば確認後に書き直すように努めましょう。
678 ◆QZaw55cn4c :2011/12/18(日) 23:58:43.18
>>676
え?動作に問題ありますか?
679デフォルトの名無しさん:2011/12/19(月) 00:03:25.23
人のコードを勝手にコピペすることに何にも感じないの?
しかもさらっと自分のもののようなレスまで付けて。
680デフォルトの名無しさん:2011/12/19(月) 00:03:26.11
今までQZaw55cn4cの事をキモイおっさんだと思って透明あぼんしててごめんよ(´・ω・`)
681 ◆QZaw55cn4c :2011/12/19(月) 00:28:45.27
>>679
>>663
コピペが楽しいなんて考えたこともないのですけれども‥‥
682デフォルトの名無しさん:2011/12/19(月) 00:30:52.57
wikiのほーにある程度のライブラリ登録するべきだろうか・・・・
683デフォルトの名無しさん:2011/12/19(月) 00:59:53.12
684デフォルトの名無しさん:2011/12/19(月) 01:11:32.94
Qは愉快なパクリおっさんだろ
しかもこれで金を取ろうとしてるんだからあまりの厚顔無恥さに呆れる
イ・ミョンバクみたいだよな
685デフォルトの名無しさん:2011/12/19(月) 03:31:41.36
>>677
ちゅか宿題レベルににリークチェックの埋め込みが必要かって思うぞ
686デフォルトの名無しさん:2011/12/19(月) 03:49:36.58
宿題の回答を作成する段ではリークチェックは必要だけど、提出するときには消しておいたほうが無難。
宿題レベルだからこそ、消す。仕事かつ有意義なものであれば残す。
687デフォルトの名無しさん:2011/12/19(月) 06:17:48.72
すぐに終了するコードでfreeするとか…。
688 ◆QZaw55cn4c :2011/12/19(月) 07:53:53.61
>>685-686
アマチュアだから‥‥いくら分量が大したことなくても、リークチェックしないコードをさらっと書く自信がないんです。でもけしときます、余力があれば。
>>687
自分で自分のロジックを発散させてしまうタイプだから‥‥free() をきちんと書いてロジックの乱れをきちっと抑えておこうという意図ではあります。
>>684
金じゃありませんモリタポかもしれませんが
689デフォルトの名無しさん:2011/12/19(月) 09:23:44.57
>>686
同意、コードの正当性は大事だが
学生の宿題用なんだから出題に対して素直に分かりやすく書くのが一番
690689:2011/12/19(月) 09:26:43.53
一応付けくわえると、
メモリ解放や、0・NULL・\0を同一に扱ったり、真偽値を0と1の正数値として扱ったりと、
実質同じだが意味的におかしいコードもやっちゃいけないな、これは宿題スレだけでは無いが
691689:2011/12/19(月) 09:27:20.77
× メモリ解放や
○ メモリ解放をしないや
692デフォルトの名無しさん:2011/12/19(月) 09:46:00.50
そう思うならテンプレに入れたら?
693デフォルトの名無しさん:2011/12/19(月) 09:46:11.76
実質同じならいいだろ
等価ってそういうもんだ
694デフォルトの名無しさん:2011/12/19(月) 10:14:15.46
>>687
同意w 実行後結果をすぐ返すようなプログラムで執拗にfree書いているのは、
freeする意味をきっと勘違いしてるんだろうな、と分かる。
695デフォルトの名無しさん:2011/12/19(月) 12:20:35.37
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):二次元配列"abcd"
      "EFG" の中に"E"があれば何行何列目にあるか、なければ「見つかりませんでした」と
              表示するプログラム
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 12月22日
[5] その他の制限: ユーザー定義関数を用いる、標準ライブラリは用いない。


よろしくお願いします。
696669:2011/12/19(月) 12:22:29.42
>>670>>671
ありがとうございます。
697 ◆QZaw55cn4c :2011/12/19(月) 12:22:35.92
>>690
>0・NULL・\0を同一に扱ったり、
\0 は、\0xx という 8 進数表示にしか過ぎない。「ナルキャラクタを \0 とあらわす」というわけではなく、\n, \t とは事情が異なる。
\0 と 0 は同一では?

NULL と 0 の区別については次を参照。
http://www.kouno.jp/home/c_faq/c5.html#9
>Cプログラマーは、ポインターが必要な 状況ではNULLと0は交換可能で、キャストされていない0を使うことは ぜんぜん問題ないことを理解しなければならない。
実際、c++ では NULL とかかずに 0 と書いている人は多いようだ。

結論:全部 0 と書いて問題なし。
698 ◆QZaw55cn4c :2011/12/19(月) 12:29:34.65
>>694,>>687
お、信者を迫害するつもりですね。:-)

では一つ質問。fclose() についてはどう思いますか?
fopen() したものはいかなる場合でも fclose() しなければならない。
というのは、至極まっとうだとおもうのですけれども。

どうせプロセス開放時には open() したファイルディスクリプタは OS で close() されるのが普通(MS-DOS でさえそうしている)だから、
fopen() したファイルポインタをいちいち fclose() する必要がない、というわけですか?

あんまりそういう主張はきかないのですけれども。

699デフォルトの名無しさん:2011/12/19(月) 13:31:57.93
他所でやれよ。
宿題の要旨に沿った回答すればいいだけだから、一律にcloseしろ、もするなもスレち。
700デフォルトの名無しさん:2011/12/19(月) 13:42:02.35
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
(1)20個の適当な整数が空白で区切られて保存されているファイルを作成せよ。
このファイルに含まれる整数のうち最大のものを出力せよ。

(2)15個の適当な整数が空白で区切られて保存されているファイルを作成せよ。
このファイルに含まれる整数を,その保存されている順とは逆順に”result.txt”というファイルに出力せよ。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 12月20日まで
[5] その他の制限:ありません

2つ続けてすみません。
よろしくお願いします。
701デフォルトの名無しさん:2011/12/19(月) 13:47:20.57
>>697
> 特にASCIIのナル文字(NUL)が必要な場合は、絶対にNULLを使ってはならない。

なんでここを読み落としたの?
702デフォルトの名無しさん:2011/12/19(月) 13:49:32.37
>>687
宿題ならする。使い捨てならしない
703デフォルトの名無しさん:2011/12/19(月) 14:32:27.15
[1] 授業単元:C言語
[2] 問題文:入力したxとyを交互に読み取り、zに出力するプログラムを作成せよ

x=いはほとりる
y=ろにへちぬを
z=いろはにほへとちりぬるを
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:C
[4] 期限:[2011年12月20日08:00まで]
[5] その他の制限:なし

よろしくお願いいたします
704デフォルトの名無しさん:2011/12/19(月) 15:53:07.50
QはC++11でnullptrが付加された理由も知らないんだろうな
705デフォルトの名無しさん:2011/12/19(月) 16:16:58.47
>>703
日本語を扱うなら文字コードによってプログラムが変わる
706646:2011/12/19(月) 16:39:41.53
>>703
バッファオーバーランは考慮してない
#include <stdio.h>
#include <string.h>
#include <locale.h>

int main()
{
wchar_t Buff1[256] = {L'\0'};
wchar_t Buff2[256] = {L'\0'};
wchar_t Buff3[256] = {L'\0'};
wchar_t *p = NULL;

int i,j;
setlocale(LC_ALL,"jpn");
wprintf(L"X=");
fgetws(Buff1,sizeof(Buff1),stdin);
if( p = wcschr(Buff1,L'\n'))
*p = L'\0';
wprintf(L"Y=");
fgetws(Buff2,sizeof(Buff2),stdin);
if( p = wcschr(Buff2,L'\n'))
*p = L'\0';
for(i = 0,j=0; i <wcslen(Buff1);i++,j+=2)
Buff3[j] = Buff1[i];
for(i = 0,j=1; i <wcslen(Buff2);i++,j+=2)
Buff3[j] = Buff2[i];

wprintf(L"%s\n",Buff3);

return 0;
}
707701:2011/12/19(月) 17:58:41.97
>>704
>>689が言語を指定していないというのもあるけれど、
少なくともCに限定しているレスに対して、C++の話を持ちかけるのはどうかと思うよ。
708デフォルトの名無しさん:2011/12/19(月) 18:59:22.76
突然失礼します。
下記のコードを記述し、WindowsXP及びWindows7で同様のファイルを指定したところ
XPでは正常に動作しますが、7ではファイルを開くことができません。
どなたか原因が分かる方いらっしゃいましたらご教授お願いします。

If(!file.open(fn, CFile::modeRead|CFile::typeBinary)) return FALSE


709デフォルトの名無しさん:2011/12/19(月) 19:01:21.39
>>708
ここではなくてMFCスレへどうぞ。
710デフォルトの名無しさん:2011/12/19(月) 19:06:17.06
>>709
場所違いでしたか。
大変失礼しました。
711デフォルトの名無しさん:2011/12/19(月) 21:34:04.10
7月の段階で民主党が2兆円の復興予算を組んだとき
自民党が要請した復興予算は累計17兆円

自民党の17兆が7月時点でに決定されていたのなら
今の日本はもう少し違って居た筈だ
ちなみに関東大震災のときは復興予算として現在の価値にして150兆円以上を組んでいた。
この事実を知れば、予算の規模の小ささ、ましてや増税なんて奇知涯にも程があると思わざる負えない

帰化人だらけの民主党に復興なんて はなっから無理な話なんだよ
712 ◆QZaw55cn4c :2011/12/19(月) 21:35:32.57
>>701
>>特にASCIIのナル文字(NUL)が必要な場合は、絶対にNULLを使ってはならない。
前後を見ると、これは
#define NULL (void *)0
と定義されている場合があるため、との記述をみることができますね。でも本来的には
#define NULL 0
だし、そうあるべきだ、との趣旨の文章です、http://www.kouno.jp/home/c_faq/c5.html#9 は。

#define NULL (void *)0
ならば、\0 を NULL とはかけない。
#define NULL 0
なら \0 = NULL = 0 でなんら問題ないと思います。

結論:全部 0 と書いて問題なし。ただし、前方参照は排除、可変長引数での 0 のキャストはどうしても必要。
713デフォルトの名無しさん:2011/12/19(月) 22:52:10.54
>>712
NULLはポインタの為の定義であって、
実装がどうであろうと文字としてNULLを使用することは間違い。
いいかげんうざすぎるだろ。
共通認識をねじ曲げてでも自分が正しいと思うならひきこもってろ。
714 ◆QZaw55cn4c :2011/12/19(月) 23:13:37.11
>>713
>NULLはポインタの為の定義であって、実装がどうであろうと文字としてNULLを使用することは間違い。
威勢のいい精神論は結構ですけれども、理工系の人間としては適切な姿勢かどうか、はなはだ疑問ですね。
「#define NULL (void *)0 が ANSI で許容されているから文字として NULL を使用するのは問題」というのが正確かつ的確なんです。つhttp://www.kouno.jp/home/c_faq/c5.html#9

でも私が主張しているのは、
>文字としてNULLを使用すること
ではなく(そんなこといつ私がいったのか?)
「文字(\0)だろうと、ポインタだろうと、普通の数字だろうと、すべて 0 と書くことでなんら問題ない」
です。

>いいかげんうざすぎるだろ。
C FAQ もまともに読めないあなたの存在がね。

>共通認識をねじ曲げてでも自分が正しいと思うならひきこもってろ。
すべて 0 と書いて問題ないのが、1995 年からの共通認識です。

頭沸いてません?
715デフォルトの名無しさん:2011/12/19(月) 23:15:26.82
[1] 授業単元: 情報処理
[2]
問題(1)
http://ideone.com/xfyDt

上のプログラムを参考にして、unsigned型整数をビット表記した時の下から4ビット(20 から23の桁)
を表示する関数 void print_4bits ( unsigned x) を作成せよ。
またこの関数を用いて、0から15までの整数を4ビットで表示するプログラムを作成せよ。

問題(2)
float型実数 x と double型実数 yを用意し、初期値として x, y 共に1.0と置く。
ループ( while文、 for文何でもよい) を用いて、x, yの値をそれぞれ前の値の 1/10にする毎に、その値を表示するプログラムを作成せよ。
ループはyの値が 10 -14 より小さくなった場合に終了すること。 x , yを 表示する際、変換指定は %20.15fとすること。 C言語においては 10 -14 は 1e-14と表記する。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C++
[4] 期限: できれば今夜12時まで(急で申し訳ありません)
[5] その他の制限: 特になし


どなたかよろしくお願いします。
716デフォルトの名無しさん:2011/12/19(月) 23:20:37.50
>>714
>「#define NULL (void *)0 が ANSI で許容されているから文字として NULL を使用するのは問題」というのが正確かつ的確
自分で問題があるって言ってるのに
誰も納得しないなそれじゃあ
717デフォルトの名無しさん:2011/12/19(月) 23:26:20.00
>>714
「そんなこと言ってないよ、全部0って書けば問題は起こらないよとしか言ってないよ」
で済む話をねちっこくするから嫌われるんじゃないかな。
まあ煽るほうもアレだけど。

それはそうと最近はコードだけペタペタ貼っていくスタイルに変えたんじゃなかったの?
718デフォルトの名無しさん:2011/12/19(月) 23:28:32.76
>>712
> なら \0 = NULL = 0 でなんら問題ないと思います。
それらが等価であるとミスリードさせようとしてるわけじゃないのなら、もう一度読み直してみては。
719デフォルトの名無しさん:2011/12/19(月) 23:45:56.28
720デフォルトの名無しさん:2011/12/19(月) 23:51:15.30
>>715
すまない。課題を読む限り >>719 の 2. は間違い。
表示順序が逆になってる。
2. http://ideone.com/TlUqY
721デフォルトの名無しさん:2011/12/20(火) 00:00:30.77
>>719

ありがとうございました。
722デフォルトの名無しさん:2011/12/20(火) 00:06:16.23
>>714
>#define NULL 0
>なら \0 = NULL = 0 でなんら問題ないと思います。
「なんら問題ないと思います」

>NULLを、ポインター以外の0が必要な場面に使ってはならない。
「使ってはならない」

日本語わかります?
723 ◆QZaw55cn4c :2011/12/20(火) 00:09:24.28
>>718
>>#define NULL 0
>>なら \0 = NULL = 0 でなんら問題ないと思います。
と二行でセットです。これを下一行・部分だけ抜き出されて「ミスリード」といわれても困惑するばかり。

>>717
>最近はコードだけペタペタ貼っていくスタイルに変えたんじゃなかったの?
そでしたね。
724デフォルトの名無しさん:2011/12/20(火) 00:12:34.07
Qはもしかして大抵の処理系だと真は1だから真偽値を正数値として扱ってるの?、
trueやfalseは1と0のプリプロセッサだからと言って1や0書いてるの?
結果も正数値だからint型にしてるの?
RAIIで書くのも目視でチェック処理書くのも同じとか思ってるの?
そのチェック処理にはboolは登場するの?

たぶんまだまだたくさん疑問があるよ
725 ◆QZaw55cn4c :2011/12/20(火) 00:14:34.01
>>722
\0 = NULL = 0 で
>「なんら問題ないと思います」
そうですよ。#define NULL 0 ならね。

>「使ってはならない」
そうですよ。#define NULL (void *)0 の可能性があるからね。

まあ、>>717 のとおり「そんなこと言ってないよ、全部0って書けば問題は起こらないよとしか言ってないよ」と書けばすむ話でしたかね。
726デフォルトの名無しさん:2011/12/20(火) 00:29:32.73
>>725
>NULLを、ポインター以外の0が必要な場面に使ってはならない。
>プログラムは動くかもしれないが、
>コンパイラに間違ったメッセージを送っていることに違いはない
ちゃんと読もうよ…。(void*)0ならそもそも通らないんだよ…。
727デフォルトの名無しさん:2011/12/20(火) 00:30:09.31
>>723
> >>#define NULL 0
> >>なら \0 = NULL = 0 でなんら問題ないと思います。
> と二行でセットです。これを下一行・部分だけ抜き出されて「ミスリード」といわれても困惑するばかり。

NULLが0じゃない環境があるわけだから、等価じゃないって言われることになるよ。
実際等価じゃない環境はあるし、それを想定したツッコミもはいってるよね。
でも、いいたかったのはそんなことじゃなく、すべて0と書くことでどの環境でも問題なく動作するということじゃないの?
728 ◆QZaw55cn4c :2011/12/20(火) 00:30:26.14
>>724
>Qはもしかして大抵の処理系だと真は1だから真偽値を正数値として扱ってるの?、
いいえ、この前、常用の処理系で isprint() が 32 を返すのをみていますからね。真値として-1を返す処理系/関数だってあるかもしれない、昔の N-BASIC のように。

>trueやfalseは1と0のプリプロセッサだからと言って1や0書いてるの?
c++ でも if (isprint()) か if (!isprint()) といった形でかけるのなら、true/false をあえて書くことすらありません。ただし c では return 1, return 0 は使います。

RAII やスマポはまだ十分には習得していません。
729デフォルトの名無しさん:2011/12/20(火) 00:30:53.21
>>724
trueを1と想定したコードにはであったことないなぁ。
!!bFlag のようなコードはたくさんあるけど。
730 ◆QZaw55cn4c :2011/12/20(火) 00:44:49.76
>>727
>すべて0と書くことでどの環境でも問題なく動作するということじゃないの?
ですね。
(実は (void *)0 と (void (*)())0 が違うので可変長引数では書き分けなければならない環境もあったりするんですけれどもね。)

まあ私の「\0 = NULL = 0」が表現として誤解を招いたのでしょう。

>NULLが0じゃない環境
???
NULL はプリプロセッサを通過すれば全部 0 または(void *)0 に置き換わるはず。
ヌルポインタがコンパイラを通過したあとどう表現されるかをここで問題とするのはお門違い。

731デフォルトの名無しさん:2011/12/20(火) 00:52:09.30
助け舟出してくれた奴にまで悪態をつくQzさんであった…。
732 ◆QZaw55cn4c :2011/12/20(火) 01:00:33.74
>>731
んーんー‥‥‥
ごめんなさい。
733デフォルトの名無しさん:2011/12/20(火) 02:26:01.38
>>589-590
>>592
>>619-620

有難う御座います
734デフォルトの名無しさん:2011/12/20(火) 02:31:12.79
>>730
> まあ私の「\0 = NULL = 0」が表現として誤解を招いたのでしょう。
まったくもってそのとおり。そして、それは読むほうの問題だと思っているフシがあるのがさらに問題。
その積み重ねが嫌われる結果になってることはわかる?嫌われたいのならそれでいいけれど、そうじゃないだろう?
なぜ誤解を招かない記述がされている文書(FAQや規格)を引用しながら、誤解を招く一言を加えるのか。
誤解を招きうる正しい意見と、誤解を招かない間違えた意見は、どちらも同じように知らないものを混乱させる。
大人なんだからしっかりなさい。
735デフォルトの名無しさん:2011/12/20(火) 04:29:25.43
学生さんはここの書き込みを鵜呑みにせずまっさきにcfaq見ること。

736デフォルトの名無しさん:2011/12/20(火) 04:49:42.01
小学生レベルの算数や幼稚園レベルの日本語もわからな奴が理工系の人間か
737デフォルトの名無しさん:2011/12/20(火) 09:33:31.19
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
任意の0〜nの整数から、重複を許してm個の整数を選び出力するプログラムを作れ。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: visual studio 2010
 [3.3] 言語: C++
[4] 期限:2011年12月20日15時
[5] その他の制限:急ですみません。
重複順列を出力するプログラムをお願いします。
738デフォルトの名無しさん:2011/12/20(火) 09:58:46.85
\0 = 0
は違和感あるな。charとintだもん。
739デフォルトの名無しさん:2011/12/20(火) 10:01:10.66
>>737
#include <iostream>

int main()
{
int i, n, m, *p;

std::cin >> n >> m;

p = new int[m];
for(i = 0; i < m; i++) p[i] = 0;

for( ; ; ) {
for(i = 0; i < m; i++) std::cout << p[i] << ' ';
std::cout << std::endl;
for(i = m - 1; ; i--) {
if(++p[i] <= n) break;
if(i == 0) {
delete [] p;
return 0;
}
p[i] = 0;
} } }
740デフォルトの名無しさん:2011/12/20(火) 15:32:20.28
国民に罵声を浴びせられ駅前交番に逃げ込むテレビアカヒの取材班 12/19正午 新橋駅前 
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/111219_124643_ed.jpg
        ,:'  .l .::;',. :::;/..://:: /,':/  ', l、 .i  ヽ
.          ,'  ..::| .::;',' :;:','フ'7フ''7/   ',.ト',_|, , ',.',
       ,'   .::::::!'''l/!:;'/ /'゙  /     '! ゙;:|:、.|、| 'l
.         ,'.  .:::::::{ l'.l/  、_  _,.      'l/',|.';|
       l  :::::::::::';、ヾ      ̄     `‐-‐'/! ';. '
.         ! :::::::::::/ `‐、        ゝ   |'゙ |
       | ::::::::/   \    、_, _.,.,_ ノ::: !  野田政権が早く終わりますように
       |::::/.     _rl`': 、_     ///;ト,゙;:::::./
..      `´      /\\  `i;┬:////゙l゙l ヾ/
                ,.:く::::::::`:、\ 〉l゙:l  / !.|
.            /:.:.:.:\:.:.:.:.`:、ソ/:.:|    | |   19日の報道ステーション
           /.:.:.:.:.:.:.:.:.:\:.:.:.:У:.:;l     http://livedoor.blogimg.jp/kingcurtis/imgs/e/d/ed2dbc66.jpg  


741デフォルトの名無しさん:2011/12/20(火) 21:49:03.12
とりあえず、Wikiのほー、現行スレのURIを直しといた。
742デフォルトの名無しさん:2011/12/21(水) 07:43:32.06
>>739
ありがとうございました!!
743デフォルトの名無しさん:2011/12/21(水) 12:46:08.95
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
http://ideone.com/uhaD9
[3] 環境
[3.1] OS:Linuxs
[3.2] gcc
[3.3] 言語:C
[4] 期限:12月22日24:00迄
[5] その他の制限:
宜しくお願い致します。
744デフォルトの名無しさん:2011/12/21(水) 13:13:51.94
745デフォルトの名無しさん:2011/12/21(水) 18:49:31.48
>>744
ありがとうございます。
746432:2011/12/21(水) 21:59:21.99
>>495 >>497
作成していただいたプログラムですが、コンパイルすると
60行目で「ここでは宣言はできない(関数 apply_filter )」と出ます
どうすればいいでしょうか
747デフォルトの名無しさん:2011/12/21(水) 22:14:54.30
他人やけど、53??54行の間に60行目を移動すれば、いい筈。
748432:2011/12/22(木) 01:13:44.57
>>747
おお、できました
ありがとうございます

あとはどうやったらこれがちゃんと動くのかわかる方いらっしゃいますか
画像の指定の方法とかがちょっとわからないです

何度も質問して申し訳ないです
749デフォルトの名無しさん:2011/12/22(木) 03:29:51.03
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):http://ideone.com/WOUG0
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 12/22 23:59
[5] その他の制限:何らかのソートを使って作成し、そのソートについての説明を書くこと。
お願いします。
750デフォルトの名無しさん:2011/12/22(木) 03:34:15.42
>>748
usageでそうだけどね。
751デフォルトの名無しさん:2011/12/22(木) 04:01:08.14
>>748
すみません、それ更新されてませんでした。
http://ideone.com/lLl1K
使い方はコメントを参照してください。
752デフォルトの名無しさん:2011/12/22(木) 04:07:21.97
何度もすいません。コメント追加されてませんでした。
http://ideone.com/ZW2Y0
753デフォルトの名無しさん:2011/12/22(木) 04:16:45.93
[1] 暇つぶし
[2] 問題文(含コード&リンク):
15パズルにおいて最短手順が最長となる場合の手順数を求めよ
複数個を同時にスライドしても1手と数えることとする

.1 .2 .3
.5 .6 .7 .4
.9 10 11 8
13 14 15 12

↑ の状態から
↓ の状態にするのも1手と数える

.1 .2 .3 .4
.5 .6 .7 .8
.9 10 11 12
13 14 15

[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: どちらでも可
[4] 期限: 無期限
[5] その他の制限: 出来る限り高速に
754デフォルトの名無しさん:2011/12/22(木) 04:35:27.25
>>753
自分が作ったものと、他人が作ったものを比較したいんじゃないんだなぁ…
755デフォルトの名無しさん:2011/12/22(木) 05:03:37.43
>>754
自分では解けないからどうやって解くのかと思って
756デフォルトの名無しさん:2011/12/22(木) 05:08:08.11
暇つぶしにやってみるんじゃなくて、暇つぶしに問題を出してみただけか
757646:2011/12/22(木) 05:15:28.50
>>749
昔作ったソース
自分で改造してね
http://codepad.org/VD8Qhnn6
758デフォルトの名無しさん:2011/12/22(木) 05:30:05.84
>>755
0. 最初の盤面
1. 盤面から1手先の盤面をそれぞれ作成
2. 作成した盤面が盤面プールになければ
2.1. 作成元盤面のポインタ、使った手と共にプールに押し込む
2.2. 作成した盤面について1へ
3. 完了するまでループ
4. プールから検索し、最初の盤面になるまで辿って表示していく。

たぶんこうなる。
759デフォルトの名無しさん:2011/12/22(木) 05:32:33.05
うんそうなる。
で、盤面は64ビットあれば表現できる
760デフォルトの名無しさん:2011/12/22(木) 05:41:01.70
現実的な時間で終わるかどうかが問題で
761デフォルトの名無しさん:2011/12/22(木) 05:54:02.37
最長であるn手目の状態から、一つ動かした盤面がn-1手以内で到達可能であることを判定しないといけないと思うんだけど、
それをするためには1手目からm手までの盤面を、1手ごとにすべて求めないといけなくなる?
762デフォルトの名無しさん:2011/12/22(木) 05:55:07.44
自分のなかで今割とアツいDDの出番なんだろうけど、まだ習熟途中。
763デフォルトの名無しさん:2011/12/22(木) 05:55:45.29
DDじゃなくてDPごめん
764デフォルトの名無しさん:2011/12/22(木) 06:11:28.67
80手であることは知ったけれども
765デフォルトの名無しさん:2011/12/22(木) 06:20:44.22
全パターンで 16!/2 = 10461394944000

メモリに収まらないwww
766デフォルトの名無しさん:2011/12/22(木) 06:22:57.60
それらのすべての盤面から、任意の二つのパネルを入れ替えたものは解けないパズルなので、盤面として保持されることはない、が。
767デフォルトの名無しさん:2011/12/22(木) 06:23:58.71
>>766
その分も加味されてるだろw
768デフォルトの名無しさん:2011/12/22(木) 06:26:14.69
単に半分でいいの?
769デフォルトの名無しさん:2011/12/22(木) 06:39:09.11
2x2 で 12 通り 6手
3x3 で 181440 通り 24手

3x2 で 360通り 20手
4x2 で 20160 通り 25手
5x2 で 1814400 通り 36手

になったし合ってるはず
770デフォルトの名無しさん:2011/12/22(木) 06:44:41.31
中のパネルを1回だけ入れ替えた盤面は不正な盤面。
組み合わせは1盤面につき Cb(15,2)
16! / Cb(15,2) = 16! / (15!/13!)/2! = 16 * 13! * 2!
= 199264665600
ほんとに合ってるかわからないw
771デフォルトの名無しさん:2011/12/22(木) 06:47:24.53
1 4 7
2 0 8
3 6 5

3x3 の最長手順 24手
こんなん出たけど合ってるかどうかものすごく不安

0 が空白部分です
772デフォルトの名無しさん:2011/12/22(木) 06:53:46.01
>>770
ありえない
隣り合う二つのパネルを一回だけ入れ替えると解ける/解けないが入れ替わるから
773デフォルトの名無しさん:2011/12/22(木) 07:01:53.63
でもそれだと入れ替える場所は(4*3)*2 - ( 2 or 4 )にならない?
774デフォルトの名無しさん:2011/12/22(木) 07:05:29.63
>>773
解けない 盤面を 解ける ようにするには隣り合うパネルを一回だけ交換すればよい

解ける 盤面を 解けない ようにするには隣り合うパネルを一回だけ交換すればよい

合ってるよね?
775デフォルトの名無しさん:2011/12/22(木) 07:23:07.98
>>774
なんとなくわかった。1:1で存在しているって事か。
あと別に間違ってると言いたいんじゃなくて、
自分が理解できてないだけです。
776デフォルトの名無しさん:2011/12/22(木) 10:41:25.20
何かおかしいと思ったらNP完全問題か。
暇つぶしの前にやる気無くなった。
777デフォルトの名無しさん:2011/12/22(木) 14:02:03.88


震災前

     /::::::::::::::::::::::::::::::;;::ノ ヽ;::\
    /::::::::;;;;;;;;;,,,;;...-‐''"~    ヽ:;::l
     |:::::::::::|    岡田 異音    |ミ|
     |:::::::/     ,,,  ヽ,、   '|ミ|  
     '|:::::::l    '''""   ゙゙゙゙`   |ミ|
       |:::::|.  ,,r ‐、   ,, - 、  |/
     ,/⌒|  ノ ・ _), (. ・ `つ|
     | (   "''''"    |"'''''"  | 
      ヽ,,.        ヽ    |
       |       ^-^_,, -、   |   
         |    _,, --‐''~    ) |  マニフェストもう守れない。どうしよう・・・・ 
         'ヽ  (   ,r''''''‐-‐′ / 


震災後

     |:::::::::/            |ミ|
     |::::::::|   ,,,,,    ,,,,,   |ミ|
     |彡|.  '''"""''   ''"""'' |/
     /⌒|  -=・=‐,   =・=-  |
     | (    "''''"   | "''''"  |  
     .ヽ,,         ヽ    .|  キリッ
        |       ^-^    |
   .     |     ‐-===-   |   大震災が起こったのだからマニフェストの破綻も致し方ありません
         ,\.    "'''''''"   / 
朝鮮民主党 
  解党
778432:2011/12/23(金) 02:37:41.68
>>752
ありがとうございます
動かすことができました
助かりました
779デフォルトの名無しさん:2011/12/23(金) 10:13:05.32
[1] 授業単元:計算機アルゴリズムT
[2] 問題文(含コード&リンク):
設問1-1
キーボードから整数値を受け取り、その数値に該当する月の略称("Jan", "Feb",・・・)を表示するプログラムを作成しなさい。
なお、月の略称はポインタ配列「 char *month[ ]={"Jan.", "Feb.", "Mar.", "Apr.", "May.", "Jun.", "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."};」で定義するものとする。
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C
[4] 期限:[2011年12月26日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
            繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
            条件分岐if文、要素番号idx使用の書換、データの入れ替え
            条件分岐・論理演算子を用いたif文の条件、if文、else if文
            switch文、ポインタ変数・演算子*と&、関数・プロトタイプ宣言と関数定義
            引数と戻り値、関数の引数とポインタ、関数に配列を渡し、呼び出し側へ戻す方法
            関数から関数を呼び出す方法、大域(global)変数、局所(local)変数、文字型変数
            文字列の代入、キーボードからの文字列入力、char型ポインタ変数は習いました。
宜しくお願いします。
780デフォルトの名無しさん:2011/12/23(金) 11:19:14.96
781デフォルトの名無しさん:2011/12/23(金) 13:44:56.10
>>780
有難う御座います
782デフォルトの名無しさん:2011/12/25(日) 16:22:41.08

これは必見
フジテレビ 生放送中に有志による怒りの抗議 (昨夜) (コメント欄に反日工作員が紛れているので注意)
http://www.nicovideo.jp/watch/sm16518699?user_nicorepo
783デフォルトの名無しさん:2011/12/25(日) 18:09:32.41
C++でヘッダーファイルをインクルードするときにprivate関数の宣言まで取り込むのは無駄だと思うんですがこれは地名的名設計ミスなんじゃないでしょうか
784デフォルトの名無しさん:2011/12/25(日) 18:15:11.76
無駄である以外に問題が無いモノを致命的と呼ぶのか?
785デフォルトの名無しさん:2011/12/25(日) 18:23:15.03
>>783
privateメンバの変更を行っただけなのに、それを利用するだけのファイルも再コンパイルされてしまうことを問題視してるのかな。
なら、pImpl
786デフォルトの名無しさん:2011/12/25(日) 21:31:37.87
>>783
俺もその点が気に入らないが、それだけじゃない。
C++ってそういう言語だよ。OOPLとしては全体的に消極的。
787デフォルトの名無しさん:2011/12/25(日) 21:43:40.00
friend関数作った時とかはprivateも見えてないと困るな
788デフォルトの名無しさん:2011/12/25(日) 23:19:30.05
#define private public
789デフォルトの名無しさん:2011/12/25(日) 23:27:41.72
やっぱりC言語のローカルヘッダと公開ヘッダの仕組みの方が優秀だということだな
790デフォルトの名無しさん:2011/12/26(月) 01:58:23.33
【質問テンプレ】
[1] 授業単元: C言語アルゴリズム
[2] 問題文(含コード&リンク):

【1】.0度<=x<=90度の範囲でf(x)=sin(x)-cos(x)=0の解を求めよ(許容誤差は各自入力)
ヒント:講義中に解説した例:2分法による方程式解法のax+bを上式にする(a,bの読み込みも不要)
例のコードは、http://codepad.org/ImpygN9S です。
ヒント2:sinやcosの括弧内の単位はradianであることに注意(pi*x/180.0)
【2】.0度<=x<=90度の範囲でx,sin(x),cos(x),sin(x)-cos(x)の値を5度刻みで"kadai2.ans"に出力、
ftpでgetしてExcelの散布図を利用してグラフ化し、【1】の解が正しいか確認せよ。
【3】.ax+bとcx+dの交点のx座標を求めよ。(a,b,c,d,許容誤差は自由)
ヒント1:ax+bとcx+dの差が0の所が交点

[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン:VC2008
 [3.3] 言語: C
[4] 期限: 26日AM6時まで
[5] その他の制限: 出来るだけ分かりやすいとありがたいです

多いですがよろしくお願いします
791デフォルトの名無しさん:2011/12/26(月) 05:13:19.26
792:デフォルトの名無しさん:2011/12/26(月) 08:19:04.07
[1] 授業単元:計算機アルゴリズムT
[2] 問題文(含コード&リンク):
メンバとして映画のタイトル(文字列)と公開年(int
型整数)をもつ構造体movie を宣言し,movie 型構造
体のメンバの値を設定してその構造体を返す関数struct movie set_movie(void)を作成しプログラムを完成させよ.
[実行例]
映画のタイトルを入力してください:HAYABUSA
公開年を入力してください:2011
データを設定しました。
タイトル:HAYABUSA 公開年:2011
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:[2011年12月27日8:00まで]
[5] その他の制限:以下の実行例のように,関数の動作を確認できるmain関数も作成すること.ただし,関数set_movie およびmain 関数については以下の要件を満せ.
・設定するメンバの値(タイトル,公開年)は,関数set_movie 内でscanf 等を用いてユーザに入力させること.
・main 関数内で,movie 型構造体のオブジェクトmovie1 を初期化せずに宣言する
・関数set_movie を用いて,movie1 のタイトルと公開年の値を設定する.
・その後,以下の実行例のようにmovie1 のメンバの値を表示して終了する.
出来るだけ分かりやすいとありがたいです

793デフォルトの名無しさん:2011/12/26(月) 09:11:15.75
>>792
http://ideone.com/5xe8B

もし、>>444の続き問題だったのなら
http://ideone.com/1mQf6
794793:2011/12/26(月) 09:14:29.63
ごめん、2個目、変なのまざっちゃってたので修正
http://ideone.com/bXXAS
795:デフォルトの名無しさん:2011/12/27(火) 09:58:15.58
[1] 授業単元:配列と構造体
[2] 問題文(含コード&リンク):
メンバとして名前(文字列)と年齢(整数)をもつ構
造体person を宣言し,以下の要件を満たすプログラムを完成させよ
[実行例]:
チーム1 のメンバー:
Haybusa Taro, 20 歳
Katakura Goro, 22 歳
Minamino Akira, 19 歳
3 人の平均年齢は20.33 歳です。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:[2011年12月28日8:00まで]
[5] その他の制限:
・main 関数内で,大きさ3 のperson 型構造体配列team1[] を次の値で初期化して宣言する.
 名前:Haybusa Taro,年齢:20
 名前:Katakura Goro,年齢:22
 名前:Minamino Akira,年齢:19
・実行例のように,team1 の3 人の情報を表示する.
・その後,3 人の平均年齢を計算して表示する.
出来るだけ分かりやすいとありがたいです
796デフォルトの名無しさん:2011/12/27(火) 12:11:39.87
>>795
#include <stdio.h>

int main(){
struct person {
char name[30];
int age;
} team1[3] = {
{"Haybusa Taro", 20},
{"Katakura Goro", 22},
{"Minamino Akira", 19}
};
int i, sum = 0;

printf("チーム1 のメンバー:¥n");
for (i = 0; i < 3; i++) {
printf("%s, %d 歳¥n", team1[i].name, team1[i].age);
sum += team1[i].age;
}
printf("3 人の平均年齢は%.2f 歳です。¥n", sum / 3.0);

return 0;
}
797デフォルトの名無しさん:2011/12/27(火) 20:36:12.24
平松邦夫/民主党
大阪市役所・自治労・大阪市労働組合・日教組・大阪市教育委員会・自民党・共産党・社民党・関西電力・住友グループ
・毎日放送・毎日新聞・関西経済連合・日本原子力発電株式会社 ・ 週刊文春・週刊新潮・NHK・朝日新聞・読売新聞
・部落解放同盟・朝鮮総連・在日本大韓民国民団・日本遊技関連事業協会・全日本遊技事業協同組合連合会・日本弁護士連合会・生活保護受給者・反日左翼・9条の会・革マル派・中核派

VS

橋下徹/維新の会
大阪市民・みんなの党・国民新党・亀井静香・石原慎太郎・東国原英夫
 様子見:公明
798デフォルトの名無しさん:2011/12/29(木) 10:20:47.36
ファイルの先頭4KBが重複するものを全て求めるプログラム。
できる限り高速なもの。
799デフォルトの名無しさん:2011/12/29(木) 11:08:39.89
>>798
>>1
その情報だけじゃ趣味レベルと見なされて、memcmp使えで終わり。
何と(例えば互いに?)同じか、4KB無い時はどうするか、或いは無視して良いのか。
この辺の事を明記しない奴は大抵、後出しの条件を付けて来るから様子見されるぜ。
800デフォルトの名無しさん:2011/12/29(木) 11:25:04.32
4KB以上サイズがあるファイルを、先頭4KBの一致で分類するプログラムです。
一つのファイルを与えたときに一致するものを求めるのでは無いです。
801デフォルトの名無しさん:2011/12/29(木) 11:28:44.17
memcmp使え
802デフォルトの名無しさん:2011/12/29(木) 11:39:58.55
ファイルの先頭4KBだけ読み、ファイル名とセットにしたレコードを生成し、ソートする
ファイルの数次第でソート方法が決まりそう。
803デフォルトの名無しさん:2011/12/29(木) 12:20:58.03
ファイル先頭4KBのMD5を生成し、ファイル名とセットにしたレコードを生成し、
連想配列の要素にMD5使ってカウントし、最後にカウントが2以上の連想配列のファイル名を出力、とか。
804デフォルトの名無しさん:2011/12/29(木) 14:58:17.29
一致で分類するなら、名前がハッシュ値のディレクトリに移動
805デフォルトの名無しさん:2011/12/29(木) 19:19:22.69
[1] 授業単元:計算機アルゴリズムT
[2] 問題文(含コード&リンク):
設問1-1
1人分の学生の情報(学籍番号、名前、身長)を持つ構造体を
「struct student { int number; /*学籍番号*/ char name[20]; /*名前*/ float height; /*身長*/};」と定義し、
構造体 student 型の変数にキーボード入力から値を設定した後、その変数の値を printf 文で表示するプログラムを作成しなさい。

設問1-2
n(>1)人分の学生の情報を持つ構造体 student 型の配列変数に対し n 人分の変数の値をキーボードから読み込んで
構造体の配列変数に設定した後、 printf 文で n 人分を表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C
[4] 期限:[2012年1月1日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
            繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
            条件分岐if文、要素番号idx使用の書換、データの入れ替え
            条件分岐・論理演算子を用いたif文の条件、if文、else if文
            switch文、ポインタ変数・演算子*と&、関数・プロトタイプ宣言と関数定義
            引数と戻り値、関数の引数とポインタ、関数に配列を渡し、呼び出し側へ戻す方法
            関数から関数を呼び出す方法、大域(global)変数、局所(local)変数、文字型変数
            文字列の代入、キーボードからの文字列入力、char型ポインタ変数
            構造体・メンバ変数への数値の代入、構造体・ポインタを使ってメンバ変数を指定は習いました。
宜しくお願いします。
806デフォルトの名無しさん:2011/12/29(木) 21:26:13.32
807デフォルトの名無しさん:2011/12/29(木) 21:26:55.52
>>805
nは画面からの入力?
808デフォルトの名無しさん:2011/12/29(木) 22:01:08.47

| ┏━━━┓   従軍慰安婦は反日朝日新聞の捏造でした。
| ┃借収安┃    デマだらけの報道に注意しよう
| ┃三三婦┃
| ┃○○大┃
| ┃○○募┃
| ┃○圓集┃
| ┃圓以  ┃
| ┃迄上  ┃_
\┃可   ┃ \
  ┗━━━┛  \
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
http://img04.ti-da.net/usr/wishcomestrue/t02200190_0220019010786142693.jpg
809デフォルトの名無しさん:2011/12/30(金) 00:18:13.89
>>807
そう
もしまずかったら16行目から19行目を消して
nに値を直接代入してください
810デフォルトの名無しさん:2011/12/30(金) 11:01:15.06
>>807
そうです
811810:2011/12/30(金) 11:03:09.72
>>807
そうです
画面からというより、キーボードから入力するという事です
812810:2011/12/30(金) 11:20:03.66
>>806
学籍番号、名前、身長がちゃんと表示されないんですがどうすればいいですか?

Input number name height>>9
学籍番号: 9
名前: ヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘ����eI^
身長: -431602080.000000
続行するには何かキーを押してください . . .

↑のように出力されます
813デフォルトの名無しさん:2011/12/30(金) 11:39:53.28
>>812
入力方法が間違ってる
配列サイズ考慮した作りになってるから少しややこしいかもしれないけども

sscanf(buf, "%d %s %f", ...);
に対して 9 だけ入力してる
だから %s と %f はbufのゴミが読み取られてる

あとは分かるな?
814デフォルトの名無しさん:2011/12/30(金) 15:03:50.31
ゴミがたまに「ヘヘヘノヘヘヘ」になって笑ってしまう
815810:2011/12/31(土) 10:38:59.36
>>813
分からないので、詳しく教えてください
お願いします
816デフォルトの名無しさん:2011/12/31(土) 11:41:29.84
ソース理解してねーと口頭で説明とかなったら困るぞ
817813:2011/12/31(土) 12:24:11.93
>>815
じゃあ実際のコードをまじえて解説してみるよ
ちょっと長くなったので2回に分ける

1.
まずはこのコードを実行してみて
#include <stdio.h>
int main(void) {
  char buf[10];
  int i;
  for (i = 0; i < 10; i++) { printf("%d ", buf[i]); }
  return 0;
}

おそらく全部0になってないと思う、
C言語では実行速度を優先した設計になっているから、
変数や配列を宣言した時は単にメモリ領域を確保するだけで、そのメモリ内のデータは残ったままになってる、
だからループ内ではそのゴミデータを「数値」として出力しちゃってる

では次にループ内の「"%d "」の「"%c"」に変えて実行してみて、
※スペースも削除してるのを注意
実行時のメモリの状況によるけど、>>812の名前部分と似たような文字列になったと思う
これもループ内でゴミデータを「文字」として出力してるから。


つづく
818デフォルトの名無しさん:2011/12/31(土) 12:31:57.13
マダァ-?
(・∀・ )っ/凵⌒☆チンチン
819 ◆QZaw55cn4c :2011/12/31(土) 12:45:35.89
>>817
%c するんだったら、最低限でも isprint() を間にかませたいよね
820813:2011/12/31(土) 12:57:48.51
2.つづき

>>806のソースではbufの配列数は128だけど、これも同じく最初はゴミデータで埋まってる
無理やり書くとこんな感じ
'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' ...

ここで>>806の上のソースの20行目
fgets(buf,128,stdin);
これは標準入力から最大128文字を読み込む処理をしているが 9 だけを入力すると、bufには1文字だけが読み込まれ、
'9' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' 'ヘ' ...
って状態になる

次に同ソースの21行目
sscanf(buf,"%d %s %f",&sd->number,sd->name,&sd->height);
ここでbufから「学籍番号」「名前」「身長」 を読み取る事を期待してるわけだが、bufには9以降はゴミしか入っていない

%dは文字列の中から、連続した数値が続くまでを読み取って、
それを整数値として返す処理をしてるから問題なく学籍番号用の変数には9が入っているが

%sは文字列の中から、連続した文字列が続くまでを読み取るから、
bufの中のゴミデータが名前用の変数に入ってる、

%sは、おそらく%sで残りゴミデータを全部読み取ってしまっているから無視されてる、
試しに18行目あたりに 「sd->height = 3.141592;」 なんて円周率を入れておいても、実行時に 9 だけならその円周率がそのまま使われてると思う


ここまでが間違って出力されてる中身の仕組み
じゃあ実際に正しく入力する方法は、21行目で "%d %s %f" って書式になってるのを期待してるわけだから、
入力するときも 「数値」「スペース」「文字列」「スペース」「浮動小数点」 って入力すればいいわけ
821813:2011/12/31(土) 12:59:43.23
誤字
× %sは、おそらく%sで残りゴミデータを
○ %fは、おそらく%sで残りゴミデータを
822デフォルトの名無しさん:2011/12/31(土) 13:06:09.80
819 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
823デフォルトの名無しさん:2011/12/31(土) 13:21:00.42
>>820
「スペース」って入力しそうw
824デフォルトの名無しさん:2011/12/31(土) 14:19:48.20
それにしても、Cというのは酷い言語だね。
825 ◆QZaw55cn4c :2011/12/31(土) 14:24:33.80
>>824
8086アセンブラよりまし。
826デフォルトの名無しさん:2011/12/31(土) 14:48:55.13
8086アセンブラの何がひどいの?
827デフォルトの名無しさん:2011/12/31(土) 14:52:56.00
>>825
お前はこれから一切コンパイラ使うな
828デフォルトの名無しさん:2011/12/31(土) 14:57:39.89
クズの知ったかぶりがひどすぎる
829デフォルトの名無しさん:2011/12/31(土) 15:10:52.26
Qは来年になってもクズだろうな

つーか小姑みたいに茶々入れたいだけなら出てくんなっての
830 ◆QZaw55cn4c :2011/12/31(土) 15:24:56.96
>>828
http://toki.2ch.net/test/read.cgi/i4004/1295492625/324

>>826
far と near を意識しなければならないところ。処理系の問題ではなくてアーキの問題ね、当時としては事情があっただろうが。
int far * near * とか平気でやっていた、そうそう >>730 の (void *)0, (void (*)())0 とかね。

>>829
来年もよろしく
831デフォルトの名無しさん:2011/12/31(土) 15:28:51.50
MS-Cが16ビットの時なら、アセンブラと変わらない
832デフォルトの名無しさん:2011/12/31(土) 15:34:33.82
830 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

>>829
こうしとけば楽だよ
それにしてもQが出てくる前は宿題スレはもっと平和だったなあ
こいつが来てから殺伐としてきた
833 ◆QZaw55cn4c :2011/12/31(土) 15:37:04.68
>>832
>殺伐
2ch らしくていいじゃないか?
834デフォルトの名無しさん:2011/12/31(土) 15:42:13.46
アセンブリをやってた人間ならもう少しマシなコードを書けると思うんだがなあ
835デフォルトの名無しさん:2011/12/31(土) 15:51:19.52
>>833
皮肉も通じないアホか?一回病院逝け
836デフォルトの名無しさん:2011/12/31(土) 15:59:09.48
病院からアクセスするなよ
837デフォルトの名無しさん:2011/12/31(土) 16:10:45.24
ああ既にQは精神病院に入院してるのか
だろうなあキチガイだもんな
838デフォルトの名無しさん:2011/12/31(土) 16:14:00.63
>>835
いちいちかまうな、ボケ。

>>836
昨日友人の見舞いに行ったんだが、看護婦さんの見回って、今時ノートPC台車に載せてきて、
ベッドそばの機器に繋いでデータ収集してるんだな。

ふと見ると、ベッドの近くに LAN コンセントとかもあるし。

病院によっても違うんだろうけど、意外とIT化されてるのに改めてびっくりした。

足の骨折ぐらいなら、PCでインターネット接続させてくれれば、入院の辛さもちょっと軽減しそうだ。
839デフォルトの名無しさん:2011/12/31(土) 16:16:44.97
精神病院の場合はどうなんだ?ネットなんかしたらかえって病気が悪化するように思うが
840 ◆QZaw55cn4c :2011/12/31(土) 16:50:56.59
>>834
んー、それはそうかもしれないですね。
部分的に asm に置き換えることはいくらか経験があっても、全部 .asm で書くというのは http://toki.2ch.net/test/read.cgi/i4004/1295492625/324 の常駐物がはじめてではありますね。

>>835
皮肉で返してみたけど‥‥‥

>>837
飲んでるおくすり
http://en.wikipedia.org/wiki/Chlorpromazine
841デフォルトの名無しさん:2011/12/31(土) 17:01:38.08
おれはQちゃん好きだぜ
842デフォルトの名無しさん:2011/12/31(土) 17:17:17.91
クロルプロマジン飲んでるのか
それコントミンじゃん
統合失調症の薬
お前は自己愛性人格障害だから薬は効かない
843デフォルトの名無しさん:2011/12/31(土) 17:20:51.24
844810:2011/12/31(土) 21:06:47.02
>>817
>>820
詳しく説明有難う御座います
なんとなくですが理解できた気がします
845デフォルトの名無しさん:2012/01/01(日) 18:07:18.17
>>842
CP=コントミンとは限らないぞ荒らし野郎。
そうやって優位性を強調するお前も十分に自己愛だよ。
846810:2012/01/01(日) 20:17:39.74
>>806-807
>>813
>>817
>>820-821

有難う御座います
847デフォルトの名無しさん:2012/01/01(日) 21:04:54.59
>>845
おやおや図星過ぎて逆ギレですか?

http://www.info.pmda.go.jp/downfiles/ph/PDF/400315_1171001F1073_2_06.pdf

これを見ても同じ事が言えますか?
Qは統合失調症だったのか(ノ∀`)'`,、'`,、'`,、'`,、'`,、
848デフォルトの名無しさん:2012/01/01(日) 21:12:26.97
>>847
自分の体験を語るなら、ちゃんと名前を出してやれ
849 ◆QZaw55cn4c :2012/01/01(日) 23:45:45.85
>>847
http://www.info.pmda.go.jp/downfiles/ph/PDF/340018_1179100F1032_1_06.pdf
なんですけれどもね。強力な眠剤。CPZ 入ってるのは確かだけれども。
いやまあ、ご自分のご経験を盛大にご披露なさるとはご苦労様です。はやく治るといいですね。
850デフォルトの名無しさん:2012/01/02(月) 00:11:23.57
>【効能・効果】 統合失調症,老年精神病,躁病,うつ病又はうつ状態,神経症

わーおw
851デフォルトの名無しさん:2012/01/02(月) 00:33:07.97
どーでもいい。
852デフォルトの名無しさん:2012/01/02(月) 00:34:29.35
ベゲタミン飲んでるのかwww
そりゃそうだろうなこれだけ性格がひねくれてりゃ文句の言われっぱなしで不眠症にもなるだろう
そして自己愛の肥大にも関わらず現実が付いて行ってないからうつ病にもなるだろうな
Qは自己愛性人格障害ではあるが既に枯れて末期状態だと思われます

しかしベゲタミンwww AかBか?フェノバルビタールが入ってるから今ではあまり精神科でも
出さないんだけどなあ よほど強い不眠症なんですねwww
853 ◆QZaw55cn4c :2012/01/02(月) 00:53:14.15
>>850
引用は正確に。
>下記疾患における鎮静催眠
が抜けてますよ。薬としてはふつーじゃないですか?まあ後はないぞとも言われてますけど。

>フェノバルビタールが入ってるから今ではあまり精神科でも出さないんだけどなあ
まあね。芥川龍之介がピストルの代わりに使ったのがこれ(バルビタール系睡眠剤)だし、処方には一定の判断が入るでしょうねえ。

うつ病というよりは、神経症でしょうね。これは先祖代々からの申し送りで仕方がない。
まあ、そちらの分裂症といい勝負でしょう。分裂症にはお詳しいようですしね。
早く治るといいですね。
854デフォルトの名無しさん:2012/01/02(月) 00:54:50.85
>>852
触れなければいいのに、毎回無駄に突っかかってきてるお前こそキチガイだ。
ネット上の知識しかないのがよくわかるわ。
855デフォルトの名無しさん:2012/01/02(月) 01:01:48.89
>>853
いや神経症の括りじゃねーよ
見ている人はよーく分かると思うけど明らかに人格障害の領域に足を踏み込んでいる
さぞかし日常生活がお苦しいでしょうなあ
856デフォルトの名無しさん:2012/01/02(月) 01:02:59.38
突っかかる理由は、病気持ちだから。
857デフォルトの名無しさん:2012/01/02(月) 01:10:35.63
添付文書の読み方も知らないのに引用とか、恥さらしもいいとこだぞ。
858デフォルトの名無しさん:2012/01/02(月) 01:11:09.74
突っかかられるだけの理由がQにはある

それに句読点「。」を入れて書く癖がQにはある
Qを擁護する分には全て「。」が入っている

おっかしいなあ〜ww
859デフォルトの名無しさん:2012/01/02(月) 01:17:38.44
神経症と理解力が小学生未満なのって関係あるの?
860デフォルトの名無しさん:2012/01/02(月) 01:18:29.06
毎回Qzに粘着してるキチガイはお前で確定なんだろうけど、
ここまで酷いとは思わなかったぜ…。
861デフォルトの名無しさん:2012/01/02(月) 01:19:54.70
>>859
ないと思う
つまり理解力が常人未満なのに、「俺天才」だと思ってしまう所が自己愛なわけで
862デフォルトの名無しさん:2012/01/02(月) 01:27:48.22
突っかかる奴は、神経症と理解力が小学生未満だということ
863デフォルトの名無しさん:2012/01/02(月) 01:29:10.55
病気持ちの粘着はむごい
864デフォルトの名無しさん:2012/01/02(月) 01:30:20.23
おっ「。」を外すほど成長したか

>>862
馬鹿だなあ
俺が神経症なんてどこにも一言も書いてないのに
つい自分の事を言っちゃうんですよね
怖いねえ
言葉には気をつけないと
865デフォルトの名無しさん:2012/01/02(月) 01:32:59.85
いいかげんお前もトリップつけろ。
他の奴にとってはどっちも同レベルだよ。
866デフォルトの名無しさん:2012/01/02(月) 01:35:26.78
トリップ付ける奴は自己愛と相場が決まっている
867デフォルトの名無しさん:2012/01/02(月) 01:37:23.33
>>865
お前がクズ擁護派としてトリップつけてくれないかな
スルーしてればすむところを、今グダグダしてるのはお前が文句つけてるからだし
868デフォルトの名無しさん:2012/01/02(月) 01:39:18.45
なんつう言いがかりだよw
毎回いちいち粘着するのをやめるかトリップつけろっていってんだよ。
お前の方は自己愛でNG登録してもいちいち引っかかるんだよ。
869デフォルトの名無しさん:2012/01/02(月) 01:40:01.84
>>867
だよな

>>868
ようQ
元気か
870デフォルトの名無しさん:2012/01/02(月) 01:44:30.57
>>868
今のお前はQに粘着する奴に粘着する奴ってポジションで、普通に迷惑な存在になってるから
あと、Q並みに同一人物認定好きみたいだけど、俺は自己愛って言ってる人とは別だよ
871デフォルトの名無しさん:2012/01/02(月) 01:46:53.68
すまん。悪かった。
872デフォルトの名無しさん:2012/01/02(月) 02:03:15.22
Qに粘着する奴に粘着する奴
それに粘着する奴まで出てきたか。
873デフォルトの名無しさん:2012/01/02(月) 02:04:15.53
もう、ID導入してもらうしかないだろ。
874デフォルトの名無しさん:2012/01/02(月) 02:14:44.33
いや、Q一人のためにIDを導入する必要はない。
Qに出て行ってもらえば済む。
875デフォルトの名無しさん:2012/01/02(月) 02:45:13.68
ID入れる方が現実的
876デフォルトの名無しさん:2012/01/02(月) 02:49:44.67
ID入れたら影響が大きすぎる
ただでさえ過疎板のプログラム板が使い物にならなくなっちまう

ここより荒れているマ板ですらID無しだぞ
877デフォルトの名無しさん:2012/01/02(月) 02:51:33.65
878デフォルトの名無しさん:2012/01/02(月) 02:54:15.34
事実上荒れてるのこのスレだけだろ
このスレをID付きの板に移動しろよ
879デフォルトの名無しさん:2012/01/02(月) 03:26:04.03
>n(n-1)(n-2)(n-3) は 2, 3, 4 の各々で割り切れるからといって、2 * 3 * 4 で割り切れるかどうかの保障はない。
こんなこと言っちゃうぐらい頭の悪い奴にバカにされたら粘着したくなる気持ちもわかる
880デフォルトの名無しさん:2012/01/02(月) 03:46:31.66
>>878
てんさい
881 ◆QZaw55cn4c :2012/01/02(月) 03:46:57.56
>>879
証明抜きでは、馬鹿呼ばわりはできないでしょうねえ。一目では自明じゃないし。一目で証明できるのならすくなくとも私こと QZ より頭はいいと思います。よろしければその証明の道筋を教えてください。
でもね、証明方法はだいたいわかってはいましたけどね。いわゆる再帰的定義(漸化式)を使うんだろうな、と常々思っていましたし、nCr を求めよ、という問題に対してはその再帰的求値法を回答として第一に使用していましたしね。

うっかりリロードするとまあまあスレが伸びているなあ。ちょっとあきれましたが。
ともあれ、QZ叩き側に一人変なの存在することは証明抜きで自明なのには異論ないと思うのですがどうでしょう?
882 ◆QZaw55cn4c :2012/01/02(月) 03:59:38.38
>>874
という意見もあるので私はトリップをつけて >>874 に賛同する者に一定の便宜をはかっているのですけれども、それでこれですから、>>875 は現実的ではないんじゃないかなあ。
883デフォルトの名無しさん:2012/01/02(月) 04:47:05.44
誰か声のでかい人や、口当たりの良い事をいう人に付いていくだけで
本当に良いのかどうか、今から考えた方が将来の為になると思われ。
884デフォルトの名無しさん:2012/01/02(月) 08:08:34.44
真・スルー 何もレスせず本当にスルーする。簡単なようで一番難しい。
偽・スルー みんなにスルーを呼びかける。実はスルーできてない。
予告スルー レスしないと予告してからスルーする。
完全スルー スレに参加すること自体を放棄する。
無理スルー 元の話題がないのに必死でスルーを推奨する。滑稽。
失敗スルー 我慢できずにレスしてしまう。後から「暇だから遊んでやった」などと負け惜しみ。
願いスルー 失敗したレスに対してスルーをお願いする。ある意味3匹目。
激突スルー 話題自体がスルーの話に移行してまう。泥沼状態。
疎開スルー 本スレではスルーできたが、他スレでその話題を出してしまう。見つかると滑稽。
乞食スルー 情報だけもらって雑談はスルーする。
質問スルー 質問をスルーして雑談を続ける。
思い出スルー 攻撃中はスルーして、後日その思い出を語る。
真・自演スルー 議論に負けそうな時、ファビョった後に自演でスルーを呼びかける。
偽・自演スルー 誰も釣られないので、願いスルーのふりをする。狙うは4匹目。
3匹目のスルー 直接的にはスルーしてるが、反応した人に反応してしまう。
4匹目のスルー 3匹目に反応する。以降5匹6匹と続き、激突スルーへ。
885デフォルトの名無しさん:2012/01/02(月) 08:13:32.99
IDを導入するとQのコテを外しての自作自演も出来なくなりますよ( ̄ー ̄)ニヤリ
886デフォルトの名無しさん:2012/01/02(月) 08:56:36.97
上下で意味のことなる文章

一般人: 人の嫌がることを進んでしましょう
おまえら: 人の嫌がることを進んでしましょう

芸能人:よくキャーキャー騒がれる
おまえら:よくキャーキャー騒がれる

アップル:画期的な新製品
マイクロソフト:画期的な新製品
887デフォルトの名無しさん:2012/01/02(月) 12:59:58.99
>>881みたいに素直に自分の間違いを認められずにグダグダ言い訳するあたりも嫌われる理由だろうな
888デフォルトの名無しさん:2012/01/02(月) 13:06:36.24
>>887
痛い思いをさせられたからって恨むのは筋違い
889デフォルトの名無しさん:2012/01/02(月) 19:08:54.25
おまえらなんでQを叩いてるん?別に悪いやつじゃないじゃん
890デフォルトの名無しさん:2012/01/02(月) 20:05:02.53

い-635
ちなみに、平成18年度の民主党の収支報告書だが、
 電通が  690,150,988円(約6億9千万円)
 博報堂が 19,425,964円 (約2千万円)
 読売グループ系列(読売広告、読売メディアセンター)が 72,058,917円(約7千万円)なw
 フライシュマンヒラードジャパンが、1974000円かw
フライシュマンの本社はアメリカにあって、アメリカ政界や企業のPRも担当してるユダヤ系の会社だなw
ここが「マニュフェスト」っていう横文字を考えたんだなw

そういえば、今東電と電力総連がフライシュマンを雇ってるらしいじゃないww
札束で学者ひっぱたいてテレビででたらめ言わせても年寄なんかはまだまだテレビのいうことを信じるからなw
891デフォルトの名無しさん:2012/01/02(月) 20:05:30.13
>>889
ものすごく悪い奴だよ
頭も性格も
892デフォルトの名無しさん:2012/01/02(月) 20:15:28.51
>>891
自己紹介
893デフォルトの名無しさん:2012/01/02(月) 20:36:50.72
894デフォルトの名無しさん:2012/01/02(月) 20:40:46.08
Qが恥かいてることは多々あるけど、痛い思いをさせられた奴なんていんのか?
895デフォルトの名無しさん:2012/01/02(月) 20:47:24.45
勝手に恥をかきまくっているのは傍から見ていて面白いのに、つっかかるやつはなにを恨んでいるのだろう?
896デフォルトの名無しさん:2012/01/02(月) 21:02:42.05
Qは熱意がある
897デフォルトの名無しさん:2012/01/02(月) 21:12:10.67
ない
ただの馬鹿
898デフォルトの名無しさん:2012/01/02(月) 21:15:43.56
Qの熱意はみんなが認める
899デフォルトの名無しさん:2012/01/02(月) 21:22:13.24
Qはちゃんと調べるようになったかと思っていたが
再び妄想をソースにしはじめるようになったゴミ
900デフォルトの名無しさん:2012/01/02(月) 21:24:05.58
Qのソースは大半がググッて出てきた他人のソースを勝手にコピペして
貼りつけてるパクリだしな

たまにオリジナルがあるかと思うと馬鹿の一つ覚えでxmalloc()とか(笑)
901デフォルトの名無しさん:2012/01/02(月) 21:25:14.34
>妄想をソースに
たとえば?
902デフォルトの名無しさん:2012/01/02(月) 21:30:38.12
>>899
http://toro.2ch.net/test/read.cgi/tech/1324648274/459 をみると基本は一応おさえてるんじゃない?その後の発展の方向はめちゃくちゃやけど
903:デフォルトの名無しさん:2012/01/02(月) 22:58:51.16
[1] 授業単元:計算機アルゴリズムファイルへの書き込み
[2] 問題文(含コード&リンク):以下の実行例のように、キーボードから友人の名前(文字列)と生年月日(yyyymmdd形式のlong型変数)
を次々と読み込んで、そのデータをファイルに書きこむプログラムを作成せよ。

以下の要件を満たすとする
・書きこむのファイル名をユーザに入力させる
・同じ名前の友人の情報がすでに入力されたかどうかは確認しなくても良い。
・同じ名前のファイルはすでに存在する場合には、内容を上書きするものとする。
・作成されたファイルの中身は以下の実行例(catコマンドの結果)のようにするものとする。
・以下の実行例のように,1人文のデータを入力するごとに「続けますか(yse...1/NO...0:)」のように表示を促し1が入力されたら処理を続けるプログラムとする。


[3] 環境
 [3.1] OS:LINUX
 [3.2] コンパイラ名とバージョン:GCC
 [3.3] 言語:C
[4] 期限:[2012年1月4日9:00まで]
904:デフォルトの名無しさん:2012/01/02(月) 22:59:22.28
>>903続き
[5] その他の制限:[実行例]
書きこむファイル名:friends.txt
友人の名前:Goro
誕生日(yyyymmdd):19911001
続けますか?(yes...1/NO...0):1
友人の名前:Taro
誕生日(yyyymmdd):19890505
続けますか?(yes...1/NO...0):1
友人の名前:Akira
誕生日(yyyymmdd):19920222
続けますか?(yes...1/NO...0):0

%cat freinds.txt
Goro 19911001
Taro 19890505
Akira 19920222
宜しくお願いします。
905デフォルトの名無しさん:2012/01/02(月) 23:25:19.32
なんで出題者ってコンソールから入力させるやつ好きなんだろうな
不便な上に無駄に複雑で何もいいとこないのに
906デフォルトの名無しさん:2012/01/03(火) 00:04:44.71
複雑か?、応答プログラムとしては一番シンプルだと思うが
入力例も入力ファイルのリダイレクトをすれば毎回打つ必要も無いし
907デフォルトの名無しさん:2012/01/03(火) 00:10:49.08
コンソールで応答させるとプログラムが状態を持つことになるから複雑になる
俺は起動パラメータに指定するほうが好きだな
入力エラーの処理を一箇所に纏められるし
908デフォルトの名無しさん:2012/01/03(火) 00:12:56.48
コンソール以上に簡単な入力 I/F を >>905 が開発したと聞いて、やって来ました。

※ まあ、そこそこトラップがあると言うなら同意せざるを得ないが。
909デフォルトの名無しさん:2012/01/03(火) 00:14:55.50
標準入出力のありがたみが分からんとは嘆かわしい
910デフォルトの名無しさん:2012/01/03(火) 00:16:20.41
起動パラメータだと、プログラムの出力に応じた入力ができないだろ。

例えば、起動パラメータだけで、hit & blow とか作れるのか?
911デフォルトの名無しさん:2012/01/03(火) 00:27:01.37
俺が言いたいのは、
C言語学習のための課題で、本筋と関係がないくせに複雑になるコンソール入力をわざわざ使うのはどうなの?ってこと
はっきり言って>>903の課題はファイルへの書き込みよりもコンソール入力部分のほうが遥かに難しいじゃん

そりゃ普段必要ならコンソール入力使うわ
複雑たって経験者なら大したことないし
912デフォルトの名無しさん:2012/01/03(火) 00:30:43.29
ゲーム等は上下左右とABボタンが最悪あればいいから
入力インターフェースとしては非常にシンプルだな

ループの中でif (IsPush(UP)) { ... }
とか書けばいいだけだし

ただし入力インターフェースを準備するライブラリの構築とか
入力インターフェースが限定されてるが故に逆に処理が面倒になるってのはあるがw

書き込むファイル名や友人の名前、誕生日をドラクエ3の復活の呪文みたいに入力するのは苦痛でしかないw
913 ◆QZaw55cn4c :2012/01/03(火) 00:35:45.64
>>903
http://ideone.com/gn1Vj

>>899
こういう書き方にすれば「妄想をソースに」していない、ことになりますか?私としてはつまんないですけれどもね。
914デフォルトの名無しさん:2012/01/03(火) 00:36:26.11
>>911
>>906でも書いたが、入力リダイレクトを使えば良い
program.out < data.in
とか、

linuxの世界は入力・出力リダイレクトとパイプがあるから
実行ファイルのモジュール化が出来てそれぞれのモジュールをシンプルに作れて
複雑な事も出来るようになってる、あれは素晴らしい
915 ◆QZaw55cn4c :2012/01/03(火) 00:48:03.62
>>914
パイプとリダイレクトは GUI 全盛の世にあっては、いささか古臭いという気がしないでもないですが。
とはいうものの、GUI にパイプの考え方がないのは惜しい。
916デフォルトの名無しさん:2012/01/03(火) 00:57:08.50
何か一つ難癖を付けなきゃ気が済まないんだろうなQは
お前最低だよ
リアルでも嫌われ者だろ?
917デフォルトの名無しさん:2012/01/03(火) 00:57:20.21
レガシーおじさんだらけでキモい
下手に雑談に参加せず淡々と宿題を処理するのがいいみたいだな
918 ◆QZaw55cn4c :2012/01/03(火) 01:02:44.12
>>916
私見を述べているだけですね。それを難癖とか被害妄想もいいところ。統失ですか?
リアルでは天然ボケまくりの人気者です嘘です。
919デフォルトの名無しさん:2012/01/03(火) 01:11:47.94
開発する上でそのレガシーに触れないで済む現場ってどんなとこよ
920デフォルトの名無しさん:2012/01/03(火) 01:26:22.50
そもそもパイプ自体はWindowsにもあるだろ
って突っ込んじゃいけないのかな
921デフォルトの名無しさん:2012/01/03(火) 01:32:38.09
がんばって初心者向けに書いた
http://ideone.com/YP3ZT
922デフォルトの名無しさん:2012/01/03(火) 01:35:57.35
>>920
kwsk、クリップボードのこと?
923デフォルトの名無しさん:2012/01/03(火) 01:38:31.48
Windowsにももちろんあるな、
CygwinやWPS入れて無いデフォだとツール群が足りて無い感があるけどもやっぱり便利
924デフォルトの名無しさん:2012/01/03(火) 01:40:55.89
>>922
コンソールで

a.exe | b.exe

と書くと

a.exeの標準出力がb.exeの標準入力になる機能のこと

|をパイプと呼ぶ
925デフォルトの名無しさん:2012/01/03(火) 01:44:52.57
findstrは普通に便利
標準ってとこが特に
926デフォルトの名無しさん:2012/01/03(火) 01:44:52.35
>>913,921
C言語難しすぎワロタwww
出題者は自分で解答作ってみたんですかね^^;
927デフォルトの名無しさん:2012/01/03(火) 01:46:17.21
>>925
うにコードエンコーディングのファイルは探せなくね?
928デフォルトの名無しさん:2012/01/03(火) 01:51:19.65
>>927
知らんかったわ
ググッたら対処法見つけた
http://stackoverflow.com/questions/1196883/free-program-to-grep-unicode-text-files-in-windows
脱線すまそ
929デフォルトの名無しさん:2012/01/03(火) 01:53:33.36
>>918
と統失のQが申しております
私見が邪魔なんだよ
黙ってろ
930デフォルトの名無しさん:2012/01/03(火) 02:35:46.57
>>929
おまえが引っ込めばいいんだよ
931デフォルトの名無しさん:2012/01/03(火) 02:47:12.79
>>928
それで解決する内容をちゃんと理解してるのかちょっとだけ心配だよ
ユニコード(というくくりでいいのか?流れ的に。)ファイルの日本語は検索できないよ。
あと、findstrは他にもいろいろ残念な気持ちになることが多いので、携帯性の高いツール群を持っておくと便利。

年明けから激しくスレ違いでスマヌ
932デフォルトの名無しさん:2012/01/03(火) 03:17:07.02
>>931
utf-8だけはどう足掻いても使えないのね。
重宝してたのに残念だ。
933デフォルトの名無しさん:2012/01/03(火) 03:17:09.31
>>930
とコテを外したQが申しております
934デフォルトの名無しさん:2012/01/03(火) 07:16:49.93
>>933 >>930 >>929
自演乙
935デフォルトの名無しさん:2012/01/03(火) 22:27:22.56
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク): 一番下に
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2012/01/08
[5] その他の制限:プログラムを習い始めてまだ半年程度なので、出来るだけ簡単にお願いします

問: 4桁の数字を与えられたとき、4つの数字を一回ずつ使って(使用する 順序は問わない)10を作る。
使える演算は加減乗除。 例えば、
1234 --- 1+2+3+4 = 10
1234 --- 3*4-1*2 = 10
6789 --- (7+8)*6/9 = 10
6789 --- 8*(9-7)-6 = 10
6789 --- 6+8/(9-7) = 10
1199 --- (1+1/9)*9 = 10
のようにする。

4桁数字を与え、それを使って10になるような全ての数式を 出力するC言語のプログラムを作れ。


よろしくお願いします
936デフォルトの名無しさん:2012/01/03(火) 23:11:48.64
>>935
とりあえず、4つの数字を受け取って、計算する関数をてんこ盛りに作ってみてはどうか。
937デフォルトの名無しさん:2012/01/03(火) 23:37:03.82
>>935
RPNか。
938デフォルトの名無しさん:2012/01/03(火) 23:39:20.75
加減乗除+括弧?
939デフォルトの名無しさん:2012/01/03(火) 23:50:44.56
およそ39万通りか
940デフォルトの名無しさん:2012/01/04(水) 00:14:53.02
393939
941デフォルトの名無しさん:2012/01/04(水) 00:18:03.99
387,072通り中の4,241個であってる?
942デフォルトの名無しさん:2012/01/04(水) 00:27:07.56
とりあえずC#で
http://ideone.com/4B0Sp
943デフォルトの名無しさん:2012/01/04(水) 00:56:26.08
C#面白いな、こんなの出来るんだ
944デフォルトの名無しさん:2012/01/04(水) 00:58:52.98
yield returnはマジ便利
945デフォルトの名無しさん:2012/01/04(水) 01:02:43.57
Linqも使ってるよな
PLinqを使うとマルチコアが即使われるので結構いい
でも使い方に注意が必要だけど
946デフォルトの名無しさん:2012/01/04(水) 01:26:09.36
1199 1027 とかも、出して。
947デフォルトの名無しさん:2012/01/04(水) 01:54:28.73
CreateRPNs()内のcontinueを省いたらいけるよ
948デフォルトの名無しさん:2012/01/04(水) 05:04:55.81
>>935
C言語久しぶりに使ったから間違ってたらごめんね
http://ideone.com/tslcx
949デフォルトの名無しさん:2012/01/04(水) 09:55:55.78
>>935
10/10もOK?
950デフォルトの名無しさん:2012/01/04(水) 09:56:27.67
>>949
O 10/01
951デフォルトの名無しさん:2012/01/04(水) 10:37:00.48
935です。
>936
それでもできないことはないと思うんですが、抜けがあると思うと怖い…

>937
RPNなのかなあ。問にある例をみるとなんか違う気が。。。

>938
そうですね、問題文中には括弧書いてないですが、使えるはずです

>942,948
ありがとうございます!!
952デフォルトの名無しさん:2012/01/04(水) 12:10:25.30
>935
愚直に効率優先で書いてみた

http://ideone.com/aS7fd
953デフォルトの名無しさん:2012/01/04(水) 12:26:18.16
>>952
端数切捨てで計算狂ってる
954デフォルトの名無しさん:2012/01/04(水) 12:33:05.40
しまった。
有理数で計算しないと駄目か
955デフォルトの名無しさん:2012/01/04(水) 15:04:14.63
>>935
パクらせてもらって改造した
http://ideone.com/2TfCx
重複はなくなったはず
956デフォルトの名無しさん:2012/01/04(水) 15:06:26.85
こんなん全パターン計算してみるしかないだろ。ソース見てないが。
957デフォルトの名無しさん:2012/01/04(水) 15:18:09.92
いや、それは誰でもわかってるよ
むしろそうじゃないやり方のソースがあるなら知りたい
958デフォルトの名無しさん:2012/01/04(水) 15:31:45.25
[1] 授業単元:
[2] 問題文(含コード&リンク):C++でレースゲーム
・実行イメージ
-------------------------------------------
|・レースエントリー
| エントリー台数を入力してください→
|
|
|
|
エントリー台数を入力してスタート。
      
エントリー台数で入力した台数を表示し、画面を一周してゴール。何着かをそれぞれに表示。
最後にレース終了と表示で終了。
車は走ってる最中にスピードアップしたりする。
スピードアップ中はスピードが上がってるとわかる表示にする。
C++で作る。必ずポリモーフィズムを実装。
この仕様が最低条件なのでできればこれに+α加えてもらえればうれしいです。
お手数ですが、コメントのほうもお願いします
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2008
 [3.3] 言語: C++
[4] 期限: ([2012年1月8日13:00まで]
[5] その他の制限:お手数ですがコメントのほうよろしくお願いします。
959デフォルトの名無しさん:2012/01/04(水) 15:39:49.49
>>955
括弧が綺麗になってる!すげええ
960デフォルトの名無しさん:2012/01/04(水) 15:40:37.32
N個の数字と計算値が与えられたとき一つの解をできるだけ高速に求めるプログラム。
961デフォルトの名無しさん:2012/01/04(水) 15:47:30.39
> 画面を一周してゴール
コンソールアプリで画面一周させるってこと?
それともウィンドウに描画するの?
962デフォルトの名無しさん:2012/01/04(水) 15:52:52.22

           ______
          r〃〃〃 f7⌒ろ)
           l‖‖‖ ||   f灯
            |‖‖‖ ||   | |
            |儿儿儿._」⊥厶
           〔__o____o_≦ト、
.          i / ⌒  ⌒  ヽ )
          !゙ (・ )` ´( ・)   i/
          |  (_人__)    | \
          \  `ー'    /  / ー- 、
.          ,ィ(⊆≧リ≦⊇)〃   /     rク\
.       /   | ̄r少}¨ ̄〃   /    /′ ヽ
      〃 l   |  l| | l| 〃    /     /    └ヽ
     /    l  |l | |l/″   /      !  厂    \
    く,  Y   ! l」fレト!    /       | /        1
    丿  |   | 丿} じ’  /      | /         |
   /     l   | `¨      /      レ′        |

             真の思考停
    (在位 2009年9月16日〜2010年6月8日)

   民主朝の初代考停、言行不一致、虚言、脱税、
   そして外交において巨大な負の遺産を築いた。
963デフォルトの名無しさん:2012/01/04(水) 15:53:34.25
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):http://codepad.org/z9fLj3yb
3目ならべで決められた場所に○を入力(1 1とうったら真ん中に○)したいです。
上記のプログラムを改良してもらいたいですm(__)m
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: Visual studio 2010
 [3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限: 基本なことしか習ってませんm(__)m
964デフォルトの名無しさん:2012/01/04(水) 16:36:14.27
>>963
動くとこまで直したよ
ttp://codepad.org/opneQIN1
965デフォルトの名無しさん:2012/01/04(水) 16:46:36.11
966デフォルトの名無しさん:2012/01/04(水) 17:18:51.27
>>935で一つ見つけたらリターンするやつ。
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
#define ER(y,n,p) p=y.begin(); advance( p, n ); y.erase(p);
#define HN sk=keisan_sub(kei,ST, y); if(sk!="") return sk;

string keisan_sub(double kei, vector<string> siki, vector<double> x) {
int xsz=x.size(); if(xsz==1) { if(abs(x[0]-kei)<0.01) return siki[0]; return ""; }
int m,n; vector<double> y; vector<double>::iterator p; vector<string> ST; vector<string>::iterator q;
for(m=0;m<xsz-1;m++) for(n=m+1;n<xsz;n++) {
y=x; ST=siki; ER(y,n,p);ER(y,m,p); ER(ST,n,q);ER(ST,m,q);
string s=siki[m],t=siki[n],sk;
y.push_back(x[m]+x[n]); ST.push_back("(" + s + " + " + t + ")"); HN;
int sz=y.size()-1, STsz=ST.size()-1;
y[sz]=x[m]*x[n]; ST[STsz]="(" + s + " * " + t + ")"; HN;
y[sz]=x[m]-x[n]; ST[STsz]="(" + s + " - " + t + ")"; HN;
y[sz]=x[n]-x[m]; ST[STsz]="(" + t + " - " + s + ")"; HN;
y[sz]=x[m]/x[n]; ST[STsz]="(" + s + " / " + t + ")"; HN;
y[sz]=x[n]/x[m]; ST[STsz]="(" + t + " / " + s + ")"; HN;}
return ""; }

string keisan(double kei, vector<double> x) {
char c[9]; int n; vector<string> siki;
for(n=0; n<x.size(); n++) { sprintf(c,"%.1f", x[n]); siki.push_back(c); }
return keisan_sub(kei, siki, x); }

void main(){ vector<double> x; x.push_back(1); x.push_back(2); x.push_back(3); x.push_back(4); cout<<keisan(10, x)<<endl; }
967デフォルトの名無しさん:2012/01/04(水) 17:22:05.69
>>964
>>965
ありがとうございましたm(__)m
968デフォルトの名無しさん:2012/01/04(水) 17:48:39.92
[1] 授業単元:計算機アルゴリズムT
[2] 問題文(含コード&リンク):
設問1-1
y=2x2乗+3(-10≦x≦10)を刻み幅1で計算し、x、yの組を1行ごとにファイルに書き込むプログラムを作成しなさい。

設問1-2
上記設問1-1のプログラムが作成したファイルを読み込んで xとyの値をprintf文で表示するプログラムを作成しなさい。

[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C
[4] 期限:[2012年1月7日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
            繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
            条件分岐if文、要素番号idx使用の書換、データの入れ替え
            条件分岐・論理演算子を用いたif文の条件、if文、else if文
            switch文、ポインタ変数・演算子*と&、関数・プロトタイプ宣言と関数定義
            引数と戻り値、関数の引数とポインタ、関数に配列を渡し、呼び出し側へ戻す方法
            関数から関数を呼び出す方法、大域(global)変数、局所(local)変数、文字型変数
            文字列の代入、キーボードからの文字列入力、char型ポインタ変数
            構造体・メンバ変数への数値の代入、構造体・ポインタを使ってメンバ変数を指定
            ファイル操作・ファイルへのデータの書き込み、ファイルからのデータの読み込み
            EOFの判定は習いました。
宜しくお願いします。
969デフォルトの名無しさん:2012/01/04(水) 17:50:51.08
>>966
>  [3.3] 言語:C
970デフォルトの名無しさん:2012/01/04(水) 18:01:03.59
>>966
absでintに切り捨てられてるぞ
971デフォルトの名無しさん:2012/01/04(水) 18:07:59.74
972デフォルトの名無しさん:2012/01/04(水) 18:36:40.78
[1] 授業単元:信号処理
[2] 問題文(含コード&リンク):
問題文
ttp://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=5012
信号データ(function.txt)
ttp://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=5013
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C言語
[4] 期限: 2011年1月11日まで
[5] その他の制限: 使う関数は標準ライブラリーのみでよろしくお願いします
973デフォルトの名無しさん:2012/01/04(水) 19:06:19.42
974デフォルトの名無しさん:2012/01/04(水) 23:04:03.98
次スレ立てます
975デフォルトの名無しさん:2012/01/04(水) 23:05:26.56
次スレ立てました
C/C++の宿題片付けます 155代目
http://toro.2ch.net/test/read.cgi/tech/1325685876/
976デフォルトの名無しさん:2012/01/04(水) 23:09:27.32
つぎおつ
977デフォルトの名無しさん:2012/01/04(水) 23:49:34.53
>>973
プログラム作成本当に有難う御座います、誠に申し訳ないのですが
設問1-1のプログラム、設問1-2のプログラムという風に別々にあげてもらえないでしょうか?
お手数をおかけしますが宜しくお願いします
978デフォルトの名無しさん:2012/01/04(水) 23:53:31.03
ものもあって構成も簡単なんだから自分でやってみたらどうだろう
979デフォルトの名無しさん:2012/01/05(木) 00:04:58.34
>>978
そうですね
ちょっとやってみます

出来なかったら、また書き込みします
980デフォルトの名無しさん:2012/01/05(木) 00:28:14.60
>>973
>>978
有難う御座います

>>977の件は自己解決しました
981デフォルトの名無しさん
>>961
コンソールでお願いします。