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

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

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を
 入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
2デフォルトの名無しさん:2013/10/16(水) 16:53:18.02
【質問テンプレ】
[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++の宿題片付けます 165代目
http://toro.2ch.net/test/read.cgi/tech/1370255305/
3デフォルトの名無しさん:2013/10/16(水) 16:53:50.98
これまでのまとめ
・宿題の丸投げは問題文の著作権(著作権法 二十三条 公衆送信権)を侵害する。
・問題文には第三者の著作物が含まれている場合ある。
 著作権法第三十五条の規定により第三者の著作物が利用されている場合もある。
 問題丸投げは同条の規定外なので第三者の権利侵害にあたる
・丸投げを煽るテンプレは著作権侵害の教唆にあたる
・宿題丸投げはカンニングと同等の行為として学則による処罰の対象になる。
・悪質なカンニング行為は偽計業務妨害(刑法 二百三十三条)として捜査の対象になる。
・カンニング行為を煽っているテンプレはその教唆犯(刑法 六十一条)

以上、宿題丸投げスレは違法行為を煽り、テンプレ自体も犯罪行為であることが明確に
なったので、これ以上の継続は無用
4デフォルトの名無しさん:2013/10/16(水) 16:55:22.12
本科目の受講生より、こちらにて出題の課題を
インターネットに投稿している者がいるとの連絡を受けました。
今回の課題は学生の理解を深める為に個別レポートとして出題されたものであり、
問題の解答そのものを丸投げすることは課題の趣旨に反する行為となります。

初回の講義でお話しましたように、ソースコードの書き方には個人差があり、
過去に提出したレポートなどから本人が書いたものかどうか判別することは十分可能です。

他人が書いたソースコードをレポートとして提出することは重大な不正行為に当たります。
提出されたレポートにおいて不正が確認された場合、本学の懲罰規程に従い厳しく処罰されます。

締切りはまだ時間もいくらか残されていますので、
この問題を投稿した、または参考に読んでいる学生には自分の力で
今回の課題に取り組んで頂けることを期待しています。
5デフォルトの名無しさん:2013/10/16(水) 17:06:30.70
3 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん


4 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
6デフォルトの名無しさん:2013/10/16(水) 17:10:02.09
>>3
関係ねえよ

>>4
関係ねえよ
7デフォルトの名無しさん:2013/10/16(水) 17:33:53.38
次回から、推奨NGワードに「違法行為」いれた方がいい?
8デフォルトの名無しさん:2013/10/16(水) 18:30:53.29
>>7 違法はすでに入ってる
9デフォルトの名無しさん:2013/10/16(水) 19:09:05.21
そうだぬ
10デフォルトの名無しさん:2013/10/17(木) 05:18:39.58
前スレ >>984

984 :デフォルトの名無しさん:2013/10/16(水) 13:06:20.87
1 授業単元 プログラミング
2 問題 高さh、質量m、初速度vを入力して、物体の軌跡を計算し、グラフを描画(SVGファイルを出力)する。


http://ideone.com/sKEPtl
変更は受け付けない
11デフォルトの名無しさん:2013/10/17(木) 14:27:01.45
>>10
スタート地点のボールが四半円になってませんか?
12デフォルトの名無しさん:2013/10/17(木) 14:43:43.16
>>11
だから?
仕様も環境もまともに書かない奴にはこれで十分だ
13デフォルトの名無しさん:2013/10/17(木) 14:52:20.81
cout に << flush したい衝動に駆られている
14デフォルトの名無しさん:2013/10/17(木) 15:16:54.81
そんなに言うなら自分で書けばいいじゃん
なんなの?
15デフォルトの名無しさん:2013/10/17(木) 21:04:18.01
仕様や環境の提示がまともかどうかと、
回答に問題がまともかどうかは、別の話
16デフォルトの名無しさん:2013/10/17(木) 21:05:02.63
回答がまともかどうかは、別の話
17デフォルトの名無しさん:2013/10/17(木) 22:37:46.95
linux使いとしてはグラフ云々はさっぱりw
放物線は二次関数で一発でしょ。
y''=-g を時間で二回積分すればいい。
x'=0だから簡単。
18デフォルトの名無しさん:2013/10/17(木) 22:55:25.50
>>17
SVGはただのテキストファイルだぞ?
19デフォルトの名無しさん:2013/10/17(木) 23:07:51.36
と言うかSVGを比較的扱いやすいInkscapeはLinuxが主戦場だったり。
20デフォルトの名無しさん:2013/10/18(金) 05:16:35.11
>>16
だからそこまで言うなら自分が書けばいいだろと。

vcかどうかも、グラフに何が必要かも書いてない。
他人に頼むときにも適当な野郎には、適当な回答で十分だよ。
21デフォルトの名無しさん:2013/10/18(金) 08:12:35.64
あれ、鉛直下向きに投げ下ろしたら放物線じゃないよな
しかも軌跡なんだから縦に直線引けば常に正しいはず
22デフォルトの名無しさん:2013/10/18(金) 08:14:05.19
重力と空気抵抗の条件が書いてない時点でどうしようもないだろ
23デフォルトの名無しさん:2013/10/18(金) 08:50:30.84
>>21
正解

>>10 は不正解
24デフォルトの名無しさん:2013/10/18(金) 09:12:03.15
>>21
>>10
>初速度v
だから、普通の頭で考えれば、3次元。
演習で簡易な設定なら2次元。
25デフォルトの名無しさん:2013/10/18(金) 09:33:37.12
ひねくれ王でも決めてるのか?
26デフォルトの名無しさん:2013/10/18(金) 10:32:59.47
>>23
ちがう
>>10 で正解
>>24 も言ってるように v はベクトル
27デフォルトの名無しさん:2013/10/18(金) 10:35:02.56
いやw
問題には「鉛直下向き」と表現されているのだから
ベクトルでも水平成分は0とみなすので縦に直線で良いんよ
28デフォルトの名無しさん:2013/10/18(金) 10:40:08.14
>>18
不勉強をお詫びします。
29デフォルトの名無しさん:2013/10/18(金) 10:48:46.17
水平成分がなかろうと、時間について表示すれば二次元になるだろ。
30デフォルトの名無しさん:2013/10/18(金) 10:57:08.56
(二次元の)グラフには縦軸と横軸とそれぞれの単位を書きなさいって
小学校の先生が言ってた
31デフォルトの名無しさん:2013/10/18(金) 10:58:48.14
そういう機能はいらないです
32710:2013/10/18(金) 12:08:41.49
>>22
子どもかよ (w
33デフォルトの名無しさん:2013/10/18(金) 12:40:21.55
>>22
その理屈だと、鳥が邪魔する可能性についても記述が無いなw
34デフォルトの名無しさん:2013/10/18(金) 18:41:43.89
>>33
鳥がコリージョンを起こしたり、鳥のワーム自動除去機能や、繁殖期における干渉についても記述のほしいところだ
35デフォルトの名無しさん:2013/10/18(金) 21:34:11.21
飛んでいるジェット機が衝突する可能性とか、落ちてきた隕石と衝突する可能性とか
36デフォルトの名無しさん:2013/10/18(金) 21:45:19.84
ヒッグス場を考慮する必要がある
37デフォルトの名無しさん:2013/10/18(金) 22:41:18.98
空気抵抗は微分方程式を解けばいい。
結局 終端速度で落っこちてくる。
38デフォルトの名無しさん:2013/10/19(土) 20:18:22.16
>>34
RFCを参照だなw
39デフォルトの名無しさん:2013/10/20(日) 03:01:38.45
>>24
普通の頭ってなんだよw
用語としてなら>>26の言うとおりベクトルであって次元は関係ない
むしろ普通に考えたら水平投射の速さの事だろ
なのに鉛直下向き指定があるから矛盾しないように解釈すると>>21になる
空気抵抗とか鳥は指定ないから考慮したい人だけすればいい
40デフォルトの名無しさん:2013/10/20(日) 09:16:45.57
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 金額を入力してお札のカウントをする。1万はman,5千はgo,千はsenとする。89000円と入力したらman=8 go=1,sen=4になるようにカウントする。
[3] 環境
 [3.1] OS: windos8
 [3.3] 言語: C
[4] 期限: ([2013 10 20 18時まで
全然分からなかったので、やさしい方教えてください。
41デフォルトの名無しさん:2013/10/20(日) 09:36:25.69
>>40
#include <stdio.h>
int main(void)
{
int kingaku, man, go, sen;/* 変数を定義 */
printf("金額=");/* 入力を促すための表示 */
scanf("%d", &kingaku);/* 金額を入力 */
man = kingaku / 10000;/* 1万円札の枚数。manはint(整数)のため、小数点以下は切捨てられる。 */
kingaku = kingaku % 10000;/* 10000で割った余り */
go = kingaku / 5000;/* 5000円札の枚数 */
kingaku = kingaku % 5000;/* 5000で割った余り */
sen = kingaku / 1000;/* 1000円札の枚数 */
printf("man=%d go=%d,sen=%d¥n", man, go, sen);
return 0;
}
42デフォルトの名無しさん:2013/10/20(日) 09:59:45.66
解答1.
x=89000;
man=x/10000;
go=(x%10000)/5000;
sen=(x%10000)%5000;

解答2.
x=89000;
sen=x/1000;
go=sen/5; sen-=go*5;
man=go/2; go-=man*2;
43デフォルトの名無しさん:2013/10/20(日) 10:31:56.63
>>40,41
ありがとうございます。
#include <stdio.h>
int main(void) {
int kingaku, man, go, sen;
printf("Input Okane->");
scanf("%d", &kingaku);
man=kingaku/10000;
go=(kingaku%10000)/5000;
sen=(kingaku%10000)%5000;
printf("10000[en]=%d\n",man);
printf("5000[en]=%d\n",go);
printf("1000[en]=%d\n",sen);
return 0;

このようにやったらsenのあたいが4000になります(-_-;)
どこが違いますか?
44デフォルトの名無しさん:2013/10/20(日) 10:36:10.51
丸投げする奴って一片たりとも自分で考える気無いんだな
45デフォルトの名無しさん:2013/10/20(日) 10:39:00.96
オリンピック記念10万円硬貨とか
二千円札とかを忘れないで
46デフォルトの名無しさん:2013/10/20(日) 10:46:04.91
>>39
時間と位置のグラフなら放物線になるんじゃないの?
47デフォルトの名無しさん:2013/10/20(日) 10:46:32.48
>>44
そういうスレだから
嫌なら見るな
48デフォルトの名無しさん:2013/10/20(日) 11:21:52.32
うむ、日本の将来を担う優秀なバイトテロ戦士もこういったスレで育つのだから

嫌なら見るな
49デフォルトの名無しさん:2013/10/20(日) 11:53:15.14
>>46
グラフには縦軸や横軸や単位を書けと小学校の時に習うぞ
50デフォルトの名無しさん:2013/10/20(日) 13:34:01.69
vはvelocityのv
51デフォルトの名無しさん:2013/10/20(日) 13:59:45.94
でもベクトルって指定してないんだから位置なら間違って無くね?
なんで間違いって事になってんの?
52デフォルトの名無しさん:2013/10/20(日) 16:25:51.24
速度はベクトルだぞ?
53デフォルトの名無しさん:2013/10/20(日) 16:35:04.20
//片付けお願いします。

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

#define N 300

int i;

void BubbleSort(int *p,int *q,int *pp,int *qq);

int main (void)
{
int aa=0,bb=0,cc=0,idt[N];

srand((unsigned)time(NULL));

printf("ソート前\n");

for(i=0;i<N;i++)
{
idt[i]=rand()%N;
printf("%4d",idt[i]);
}

printf("\n\nソート後\n");

BubbleSort(&aa,&bb,&cc,idt);
54デフォルトの名無しさん:2013/10/20(日) 16:35:37.50
for(i=0;i<N;i++)
{
printf("%4d",idt[i]);
}
printf("\nwhile %6d\n",aa);
printf("for %6d\n",bb);
printf("if %6d\n",cc);

return 0;
}
55デフォルトの名無しさん:2013/10/20(日) 16:36:07.89
void BubbleSort(int *p,int *q,int *pp,int *qq)
{
int loop=1,tmp;

while(loop)
{
loop=0;
for(i=0;i<N-1-*p;i++)
{
if(qq[i]>qq[i+1])
{
tmp=qq[i];
qq[i]=qq[i+1];
qq[i+1]=tmp;

*pp++;
loop=1;
}
*q++;
}
*p++;
}
return;
}
56デフォルトの名無しさん:2013/10/20(日) 16:39:21.92
>>52
表示するのは速度ともスカラーともベクトルとも言って無くね
57デフォルトの名無しさん:2013/10/20(日) 16:43:44.47
ベクトルの意味がわかってなさそうな奴がいるな
58デフォルトの名無しさん:2013/10/20(日) 17:19:25.84
>>46,56
軌跡って言ってんだろ節穴か
59デフォルトの名無しさん:2013/10/20(日) 17:46:53.48
授業単元:プログラミング
[2] 問題文(含コード&リンク):
10000秒を入力して、2時間46分40秒と表示させるにはどうすればよいですか?[3] 環境
 [3.1] OS: windos8
60 ◆QZaw55cn4c :2013/10/20(日) 17:58:07.06
>>59
ごめん win8 もってないんだ…
61デフォルトの名無しさん:2013/10/20(日) 18:01:43.99
>>59
テンプレ全部書けよw
62デフォルトの名無しさん:2013/10/20(日) 18:10:50.18
不法行為を煽るな犯罪者め
63デフォルトの名無しさん:2013/10/20(日) 18:18:09.55
64デフォルトの名無しさん:2013/10/20(日) 18:19:33.02
>>59
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <limits.h>
int input_str(char *buf, size_t size) {
if (!buf || !size || !fgets(buf, size, stdin)) return 0;
if ((buf = strchr(buf, '\n'))) *buf = '\0';
else while (getchar() != '\n');
return 1;
}
int input_num(int *num) {
unsigned long val;
char buf[16], *end;
if (!num || !input_str(buf, sizeof buf)) return 0;
val = strtoul(buf, &end, 10);
if (errno == ERANGE || !*buf || *end || val > INT_MAX) return 0;
*num = (int)val;
return 1;
}
int main(void) {
int h, m, s;
printf("何秒?");
if (input_num(&s)) {
h = s / 3600; s %= 3600;
m = s / 60; s %= 60;
printf("%d時間%d分%d秒\n", h, m, s);
}
return 0;
}
65デフォルトの名無しさん:2013/10/20(日) 19:16:12.59
>>56
スカラーなら速さ
66デフォルトの名無しさん:2013/10/20(日) 19:19:34.90
#include <stdio.h>
int main( int argc, char** argv ){
int sec = 0;
if( scanf("%d",&sec) == 1 ){
printf("%d時間%d分%d秒\n",
sec / (60*60),
( sec / 60 ) % 60,
sec % 60
);
}
return 0;
}
67デフォルトの名無しさん:2013/10/20(日) 19:20:37.84
>>65
問題文に記載がないという意味だろ
68デフォルトの名無しさん:2013/10/21(月) 01:23:21.58
初速度vがベクトルw
高校出てなさそうw
69デフォルトの名無しさん:2013/10/21(月) 02:20:00.98
>>68
恥ずかしいやつだな
70デフォルトの名無しさん:2013/10/21(月) 13:40:57.69
高校生だろ
71デフォルトの名無しさん:2013/10/21(月) 18:09:53.54
72デフォルトの名無しさん:2013/10/21(月) 18:31:19.42
73デフォルトの名無しさん:2013/10/21(月) 18:51:00.85
力作やな
74デフォルトの名無しさん:2013/10/21(月) 19:22:03.98
昔 sci.lang だったか comp.lang だったかで骨とかいろいろ漢字のAA書いてた人いたねCJK統合の前の話ね
75デフォルトの名無しさん:2013/10/21(月) 19:33:44.89
76デフォルトの名無しさん:2013/10/22(火) 00:44:59.16
ツール使ったにしろ変換したにしろ、
普通にコード書くより手間かかった力作なのは事実だろう。
77デフォルトの名無しさん:2013/10/22(火) 01:03:24.22
78デフォルトの名無しさん:2013/10/22(火) 01:14:03.12
>>77
それを見つけてきて出力を整形する手間は59を解く手間と比較して小さいのか?って事だろ。
人によるけど、%dじゃ駄目で全角で吐けってなったあたりでもギリギリ釣り合わない程度じゃない?
79デフォルトの名無しさん:2013/10/22(火) 01:35:59.01
>>78
これを使ったと言っているんじゃなく、こういうものがあるということ。
もっと丁寧に探せば、簡単に使えるものが見つかるんじゃないかな?
80デフォルトの名無しさん:2013/10/22(火) 01:38:05.82
確か16ドットの漢字フォントイメージはフリーであったんじゃなかった?
81デフォルトの名無しさん:2013/10/22(火) 02:55:03.03
>もっと丁寧に探せば
その労力、プライスレス
82デフォルトの名無しさん:2013/10/22(火) 04:42:51.56
プログラムが偉大なのではなく
フォント作者が偉大なのだ
83デフォルトの名無しさん:2013/10/22(火) 04:58:29.14
84デフォルトの名無しさん:2013/10/22(火) 10:19:03.68
フォント作者ってちまちまこういうのずっと考えてんのか?w
85デフォルトの名無しさん:2013/10/22(火) 12:17:34.37
>>82
フォントだよねっ!
86デフォルトの名無しさん:2013/10/22(火) 13:35:10.33
フォントフォント
87デフォルトの名無しさん:2013/10/24(木) 19:46:40.98
フォントの流れにデファブを感じる
88デフォルトの名無しさん:2013/10/25(金) 00:17:57.15
あるあるFとJの入力ミス
89デフォルトの名無しさん:2013/10/25(金) 09:43:01.00
[1] 授業単元: 現象数理
[2] 問題文(含コード&リンク):
f(x) = cosx - x^2 = 0 の近似解を求めるプログラムを作り、以下の問題を解け。
なお、二分法を用いること。

a = 0, b = 1 からa, b, c の値を求める。

|b - a| < 10^(−6) の条件を満たすまで実行し、
もしくはこの条件を満たさない場合は30 回実行し、各回のa, b, cの値をまとめる。
[3] 環境
 [3.1] OS:Linux
 [3.3] 言語:C
[4] 期限:2013年10月26日24:00まで
[5] その他の制限:特にありません。
お願いします。
90デフォルトの名無しさん:2013/10/25(金) 12:03:44.69
>>89
二分法ってこうやるんだっけ?
http://ideone.com/7tNmQk
91デフォルトの名無しさん:2013/10/26(土) 10:03:06.15
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
[3] 環境
下のような指定ノードの次にノードを挿入する関数をカーソル版とポインタ版で作成しなさい。
カーソル版
void InsertAfter(List *list, Index idx, const Member *x);
ポインタ版
void InsertAfter(List *list, Node *p, const Member *x);
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限:10/27
92デフォルトの名無しさん:2013/10/26(土) 14:12:49.25
>>91
(List・Index・Member・Node)の定義を教えてちょうだい
93デフォルトの名無しさん:2013/10/26(土) 14:47:06.22
リスト構造Memberにリスト構造Listを挿入

挿入時にidx番目に挿入
挿入時にNodeの次or前に挿入
じゃないのか
94デフォルトの名無しさん:2013/10/26(土) 14:57:18.90
>>93
想像で物を言うな。いいかげんなやつだな。
95デフォルトの名無しさん:2013/10/26(土) 15:02:14.48
想像でって超解釈でもしなきゃ>>93だろ。
フィールド名がわからないから、定義ないと書けないだけで。
96デフォルトの名無しさん:2013/10/26(土) 15:16:06.00
>>95
だから想像だろ。無責任なことを言うな。
97デフォルトの名無しさん:2013/10/26(土) 16:38:54.36
>>96
>>91の不足分はこっちでこうなのか?と確認する必要があるだろ
98デフォルトの名無しさん:2013/10/26(土) 17:03:59.54
>>92
すみません。
List 線形リストを管理するための構造体。複数のメンバで構成されている。
Index カーソルの型。カーソルは単なる整数値なのでint型の同義語として定義。
Node 線形リストのノードを表すのが高Node。
99デフォルトの名無しさん:2013/10/26(土) 17:06:00.40
>>96
推測通りだったわけだが、今どんな気持ち?
100デフォルトの名無しさん:2013/10/26(土) 17:06:02.32
>>92 誤字
線形リストのノードを表すのが高Node。→線形リストのノードを表すのが構造体Node。 
101デフォルトの名無しさん:2013/10/26(土) 17:08:10.09
>>100
メンバがたくさんって、メンバは勝手に定義していいのかよ
違うならきちんと定義の中身も書け
102デフォルトの名無しさん:2013/10/26(土) 17:12:07.76
とりあえずIndexとNextとPreviousでいいんでね
103デフォルトの名無しさん:2013/10/26(土) 17:13:18.92
>>99
全然違うだろうがw
104デフォルトの名無しさん:2013/10/26(土) 17:22:09.72
>>98
Memberはなにを表すの?
List・Index・Member・Nodeのプログラムの定義があるならそれ教えて
105デフォルトの名無しさん:2013/10/26(土) 17:29:07.58
>>104
> List 線形リストを管理するための構造体。複数のメンバで構成されている。
「複数のメンバで構成されている。」

暇潰しか
106デフォルトの名無しさん:2013/10/26(土) 17:44:14.57
>>98
すみませんMemberについてですが自作のヘッダファイルがありました。
https://www.dropbox.com/s/ipz9hw7abiwa5x3/Member.h
107デフォルトの名無しさん:2013/10/26(土) 17:45:48.85
108デフォルトの名無しさん:2013/10/26(土) 17:47:32.35
>>106
なるほど。
List・Index・Nodeはある?
109デフォルトの名無しさん:2013/10/26(土) 17:58:04.15
>>108
何度もすみません
それぞれにヘッダファイルありました。
これで大丈夫でしょうか
https://www.dropbox.com/sh/p8egv8tnrmyjr6w/YDRNt2F3fc
110デフォルトの名無しさん:2013/10/26(土) 18:09:20.27
>>109
うん、おk。
探せば答えも出てくるんじゃないかと思えてきた。

あとは>>93とこのスレのみんなが頑張ってくれるよ。
111デフォルトの名無しさん:2013/10/26(土) 19:02:08.64
コードも書かない奴がなんで仕切ってるの
112デフォルトの名無しさん:2013/10/26(土) 19:12:59.10
コードを書くやつより、書かせる奴のほうが偉いからじゃないの?
113デフォルトの名無しさん:2013/10/26(土) 19:47:59.00
ここは俺が書いてみたからこのコード見ながら学習してみれ、ってとこだと思ってたが違うのか、
一時的な師弟関係・講師生徒関係の場で教わる側が偉いときってどういう時よ
114デフォルトの名無しさん:2013/10/26(土) 19:50:53.66
>>110
ここまで答えさせといて丸投げとか
やっぱり暇つぶしじゃないか
115デフォルトの名無しさん:2013/10/26(土) 20:37:53.02
>>112
ゴミが喋ってる…
116デフォルトの名無しさん:2013/10/26(土) 20:49:23.32
社長←書かない
下っ端←書く
117デフォルトの名無しさん:2013/10/26(土) 21:06:14.64
>>109
AllocNodeとかSetNodeもあるんじゃねぇの?

>>91
>>110
参考書は http://www.sbcr.jp/products/4797366242.html これか。
> 付録1 章末問題の解答
・・・書籍に乗ってる問題そのものだった場合回答も付属してるだろうな。
118デフォルトの名無しさん:2013/10/26(土) 21:08:23.62
今のところみんな社長!
119デフォルトの名無しさん:2013/10/26(土) 21:41:54.75
osのカーネルソースにずばりそのものがあるんじゃないの?
120デフォルトの名無しさん:2013/10/27(日) 03:50:48.37
初めまして。
ピタゴラスの定理(C*2=A*2+B*2)を題材にした課題を解いて頂けませんか。
入力した斜辺Cの数値から辺Aと辺Bの長さを回答するプログラムを製作しろとのことです。
http://www.dotup.org/uploda/www.dotup.org4614357.png
一応ここまでやりまましたが、斜辺として適当な数字を入力した場合は正しい答えが表示されるのに対して、
本来ならエラーが表示されるべき数字を入力した場合は上の画像のように変な数字が表示されます。
数式の定義が良くないのかと思い、他に「a*a+b*b<c*c」なども試してみましたが、エラーが表示されるようになった代わりに正しい答えが表示されなくなりました。
私ではもう手に負えないので助けてください。

授業単元:プログラミング
問題文:上の説明を参照してください
環境:Mac OSX 10.9 Xcode 5.0.1
言語:C言語
期限:3日以内
制限:特に無し
121デフォルトの名無しさん:2013/10/27(日) 03:59:15.58
なんだこの短いのに汚いソースコードは…
122デフォルトの名無しさん:2013/10/27(日) 04:01:14.88
インデント狂ってるとイライラする
123デフォルトの名無しさん:2013/10/27(日) 04:13:02.41
>>120
uint32_t
65536*65536=0
124デフォルトの名無しさん:2013/10/27(日) 08:35:22.51
つ条件 a < c, b< c
125デフォルトの名無しさん:2013/10/27(日) 08:58:45.94
>>124
すいません、どのように記述すべきか詳しく教えてください。
126デフォルトの名無しさん:2013/10/27(日) 10:05:44.82
解決しました。ありがとうございました。
127デフォルトの名無しさん:2013/10/27(日) 11:26:08.65
改めて書き直します。よろしくお願いします。
[2] 問題文(含コード&リンク):
下のような指定ノードの次にノードを挿入する関数をカーソル版とポインタ版で作成しなさい。
カーソル版
void InsertAfter(List *list, Index idx, const Member *x);
ポインタ版
void InsertAfter(List *list, Node *p, const Member *x);

その章の全例題(演習問題込み)のソースです。
https://www.dropbox.com/sh/tmlnk4mnmduveh8/TW7DEZOIiW
 [3.1] OS: Windows 7
 [3.3] 言語: C
[4] 期限:10/27〜28
128デフォルトの名無しさん:2013/10/27(日) 11:58:47.97
129デフォルトの名無しさん:2013/10/27(日) 14:59:56.32
>>127
void InsertAfter(List *list, Index idx, const Member *x)
{
 Index i = GetIndex(list);
 Index j = Retrieve(list, idx);
 SetNode(&list->n[i], x, list->n[j].next);
 list->n[j].next = i;
 list->crnt = i;
}

void InsertAfter(List *list, Node *p, const Member *x)
{
 Node *n = AllocNode();
 SetNode(n, x, p->next);
 p->next = n;
 list->crnt = n;
}
130デフォルトの名無しさん:2013/10/27(日) 18:27:31.04
#include <stdio.h>

main() {
char t2[16];
char t1[16];
char s[] = "test-data0123456789";

t2[0] = 'S';
t2[1] = '\0';

int i = 0;
do {
t1[i] = s[i];
} while (s[i++] != '\0');

puts(t1);
puts(t2);

int* ptr = (int*)t1;
printf("%d\n", *ptr);
}
cの課題です
これの出力が
test-data0123456789
789
1953719668
となりますが、なぜputs(t2);がこのような出力になるのでしょうか?
t2は関係ないと思うのですが、、
それと最後の行は全くわかりません
どなたかよろしくお願いします。
131デフォルトの名無しさん:2013/10/27(日) 19:00:12.58
>>130
sは'\0'も含めて20文字。
t1のサイズは16文字。
書き込み先が溢れてt2のところにまで書き込まれるんでしょね。
1953719668は16進にすると74736574。
文字にするとtset。リトル何とかで逆になってるんでしょね。
132デフォルトの名無しさん:2013/10/27(日) 20:05:32.94
>>130
> } while (s[i++] != '\0');

のループをぬけた時の i の値は?
133デフォルトの名無しさん:2013/10/27(日) 21:28:13.08
解の公式使って実数解、重解、虚数解のときのxの解を求めるんだけど
動くことは動くんだけど計算式に#とか紛れ込んでておかしく表示される
ちょっとだれか教えてください。
#include<stdio.h>
#include<math.h>
int main(void){

double a,b,c,D,sd,x1,x2,x3;
printf("Input a, b and c ->");
scanf("%lf%lf%lf",&amp;a,&amp;b,&amp;c);
a!=0;
D=(b*b)-(4*a*c);
sd=sqrt(D);
x1=(-1*b+sd)/(2*a);
x2=(-1*b-sd)/(2*a);
x3=(-b)/(2*a);
a!=0;
if(D>0){
printf("Imaginary Root\n");
printf("x=%.3f\n",x1);
printf("x=%.3f\n",x2);
}else if(D==0){
printf("Imaginary Root\n");
printf("x=%.3f\n",x3);
}else{
printf("Imahinary Root\n");
printf("x=%.3f + %.3f\n",(-1*b)/(2*a),sd/(2*a));
printf("x=%.3f - %.3f\n",(-1*b)/(2*a),sd/(2*a));
}
return 0;
}
134デフォルトの名無しさん:2013/10/27(日) 22:23:56.83
sd=sqrt(abs(D));
doubleは実数で、複素数ではないよ
135デフォルトの名無しさん:2013/10/27(日) 23:54:04.21
>a!=0;
>D=(b*b)-(4*a*c);
136デフォルトの名無しさん:2013/10/28(月) 00:57:03.19
パケットを16進数で受信して,パケット毎に宛先IPアドレスと宛先ポート番号の組み合わせの通りを出力するプログラムをC++のmapを利用して出力するプログラムを教えてください。
137136:2013/10/28(月) 01:16:02.68
>>136
パケットを16進数で受信するプログラムは作成したのですが、
mapのプログラムがわかりません。
keyをstringで宛先IPアドレスと宛先ポート番号の組み合わせ
値をobject(他のクラスで継承)
のプログラムですお願いします。
138デフォルトの名無しさん:2013/10/28(月) 01:32:38.70
>>136-137
よく>>1-2を読め。
悪いが君の説明では何を作るのかを十分説明できていない。
139デフォルトの名無しさん:2013/10/28(月) 08:12:07.88
mapは
「宛先IPアドレスと宛先ポート番号の組み合わせ」をキー
「宛先IPアドレスと宛先ポート番号の組み合わせの現れた回数」を値
とする集合のことじゃないか?
140デフォルトの名無しさん:2013/10/28(月) 08:16:02.56
本科目の受講生より、こちらにて出題の課題を
インターネットに投稿している者がいるとの連絡を受けました。
今回の課題は学生の理解を深める為に個別レポートとして出題されたものであり、
問題の解答そのものを丸投げすることは課題の趣旨に反する行為となります。

初回の講義でお話しましたように、ソースコードの書き方には個人差があり、
過去に提出したレポートなどから本人が書いたものかどうか判別することは十分可能です。

他人が書いたソースコードをレポートとして提出することは重大な不正行為に当たります。
提出されたレポートにおいて不正が確認された場合、本学の懲罰規程に従い厳しく処罰されます。

締切りはまだ時間もいくらか残されていますので、
この問題を投稿した、または参考に読んでいる学生には自分の力で
今回の課題に取り組んで頂けることを期待しています。
141デフォルトの名無しさん:2013/10/28(月) 08:17:53.27
pcap のソースが参考になる
142デフォルトの名無しさん:2013/10/28(月) 11:33:00.06
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
テキストファイルを作りそのなかに整数5個数字を入れるそのテキストファイルの中身を出力せよ
input関数とshow関数を作ること
コマンド引数にテキストファイルの名前を入れること
[3] 環境
 [3.1] OS: (Windows/Linux/等々) windows
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) Cのみ
[5] その他の制限: ぽいんたーまで習っています

ファイルのポインターのところがわからず詰んでいます

お願いします
143デフォルトの名無しさん:2013/10/28(月) 11:44:38.47
>>142
テキスト作成、整数書き込みもプログラムがやるの?
144デフォルトの名無しさん:2013/10/28(月) 12:07:10.33
145デフォルトの名無しさん:2013/10/28(月) 12:14:35.63
>>143
言葉足らずでしたがテキストは作成済みで読み込んで表示だけです
>>144
ありがとうございます。
理解できるようにがんばります。
146デフォルトの名無しさん:2013/10/28(月) 12:47:48.27
>>141
パケットキャプチャじゃなくて、ソケットプログラム書いてるんだと予想。
147デフォルトの名無しさん:2013/10/28(月) 13:23:07.96
>>146
pcapがソケットプログラムじゃないと?
148136-137:2013/10/28(月) 13:27:55.11
>>138失礼しました。今後気をつけます。
>>139ありがとうございます。こちらの検討違いでした。
[1] 授業単元: 通信
[2] 問題文:
  @トラフィックを受信(16進数)->ここは出来た。
  Amapで、
key:宛先IPアドレスと宛先ポート番号の組み合わせ
値:宛先IPアドレスと宛先ポート番号の組み合わせの回数

   key毎に値を出力するプログラム

[3] 環境
 [3.1] OS:Linux
 [3.3] 言語:C++

Aを今月中に仕上げたいが、全くわかりません。
どなたかお願いします。救済を求めます。
149デフォルトの名無しさん:2013/10/28(月) 13:44:50.12
>>147
色々間違えた忘れてくれ
150デフォルトの名無しさん:2013/10/28(月) 13:50:58.74
>>148
言ってる意味がよくわからないが・・・こういうことか?

// 初期化時
std::map<std::string,int> received;

// 受信の度に
if( received.count(key) == 0 ){
received[key] = 1;
} else {
received.count[key] += 1;
}

// 全受信完了後
for( std::map<std::string,int>::iterator it = received.begin();
it != received.end();
it++
){
std::cout << it->first << " = " << it->second << std::endl;
}
151デフォルトの名無しさん:2013/10/28(月) 14:14:48.76
[1]データ構造入門
[2]AVL木の挿入プログラムを考える。
・AVL木の実装は以下のようにせよ。
struct node{

int key;
int info; /* データを格納する */
struct node *left;
struct node *right;
int balance; /* 1であれば左の部分木が -1であれば右の部分木が高い 0であれば等しい */
};
typedef struct node NODE;

・挿入の実装は以下のようにせよ。
int insert(int target,Datatype info,NODE **p,int *grown){
*grown=0;
新規にノードを追加したならば、grownを1にしてreturn

grownが1なら木の高さが増えたことを意味する。つまり再構成が必要になる場合がある

}

[3]OS: Windows
[3.2]言語:C言語
[4]期限:(2013年10月28日23時59分まで)
[5]その他の制限:特になし

よろしくお願いします。
152136-137:2013/10/28(月) 14:22:46.90
>>150
回答ありがとうございます。
この回答に近いものを感じます。
私の問題に対する理解が乏しいゆえ
招いた疑問ですので、私は理解を深めてから
また投稿したいと思います!失礼しました!
153デフォルトの名無しさん:2013/10/28(月) 15:54:33.95
>>151
>int info; /* データを格納する */

>int insert(int target,Datatype info,NODE **p,int *grown){
どっち?
154デフォルトの名無しさん:2013/10/28(月) 15:58:10.42
>>151
ここだけじゃないや、他にもいろいろとおかしい。
問題や、付属のソースはきちんと写してください。
155デフォルトの名無しさん:2013/10/28(月) 16:10:12.86
>>154
問題文を違法アップロードさせる犯罪教唆は今すぐやめろ
156デフォルトの名無しさん:2013/10/28(月) 17:56:27.78
>>153
int insert(int target,int info,NODE **p,int *grown){

こっちです
157デフォルトの名無しさん:2013/10/28(月) 17:58:48.86
>>154
問題、ソースもこれで全部です
なのでまったくわからず悩んでいます
158151:2013/10/28(月) 18:01:52.03
自分で途中まで書いたものを載せておきます
おそらくこんな感じになると思うのですが・・・
int insert(int target,int info,NODE **p,int *grown){
*grown=0;
if(*p==NULL){
*p=malloc(sizeof(NODE));
(*p)->key=target;
(*p)->info=info;
(*p)->left=NULL;
(*p)->right=NULL;
*grown=1;
}else if(target<(*p)->key){
}else if(target>(*p)->key){
}else{
puts("ERROR!");

}
}
159桃白白 ◆9Jro6YFwm650 :2013/10/28(月) 19:52:29.85
>>158
おk、よくわかった。
桃白白いま修行中だからリンクが貼れないんだけどこれで。
ideone.com/JdCRlP
160デフォルトの名無しさん:2013/10/28(月) 20:17:26.81
>>159
ありがとうございます。
助かりました。
161デフォルトの名無しさん:2013/10/29(火) 19:24:57.39
[1] 授業単元:数理
[2] 問題文(含コード&amp;amp;リンク):
f(x)=cosx-x^2=0の近似解をニュートン法を用いて求めるプログラムを作成し、
以下を実行せよ。
x0 = 1(n = 0) から始めたときの xn+1 の値を求めよ。
|xn+1 − xn| / (|xn |)<10^(-6)を満たすまで実行し
(この条件を満たさない場合は30回実行し)、
各回のxn+1 の値を表にまとめろ。
[3] 環境
 [3.1] OS:Linux
 [3.3] 言語: どちらでも可
[4] 期限:2013年10月30日am9:00まで
[5] その他の制限: 特にありません。
セントOSを習い始めたばかりで手も足も出ずに困っています。
どなたかよろしくお願いします。
162デフォルトの名無しさん:2013/10/29(火) 19:33:16.36
163デフォルトの名無しさん:2013/10/29(火) 20:28:48.22
>>161
表にまとめろってこうやるんかな
http://ideone.com/Db83n8
164デフォルトの名無しさん:2013/10/29(火) 20:59:54.00
>>163
ありがとうございます。
表にまとめるのは、
出た値をテキスト化してもよいようなので、
表にまとめず、値だけを出すパターンも教えていただけますか?
何回もすみません、お願いします。
165デフォルトの名無しさん:2013/10/29(火) 21:35:58.79
166デフォルトの名無しさん:2013/10/29(火) 21:38:32.53
167デフォルトの名無しさん:2013/10/29(火) 21:39:34.66
168デフォルトの名無しさん:2013/10/29(火) 21:53:04.88
169デフォルトの名無しさん:2013/10/29(火) 22:23:42.31
>>164
どなたかお願いします…
170デフォルトの名無しさん:2013/10/30(水) 00:18:02.09
#include <math.h>
static double func(double x)
{
// ここにニュートン法の式を書く
return x;
}
int main (void)
{
int n;
double x, tmp, d;
x = 0.0;
for (n=0; n<30; n++) {
tmp = x;
x = func(x);
printf("%d\t%f\n", n+1, x);
d = (x - tmp) / tmp;
if (d < 0) d = -d;
if (d < 1e-6) break;
}
return 0;
}
171デフォルトの名無しさん:2013/11/05(火) 21:05:55.22
[2] 問題文:
実行結果の出力をqueueを使用し
st1
st2
st3
st4
st5
としなさい。
下のプログラムを改良してください。
[3.3] 言語: C++
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<string> dataQueue;
string st1,st2,st3,st4,st5;
dataQueue.push(st1);
dataQueue.push(st2);
dataQueue.push(st3);
dataQueue.push(st4);
dataQueue.push(st5);
while( !dataQueue.empty() ) {
cout << "" << dataQueue.front() << endl;
dataQueue.pop();
}
return 0;
}
コンパイルは通るのですが出力されません。
よろしくお願いします。
172デフォルトの名無しさん:2013/11/05(火) 21:10:48.24
>>171
st1~5に何か入れないと
173デフォルトの名無しさん:2013/11/05(火) 21:13:41.65
>>171
そのソースを改造しろってこと?

http://ideone.com/4ZMpqb
こういうこと?
174171:2013/11/05(火) 21:17:16.30
>>173
ありがとうございます。
それだけのことでずっと悩んでました。
175デフォルトの名無しさん:2013/11/05(火) 21:26:59.12
[1] 授業単元:通信
[3] 環境
 [3.1] OS:Linux
ソケットプログラムで各パケットのプロトコルを取得して
queueに入れるサンプルプログラムを作ってください。
176デフォルトの名無しさん:2013/11/05(火) 21:37:05.99
>>175
プロトコルってどの層のプロトコルよ
それによって書く内容全然違うんだが
177デフォルトの名無しさん:2013/11/05(火) 21:38:27.65
うるせーバカ
わかんないなら引っ込んでろ
178175:2013/11/05(火) 21:42:35.32
すみません説明不足です。
TCP/IPです。
通信終了後ででも構いませんがよろしくお願いします。
179175:2013/11/05(火) 21:47:26.06
>>176
トランスポート層?
インターネット層?
とにかく欲しいプロトコルはTCPとUDPです。
IPv6の場合も含めてお願いします。
申し訳ございません親切に。
180175:2013/11/05(火) 21:48:26.76
あと>>177はなりすましです。気になさらないで。
181デフォルトの名無しさん:2013/11/05(火) 22:33:22.91
>>179
え?TCP/IPってポート番号での判断じゃないの?
TCPかUDPのどちらかが知りたいということか?
それとももっと高度にパケットのデータ部での判別?

とりあえずソケットから取得するのは書いたけど
処理の流れが全然わからないのでこれ以上は無理
http://ideone.com/U0O6qi
182175:2013/11/05(火) 23:29:41.30
>>181
ありがとうございます。
はい。16進数でパケットを収集する際に
p[]がパケットの中身の配列で
p[0]からp[13]までがヘッダ部で
p[14]からp[33]までがデータ部として
p[12]とp[13]でIPv4なのかIPv6なのか判別して
p[23]?でプロトコルの判断をすると思います
そのプロトコルをキューに入れて出力させるプログラムが欲しいのです。
なかなか私の理解力のなさのため何言ってるか理解しがたいと思いますが
どうぞよろしくお願いします。
183デフォルトの名無しさん:2013/11/06(水) 00:41:22.35
>>182
理解力のなさっていうか、説明力のなさ。
パケットキャプチャプログラムは普通なら、
ソケットプログラムなんて大雑把な呼び方しないよ。

出題条件によってはパケットの生バイナリファイルだったり、
tcpdumpファイルに対してソレをやれって問題の可能性もある。
出題文を正しくて転写していないのなら正しく転写すべし。
184デフォルトの名無しさん:2013/11/06(水) 05:00:40.15
>>182
君、>>136-137か?
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
これよく読んで、情報小出しにする上に思い込みで説明するのもやめんしゃい
それTCP/IPじゃなくてMACフレームの解析だし、ソケットも全然介してない

http://ideone.com/ovfalF
俺はもうこれでやりまへん
185デフォルトの名無しさん:2013/11/06(水) 07:54:39.24
>>183-184
できないならなら引っ込んでろ。
186デフォルトの名無しさん:2013/11/06(水) 08:11:51.84
>>179
パケットの流れの観察から使われているプロトコルを調べるというのは
相当に高度な話しで、参考書かサイトで学習するべきだと思うが。
187デフォルトの名無しさん:2013/11/06(水) 08:38:00.50
「話し」って?
188デフォルトの名無しさん:2013/11/06(水) 08:38:04.57
>>185
そりゃお前の事だろ。
プログラミングどころか、煽りも荒らしも適当で、
一体お前に何ができるんだ。
189デフォルトの名無しさん:2013/11/06(水) 08:43:20.21
>>188
お前よりは何でもできる
バカの日本語修正してやる事とか
190デフォルトの名無しさん:2013/11/06(水) 08:45:21.96
>>187
現実味がないということ。
191デフォルトの名無しさん:2013/11/06(水) 09:04:44.03
やっぱり日本語知らない三国人か
地獄に落ちろ
192デフォルトの名無しさん:2013/11/06(水) 12:21:13.23
日下部さんって今なにしてるんだろう
193デフォルトの名無しさん:2013/11/06(水) 14:24:50.93
沖縄で基地反対運動
194デフォルトの名無しさん:2013/11/09(土) 15:27:12.02
[1] 授業単元:C言語

[2] 問題文(含コード&リンク):
@1〜100の整数のうち「6の倍数」の個数を表示するプログラムを作成しなさい、ただし、for文とif文を用いて作成すること
A1次元配列を用いて5人分の数学の得点を100点満点で入力し、「数学の得点の最小値と最大値」を画面表示、およびファイルに書き出すプログラムを作成しなさい。ただし、書き出し用ファイル名は「sugaku.txt」にしなさい。

[3] 環境
 [3.1] OS: (Windows/Linux/等々)windows home vista
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)borland
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)C言語

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)2013年11月12日02:00まで

[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
2か月前からC言語を習い始めました。いまはまだポインタまでの範囲をかじった程度であまり理解もできていません。
とくに制限はありません。

どうかよろしくお願いいたします。
195デフォルトの名無しさん:2013/11/09(土) 20:15:32.11
void main()
{
int i,cnt;
for(i=0,cnt=0;i<=100;i++){
if(i % 6 == 0)
cnt++;
}
printf("%d個", cnt);
}
196 ◆QZaw55cn4c :2013/11/09(土) 20:28:14.19
>>195
×void main()
○int main()
197デフォルトの名無しさん:2013/11/09(土) 20:40:12.11
>>196
×だという根拠を出してくれ
198デフォルトの名無しさん:2013/11/09(土) 20:43:38.50
199 ◆QZaw55cn4c :2013/11/09(土) 20:44:45.58
>>197
そうだねえ,C99/5.1.2.2.1 では "or in some other implementation-defined manner." という一節が残されているから

△void main()
○int main()

くらいにしとく,スタートアップの実装しだいだし
200デフォルトの名無しさん:2013/11/09(土) 20:48:06.94
>>198
@if分使ってない
201デフォルトの名無しさん:2013/11/09(土) 21:14:39.68
>>200
int f(int d,int i,int n){
return ((i<n)?f(d,i+1,n):0)+((i%d)?0:1);
}
int main(){
if(1)for(;;){printf("%d\n",f(6,1,100));return 0;}
}
202デフォルトの名無しさん:2013/11/09(土) 21:40:27.94
>>199
×だという根拠を出してくれ
203デフォルトの名無しさん:2013/11/09(土) 21:48:20.94
>>194 A 行数オーバーするから改行は自分の納得いくようにしてくれ
int main(void)
{
int point[5], min, max, num, input;
FILE *fw;

for(num=0;num<5;num++) {
printf("%d人目の得点 > ", num + 1); scanf("%d", &input);
if(0 <= input && input <= 100) {
point[num] = input;
if(num == 0) {
min = point[num]; max = point[num];
}
else {
if(point[num] < min) {
min = point[num];
}
else if(max < point[num]) {
max = point[num];
}
}
}
else {
num--;
}
}
printf_s("最少値 = %d\n最大値 = %d\n", min, max);
fopen_s(&fw, "sugaku.txt", "w");
fprintf_s(fw, "最少値 = %d\n最大値 = %d\n", min, max);
fclose(fw);
return 0;
}
204デフォルトの名無しさん:2013/11/09(土) 21:51:31.19
>>194
忘れてた
最後のprintf_sとfprintf_sはprintfとfprintfにしてね
205デフォルトの名無しさん:2013/11/11(月) 22:32:17.38
>>197
>>198
>>199
>>200
>>201
>>204
>>196

わざわざありがとうございました。
自分でももう一度復習したいと思います。
206デフォルトの名無しさん:2013/11/12(火) 11:45:56.71
[1] 授業単元: 空間図形
[2] 問題文(含コード&リンク):切頂六面体、切頂八面体をプログラムを用いて描け
[3] 環境
 [3.1] OS:
 [3.2]
 [3.3] 言語:指定はありません
[4] 期限: 2013年11月12日 15:00迄
[5] その他の制限: 制限は特にありません、
プロセスごと知ることが出来れば有り難いのですが、
結果のみ(=多面体の図示)でも構いません。
よろしくお願いします。
207デフォルトの名無しさん:2013/11/12(火) 14:09:33.82
208デフォルトの名無しさん:2013/11/12(火) 14:27:10.45
>>207
ありがとうございます!
プログラム自体はないでしょうか…?
厚かましくてすみません。
209デフォルトの名無しさん:2013/11/12(火) 14:36:08.44
210デフォルトの名無しさん:2013/11/12(火) 14:40:13.60
211デフォルトの名無しさん:2013/11/12(火) 19:42:36.27
212デフォルトの名無しさん:2013/11/13(水) 10:24:54.82
213デフォルトの名無しさん:2013/11/14(木) 01:49:53.38
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
オンライン海戦ゲーム
10×10マス(A-Jと1-10で指定)のマップ上に戦艦を配置する。
戦艦はゲーム開始時にランダムで配置されるようにする。
配置される戦艦は
・全長4 - 1隻
・全長3 - 2隻
・全長2 - 3隻
とし、縦、横いずれかの向きで配置されるものとする。(マスで重複しないこと)

プレイヤーはサーバに接続し、どちらが先にすべての戦艦を沈没させられるかを競う。
プレーヤー数は2人で、攻撃はターン制で行い、持ち時間は15秒。
戦艦にあたった場合は「*」で表示、外れた時には「-」で表示する。
先にすべての戦艦に攻撃を当てたプレイヤーを勝ちとする。

==イメージ==
[1][2][3][4][5][6][7][8][9][10]
[A] - * * * * - -
[B] - - - - * -
[C] - *
[D] - -
…行数の関係で省略します


[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: borland c++ 5.5.1 , Visual C++ 2013
 [3.3] 言語: C
[4] 期限: 2013/11/14/10:45
[5] その他の制限: 一般的な参考書でいうと構造体のあたりまで理解してますが、サーバとの通信の知識が全くありません
214デフォルトの名無しさん:2013/11/14(木) 02:35:50.10
>>213
移動できるのかとかどう攻撃するのかとか全く書かれてなくて組みようがないんだけど
215デフォルトの名無しさん:2013/11/14(木) 03:13:14.70
>>182
下記URLのコードでetherパケットがダンプできるので、それを利用するといけそう。
イーサパケット以降の判定はtcpdumpが分かりやすい。
http://www.fenix.ne.jp/~thomas/memo/linux_raw_packet/netdump.c
--- netdump.c.org 2001-11-29 18:42:22.000000000 +0900
+++ netdump.c 2013-11-14 03:06:48.669756002 +0900
@@ -207,6 +207,7 @@ print_ethaddr(p)
{
int i;
struct ethhdr *eh;
+ u_short h_proto;

eh = (struct ethhdr *)p;

@@ -218,6 +219,16 @@ print_ethaddr(p)
printf("%02x:", (int)eh->h_dest[i]);
printf("%02x", (int)eh->h_dest[i]);
printf("\n");
+
+ // from ether_print and ether_encap_print in tcpdump
+ h_proto = ntohs(eh->h_proto);
+ switch (h_proto) {
+ case 0x86dd: printf("IPv6\n"); /** do something tcp / udp */ break;
+ case 0x0800: printf("IPv4\n"); /** do something tcp / udp */ break;
+ case 0x0806: printf("ARP\n"); break;
+ case 0x8035: printf("RARP\n"); break;
+ default: printf("%04x\n", h_proto); break;
+ }
}
216デフォルトの名無しさん:2013/11/14(木) 03:36:14.89
海戦ゲームって書いてあるのにw
217デフォルトの名無しさん:2013/11/14(木) 03:40:49.53
>>214
すみません。
移動がどういうものかよくわかりませんが、的である戦艦は移動しません。
サーバが配置した戦艦に対し、2人のプレイヤーが交互に攻撃します。
tp://www.sousakuba.com/flash-games/battleship-game.html
↑このサイトの、戦艦マップが1つだけという感じです。

攻撃は、座標指定で行います。
例えば(A,10)や(C,6)と言った感じです。

課題を板書したので書き損じてるところがあると思いますが、よろしくお願いします。
218デフォルトの名無しさん:2013/11/14(木) 03:44:45.34
> 配置される戦艦は
> ・全長4 - 1隻
> ・全長3 - 2隻
> ・全長2 - 3隻
> とし、縦、横いずれかの向きで配置されるものとする。(マスで重複しないこと)
これ実装するだけでもめんどくせえ。放置がデフォ。
219デフォルトの名無しさん:2013/11/14(木) 03:45:39.91
>>217
ごめん海戦ゲーム自体初めて知ったわw
面白そうだから作ってみるよ
220デフォルトの名無しさん:2013/11/14(木) 04:01:27.12
>>219
ありがとうございますm(_ _)m
221デフォルトの名無しさん:2013/11/14(木) 07:38:01.44
>>217
戦艦が動かない訳がないだろ
こんな海戦ゲームがあるから
日本は戦争に負けたんだよ
222デフォルトの名無しさん:2013/11/14(木) 08:05:46.20
日本オリジナルのゲームじゃないんだけどw
223デフォルトの名無しさん:2013/11/14(木) 08:09:56.14
>>217
そのサイトのURLリロードするたびに戦艦の配置変わるな
なかなか手が込んでる
224デフォルトの名無しさん:2013/11/14(木) 10:35:06.37
225デフォルトの名無しさん:2013/11/14(木) 18:38:10.39
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&amp;リンク):クリップボードの履歴の最新50個を表示するプログラムの作成
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visualstudio2010
 [3.3] 言語:どちらでも可
[4] 期限:2013年/11/15 10:00
[5] その他の制限: 特になし

よろしくお願い致します。
226デフォルトの名無しさん:2013/11/14(木) 21:06:38.14
>>225
データの種類は区別なしで最新50個?
227デフォルトの名無しさん:2013/11/14(木) 21:10:40.25
>>226
テキストのみです。
画像等は含みません。申し訳ありませんでした。
228デフォルトの名無しさん:2013/11/14(木) 23:53:26.27
履歴を取得するAPIわ?
そんだけの事のような気がするが、まちがってたらご麺。
229デフォルトの名無しさん:2013/11/15(金) 00:22:06.11
>>228
Windows APIです。
230デフォルトの名無しさん:2013/11/15(金) 01:20:14.27
はいはい
231デフォルトの名無しさん:2013/11/15(金) 02:04:34.10
Vista以降だけど AddClipboardFormatListener でウィンドウを登録すると
クリップボードの内容が変更されたときに WM_CLIPBOARDUPDATE が飛んでくるので
GetClipboardData する
232デフォルトの名無しさん:2013/11/15(金) 04:24:29.74
>>231
ありがとうございます。
少し自分なりに頑張ってみます。
233デフォルトの名無しさん:2013/11/15(金) 13:31:20.25
楽しそうないい問題ですなぁ。
234デフォルトの名無しさん:2013/11/15(金) 21:35:47.60
WindowsMe時代に作ったことあるなー
Ctrl+Vをグローバルフックでキャッチして連番で貼り付けられるようにしたりした
貼り付けるたびに数値が増えるようにしたりとか
また似たようなことができればいいんだけど
235 ◆QZaw55cn4c :2013/11/15(金) 21:47:08.28
236デフォルトの名無しさん:2013/11/16(土) 00:51:18.75
[1] 授業単元:データ構造
[2] 問題文(含コード&amp;リンク):ポイント版リスト構造等
 https://www.dropbox.com/sh/jj54ga1txj12wxq/gQBHXuod_A
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:c言語
[4] 期限:11/23
詳細はリンクにある通りです。よろしくお願いします。
237デフォルトの名無しさん:2013/11/17(日) 01:36:19.43
238デフォルトの名無しさん:2013/11/17(日) 06:21:26.44
>>236
重複でスレ汚しだが、せっかくなので
http://ideone.com/7UwiWH

>>237
({[と)}]の対応がなかなかスマートにいかないですよね。
strchrがやはり良いのかな。
239デフォルトの名無しさん:2013/11/17(日) 10:04:18.52
dropboxがアクセス不能になった時に備えて、バックアップしときました
http://www.dotup.org/uploda/www.dotup.org4669245.pdf.html
http://www.dotup.org/uploda/www.dotup.org4669248.txt.html

pass: obokata

ついでに、ITを積極的に活用する優秀な学生がいるので表彰するよう一関高専に推薦メッセージを送っておきました
240デフォルトの名無しさん:2013/11/17(日) 11:10:38.85
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): http://ideone.com/2viXY6 forかwhileをつかって
[3] 環境
 [3.1] OS: (Windows8
 [3.2] visual studiopro 2012
 [3.3] 言語: (C
[4] 期限: (11月17日18時まで]
だれか教えてくださいよろしくお願いします。
241デフォルトの名無しさん:2013/11/17(日) 11:23:35.64
>>239
お、キモくていい感じ。
どんどんやりなさいっ!
242デフォルトの名無しさん:2013/11/17(日) 11:34:33.39
制御情報工学4年生だね
http://www.ichinoseki.ac.jp/office/syllabus/syst/4/S5412.pdf
後期第6週 スタック・キュー

http://www.ichinoseki.ac.jp/office/kisoku/k-gakusoku/gakusoku.pdf
(表彰)
第38条 学生として表彰に値する行為があるときには,表彰することがある。
243デフォルトの名無しさん:2013/11/17(日) 11:46:31.01
一関高専に推薦メッセージを送ろう!!

学校の公式twitter
http://twitter.com/#!/ichinoseki_nct
244デフォルトの名無しさん:2013/11/17(日) 12:03:55.77
探偵ファイルにはもう送らないんですか?
245デフォルトの名無しさん:2013/11/17(日) 14:22:38.12
246デフォルトの名無しさん:2013/11/17(日) 14:34:03.47
探偵ファイルは誰かが不幸になるのが好きで、こういう美談は扱わないだろ
247デフォルトの名無しさん:2013/11/17(日) 14:42:32.80
相手にされなかっただけでしょ
248デフォルトの名無しさん:2013/11/17(日) 15:02:02.49
高専の4年ってもう就職決まってるんでしょ
表彰されれば入社後の待遇よくなるよ
就活これからなら有利になること間違いなし!!
249デフォルトの名無しさん:2013/11/17(日) 15:10:14.83
>>236
消えてる
dropboxなんて信頼性低いところだめだよ

バックアップ>>239
250デフォルトの名無しさん:2013/11/17(日) 17:51:32.61
>>245
ありがとうございます。
これをfor文のみでやるとどうなりますか?
251デフォルトの名無しさん:2013/11/17(日) 18:04:13.60
1から10までの整数のうち、偶数の合計を求めなさい。
1から100までの整数で、奇数だけの合計、偶数だけの合計、総合計をもとめよ;
y=5x+8の値をxが0〜10まで、1ずつ増やした時のyの値
10^3+30^3+50^3+70^3+90^3の計算
#include <stdio.h>
typedef enum { EVEN = 0, ODD, ALL } sum_types;
int get_sum(int min, int max, sum_types type){
int i, sum = 0;
for(i=min; i<max+1; i++){
if(type == EVEN || type==ODD) sum += i%2==type ? i : 0;
else sum += i;
}
return sum;
}
int pow_int(int x, int y){
int i, mult = 1;
for(i=0; i<y; i++) mult *= x;
return mult;
}
int main(void){
int i, j, pow_sum = 0;
fprintf(stdout, "1) %d\n", get_sum(1, 10, EVEN));
fprintf(stdout, "2) Odd: %d, Even: %d, All: %d\n", get_sum(1, 100, ODD), get_sum(1, 100, EVEN), get_sum(1, 100, ALL));
fprintf(stdout, "3) y = 5x + 8;\n");
for(i=0; i<=10; i++) fprintf(stdout, "y=%d [x=%d]\n", 5*i+8, i);
for(j=10; j<=90; j+=20) pow_sum += pow_int(j, 3);
fprintf(stdout, "4) 10^3+30^3+50^3+70^3+90^3 = %d\n", pow_sum);
return 0;
}
252デフォルトの名無しさん:2013/11/17(日) 18:08:37.55
>>250
forのみでやっとるがな
253デフォルトの名無しさん:2013/11/17(日) 18:14:21.23
関数使うなって事だろうけど、ifも排除したりすると楽しそうだ。
254デフォルトの名無しさん:2013/11/17(日) 18:18:31.82
fprintf / printf も排除ですねわかります
255デフォルトの名無しさん:2013/11/17(日) 18:34:44.37
>>252
そうです。 ifとかelseをつかわないでやることはできますか?
256デフォルトの名無しさん:2013/11/17(日) 18:54:08.33
257デフォルトの名無しさん:2013/11/17(日) 19:14:10.26
if文はなくても 判定はするんでしょ。
当たり前か
258デフォルトの名無しさん:2013/11/17(日) 19:26:04.21
>>240>>255

http://ideone.com/9kMPLJ
//使用
//・int変数
//・for文、return文、ブロック文
//・演算子&&、<=、==、%、+、*、=
//・printf関数
//制限
//・三項演算子
//・関数
//・if文

for(j=0;j==0 && 条件;j=j+1)がif(条件)の代わり。
259デフォルトの名無しさん:2013/11/17(日) 19:32:24.53
>>255
#include <stdio.h>
int main(void){
?? ?? int i,a,b,x;
?? ?? for(a=0,i=0;i<=10;i+=2)
?? ?? ?? ?? a+=i;
?? ?? printf("1から10までの整数のうち、偶数の合計=%d\n",a);
?? ?? for(a=0,i=1;i<=100;i+=2)
?? ?? ?? ?? a+=i;
?? ?? printf("1から100までの整数で、奇数だけの合計=%d\n",a);
?? ?? for(b=0,i=0;i<=100;i+=2)
?? ?? ?? ?? b+=i;
?? ?? printf("1から100までの整数で、偶数だけの合計=%d\n",b);
?? ?? printf("総合計=%d\n",a+b);
?? ?? for(x=0;x<=10;x++)
?? ?? ?? ?? printf("x=%d ??y=%d\n",x,5*x+8);
?? ?? printf("10^3+30^3+50^3+70^3+90^3=%d",10*10*10+30*30*30+50*50*50+70*70*70+90*90*90);
?? ?? return 0;
}
260デフォルトの名無しさん:2013/11/17(日) 19:56:44.00
>>259
おいっ!
261デフォルトの名無しさん:2013/11/17(日) 21:05:50.74
printf("10^3+30^3+50^3+70^3+90^3=%d",10*10*10+30*30*30+50*50*50+70*70*70+90*90*90);
・ ・ return 0; ここのところをfor文にするとどうなりますか?
}
262デフォルトの名無しさん:2013/11/17(日) 21:15:36.59
for(i=0;i<1;i++)
printf("10^3+30^3+50^3+70^3+90^3=%d",10*10*10+30*30*30+50*50*50+70*70*70+90*90*90);
263デフォルトの名無しさん:2013/11/17(日) 21:19:10.28
a=0;
for(i=10;i<=90;i+=20)
a+=(i*i*i);
printf("%d",a);
264デフォルトの名無しさん:2013/11/17(日) 21:27:47.71
x = 0;
for (i = 10; i <= 90; i += 20) {
for (a = b = 1; a <= 3; a++)
b *= i;
x += b;
}
printf("10^3+30^3+50^3+70^3+90^3=%d\n", x);
265デフォルトの名無しさん:2013/11/17(日) 22:45:24.18
>>262
こちらが一番簡単そうなのでこちらにします
ありがとうございました
266デフォルトの名無しさん:2013/11/17(日) 23:24:15.80
それはよかつたね
267デフォルトの名無しさん:2013/11/17(日) 23:32:16.74
何気にいいスレね
268デフォルトの名無しさん:2013/11/18(月) 08:15:23.12
269デフォルトの名無しさん:2013/11/18(月) 08:20:07.01
printfも関数だから禁止な
270デフォルトの名無しさん:2013/11/18(月) 09:10:10.75
みなさんありがとうございます。
ほんとに感謝です。
271デフォルトの名無しさん:2013/11/18(月) 12:04:04.26
>>270
いえいえ、どういたしまして。推薦メッセージもっと送ろうか?

一関高専に推薦メッセージを送ろう!!

学校の公式twitter
http://twitter.com/#!/ichinoseki_nct
272デフォルトの名無しさん:2013/11/18(月) 12:10:48.34
自分の言ってる違反の事実ができたわけだがいいのか
273デフォルトの名無しさん:2013/11/18(月) 20:05:30.20
eの近似値を求める問題でこのようにやりました。
#include <stdio.h>
int main(void){
int i;
double t, e = 0;
for (t = i =1; t<1e6;i++) {
e += 1/ t;
t *= i;
printf("n=%d-> e=%.6f\n", i, e);
}
return 0;
}
n=1-> e=1.000000
n=2-> e=2.000000
n=3-> e=2.500000
n=4-> e=2.666667
n=5-> e=2.708333
n=6-> e=2.716667
n=7-> e=2.718056
n=8-> e=2.718254
n=9-> e=2.718279
n=10-> e=2.718282
実行例をn=1->e=2.00000にするにはどこをかえればいいですか?
274デフォルトの名無しさん:2013/11/18(月) 20:08:16.40
double t, e = 1;
275デフォルトの名無しさん:2013/11/18(月) 20:28:45.10
違反?
誰が何に?
276デフォルトの名無しさん:2013/11/18(月) 20:35:51.80
>>274
ありがとうございます。
t,i=1;
e += 1/ t;
t*= i;
while(t<1e6){
printf("n=%d-> e=%.6f", i, e);
i++;
}
今度はwhile文でやりたいのですが、上のようにやったら、エラーになります。
どうすればよいと思います?
277デフォルトの名無しさん:2013/11/18(月) 20:49:26.55
forのときと同じようにやればいいと思います
278デフォルトの名無しさん:2013/11/18(月) 21:04:06.36
tが初期化されていない

>t,i=1;
279デフォルトの名無しさん:2013/11/19(火) 00:55:12.29
>>275
アラシはスルー。
280デフォルトの名無しさん:2013/11/19(火) 02:39:57.43
>>268
printf("\b"); か…
281デフォルトの名無しさん:2013/11/19(火) 09:55:48.11
\33]2J
282デフォルトの名無しさん:2013/11/19(火) 18:47:19.64
#include <stdio.h>
int main(void){
・ ・ int i,a,b,x;
・ ・ for(a=0,i=0;i<=10;i+=2)
・ ・ ・ ・ a+=i;
・ ・ printf("1から10までの整数のうち、偶数の合計=%d\n",a);
・ ・ for(a=0,i=1;i<=100;i+=2)
・ ・ ・ ・ a+=i;
・ ・ printf("1から100までの整数で、奇数だけの合計=%d\n",a);
・ ・ for(b=0,i=0;i<=100;i+=2)
・ ・ ・ ・ b+=i;
・ ・ printf("1から100までの整数で、偶数だけの合計=%d\n",b);
・ ・ printf("総合計=%d\n",a+b);
・ ・ for(x=0;x<=10;x++)
・ ・ ・ ・ printf("x=%d ・y=%d\n",x,5*x+8);
・ ・ printf("10^3+30^3+50^3+70^3+90^3=%d",10*10*10+30*30*30+50*50*50+70*70*70+90*90*90);
・ ・ return 0;
}
これ全部whileでやってみたのですが、できませんどうすればよいですか?
283デフォルトの名無しさん:2013/11/19(火) 18:52:16.95
退学して、どうぞ
284デフォルトの名無しさん:2013/11/19(火) 19:04:07.58
出来ました。すいません。
285デフォルトの名無しさん:2013/11/20(水) 01:33:33.56
退学を取り消します
286デフォルトの名無しさん:2013/11/20(水) 05:58:22.83
denied
287デフォルトの名無しさん:2013/11/20(水) 19:03:27.97
if と goto だけを使えばいい
288デフォルトの名無しさん:2013/11/20(水) 20:28:31.97
巡回セールスマン問題のオープンソースってどこかにありますか?
289デフォルトの名無しさん:2013/11/20(水) 22:24:00.48
gnu tsp でググるよろし
290デフォルトの名無しさん:2013/11/22(金) 20:26:16.10
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 100000
110000
111000
111100
111110
111111
とこのように表示させるプログラム。
[3] 環境
 [3.2] visual studiopro 2012
 [3.3] 言語: (C )
[4] 期限: (11月23日18時まで]
だれか教えてくださいよろしくお願いします。
出来ればifは使わず、forとwhile文両方お願いします。
291デフォルトの名無しさん:2013/11/22(金) 20:41:35.74
292デフォルトの名無しさん:2013/11/22(金) 20:47:24.71
>>290
#include <stdio.h>

int main(void)
{
int i;

for(i=0;i<6;i++)
{
printf("%.6s\n", "11111100000"+(5-i));
}
return 0;
}
293デフォルトの名無しさん:2013/11/22(金) 20:51:33.77
>>291
ありがとうございます。
elseとか使わずにfor文はfor文、while文はwhile文と分けてやるとどうなりますか?
294デフォルトの名無しさん:2013/11/22(金) 20:54:41.76
295デフォルトの名無しさん:2013/11/22(金) 23:28:44.09
>>292
トリッキー
296デフォルトの名無しさん:2013/11/22(金) 23:40:16.18
すみません

簡単なものでいいので、C言語で配列を使ったプログラムお願いします
297デフォルトの名無しさん:2013/11/22(金) 23:42:38.45
>>290
#include <stdio.h>
int main()
{
int i, a, b = 100000;
for (a = i = 0; i < 6; i++) printf("%d\n", a += (b /= 10));
return 0;
}
298デフォルトの名無しさん:2013/11/22(金) 23:45:54.38
10000
11000
11100
11110
11111
11111
299デフォルトの名無しさん:2013/11/23(土) 02:20:35.35
>>290
むかしからあるチャチャだけど、
#include <stdio.h>
int main(void){
  printf("100000\n");
  printf("110000\n");
  printf("111000\n");
  printf("111100\n");
  printf("111110\n");
  printf("111111\n");
  return 0;
}
じゃだめなのかい?
だめなんだろうなぁw
300デフォルトの名無しさん:2013/11/23(土) 03:04:10.75
forもwhileも使ってないだろw
301デフォルトの名無しさん:2013/11/23(土) 03:12:07.75
>>296
#include <stdio.h>
int main(void)
{
 int a[] = { 0, 1 }, i;
 for (i=0; i<sizeof(a)/sizeof(int); i++)
  printf("a[i]: %d\n", a[i]);
}
302デフォルトの名無しさん:2013/11/23(土) 03:14:28.75
>>300
#include <stdio.h>
int main()
{
char *p;
for (p = "100000\n110000\n111000\n111100\n111110\n111111\n"; *p;) putchar(*p++);
return 0;
}
303デフォルトの名無しさん:2013/11/23(土) 03:32:43.30
>>290
#include <stdio.h>
int main()
{
int n=~0777777;
for (; n /= 8;)
printf("%o\n", n & 0111111);
return 0;
}
304デフォルトの名無しさん:2013/11/23(土) 08:02:52.11
char ss[] = "0000000";
int i;
for (i = 0; i < 7; i++) {
ss[i] = '1';
puts(ss);
}
305デフォルトの名無しさん:2013/11/23(土) 18:46:14.92
トリッキー合戦も良いと思うけど
ダレイクトに分かりやすいコードのほうが開発効率は良い気がしますがね
306デフォルトの名無しさん:2013/11/23(土) 19:21:12.04
こんなスレで開発効率とかバカか
307デフォルトの名無しさん:2013/11/23(土) 22:19:42.84
課題を甘く見て、後輩に追い抜かれていくパターンだな。
308デフォルトの名無しさん:2013/11/23(土) 22:35:42.80
あいつこんな課題もまだ終わってないのかよって言っておきながら
中身の品質は負けてるんだろうな
309デフォルトの名無しさん:2013/11/23(土) 22:57:36.57
C500問って本にあった

*
**
***
****
*****
******
*******
********
*********
**********
ってのもいい問題かと
310デフォルトの名無しさん:2013/11/23(土) 23:11:25.54
ほとんど変更いらないな
char ss[11] = {0};
int i;
for (i = 0; i < 10; i++) {
ss[i] = '*';
puts(ss);
}
311デフォルトの名無しさん:2013/11/23(土) 23:32:37.83
#include <stdio.h>
int main(void)
{
int i;
for (i=0; i<10; i++)
printf("%s\n", "**********" + 10-1 - i);
return 0;
}
312309:2013/11/24(日) 01:52:44.27
>>310,311 スゴ 勉強になります。
313デフォルトの名無しさん:2013/11/24(日) 02:44:42.62
一応 if を使わず
#include <stdio.h>

int main(int ac, char **av)
{
char num[][8] = {
{ 0x00, 0x1c, 0x26, 0x2a, 0x2a, 0x32, 0x1c, 0x00 },
{ 0x00, 0x08, 0x18, 0x08, 0x08, 0x08, 0x3e, 0x00 }};
int i, j, k, m;
for(i = 0; i < 6; ++i)
for(j = 0; j < sizeof(num[0]) / sizeof(num[0][0]); ++j){
for(k = 0; k < 6; ++k)
for(m = 0x80; m > 0; m >>= 1)
putchar(num[i - k >= 0 ? 1 : 0][j] & m ? '*' : ' ');
putchar('\n');
}
return 0;
}
314デフォルトの名無しさん:2013/11/24(日) 07:17:59.78
>>313
3項演算子は消せる

#include <stdio.h>

int main(int ac, char **av)
{
char num[][8] = {
{ 0x00, 0x1c, 0x26, 0x2a, 0x2a, 0x32, 0x1c, 0x00 },
{ 0x00, 0x08, 0x18, 0x08, 0x08, 0x08, 0x3e, 0x00 }};
int s[] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 };
int i, j, k, l, m;
for(i = 0; i < 6; ++i)
for(j = 0; j < sizeof(num[0]) / sizeof(num[0][0]); ++j){
for(k = 0; k < 6; ++k)
for(l = 0, m = num[s[i - k + 6]][j]; l < 8; ++l, m = (m << 1) & 0x0ff)
putchar(" *"[(m & 0x80) >> 7]);
putchar('\n');
}
return 0;
}
315デフォルトの名無しさん:2013/11/24(日) 08:46:01.38
あのートリッキ自慢ではないと思うのでぇ
316デフォルトの名無しさん:2013/11/24(日) 09:13:33.47
えっ?
どこかにトリッキーな部分があるの?
317デフォルトの名無しさん:2013/11/24(日) 09:50:36.93
IOCCC日本支部ですから
318デフォルトの名無しさん:2013/11/24(日) 10:36:02.07
同じ効果を得るのに行数は短い方がいいが。
追加の効果(保守性等)を得るために行数は増やしても問題ない。
重要なのはコードの行数ではない。メンテナンス性だ。

って先生が言ってた
319デフォルトの名無しさん:2013/11/24(日) 10:52:27.19
原理原則論は現実の前では役に立たない
320デフォルトの名無しさん:2013/11/24(日) 12:08:37.12
#include <iostream>
#include <string>
int main()
{
std::string s("**********");
for (auto itr = s.begin(); itr < s.end(); itr++) {
for (auto itr2 = s.begin(); itr2 <= itr; itr2++)
std::cout << *itr2;
std::cout << std::endl;
}
}
321デフォルトの名無しさん:2013/11/24(日) 13:21:18.02
#include <stdio.h>
int main()
{
int i, a, b = 100000;
for (a = i = 0; i < 6; i++) printf("%d\n", a += (b /= 10));
return 0;
}
この式をwhileに変換するとどうなりますか?
322デフォルトの名無しさん:2013/11/24(日) 13:39:06.85
#include <stdio.h>
int main()
{
int i, a, b = 100000;
while(1){
for (a = i = 0; i < 6; i++) printf("%d\n", a += (b /= 10));
break;
}
return 0;
}
323デフォルトの名無しさん:2013/11/24(日) 13:40:04.02
ねんまつ
324デフォルトの名無しさん:2013/11/24(日) 13:43:07.91
>>321
#include <stdio.h>
int main()
{
int i=0, a=0, b = 100000;
while (i++ < 6) printf("%d\n", a += (b /= 10));
return 0;
}
325デフォルトの名無しさん:2013/11/24(日) 13:49:09.55
>>324
ありがとうございます。
326デフォルトの名無しさん:2013/11/24(日) 13:56:24.03
ダメな猫、普通の猫
327デフォルトの名無しさん:2013/11/24(日) 16:44:19.89
猫飼いた〜い
328デフォルトの名無しさん:2013/11/25(月) 08:01:05.04
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
a) 4桁の西暦を入力として受け取り
b) その年のすべての日について次の演算を行い
c) 小計 = 年の上位2桁 + 年の下位2桁 + 月 + 日
(例)
20 + 13 + 11 + 25 = 69
d) 各日の小計を大きいものから順に
20131231 = 76
...
20131125 = 69
...
20130101 = 35
のように表示させるプログラムを作りなさい
[3] 環境
言語:C
ライブラリ:Cの標準関数のみを用いること
[4] 期限: (11月25日18時まで]
よろしくお願いします
329デフォルトの名無しさん:2013/11/25(月) 08:04:17.90
小計の値が同じ日は
20131001 = 44
20130110 = 44
のように年月日を8桁の数字にしたときの大きいものから順に表示してください
330デフォルトの名無しさん:2013/11/25(月) 09:39:03.45
331デフォルトの名無しさん:2013/11/25(月) 10:36:07.61
332デフォルトの名無しさん:2013/11/25(月) 11:02:59.79
PROBABILITY LEVEL (PPROB) 0.4102

ファイルにこう書いてあって(0.4102は31桁目から)

ifstream fin ;
double v ;
char buf[31] ;

fin.getline (buf, 31) ;
fin >> v ;

数字が読めないんですがどうすればいいですか?
333デフォルトの名無しさん:2013/11/25(月) 11:11:46.49
スレ違い
334デフォルトの名無しさん:2013/11/25(月) 11:29:37.83
>330-331
ありがとうございました
335デフォルトの名無しさん:2013/11/25(月) 13:24:31.70
意外と偏らないもんなんだね
336デフォルトの名無しさん:2013/11/25(月) 17:32:31.44
getlineじゃなくてgetにすれば読めるんじゃね
337デフォルトの名無しさん:2013/11/25(月) 17:54:32.82
istream::getline だとデリミタに達しない場合failbitがセットされる。
fin >> v; の前に fin.clear(); でクリアすれば読める。
istream::get にはそういう動作は無いってこと。
338デフォルトの名無しさん:2013/11/25(月) 18:52:01.78
>>336>>337
ありがとうございます。なぜ読めないか理由を含めて理解出来ました。
実際のところ欲しいのは数字だけなので、ignore()なんてのも使えるみたいです。
339デフォルトの名無しさん:2013/11/26(火) 04:22:10.39
このスレ 宿題片付けます とか言いながら
結構実力練成と復習の意味があるのね。
他の人はどうするかとか。
340デフォルトの名無しさん:2013/11/26(火) 05:08:42.06
単純な規則で並べられるものを一々ソートするアホのコードを見ても実力練成とやらにはならないと思うけど
341デフォルトの名無しさん:2013/11/26(火) 06:56:32.79
>>340
西暦を9999年まで想定するなど、出題の範囲外の思考(雑念)が
必要になったりしないか。
342デフォルトの名無しさん:2013/11/26(火) 07:38:05.89
「単純な」と言われている方のコードはアルゴリズムが判りやすい上に
西暦0000年でも9999年でも動作するメリットがある
しかし順番に出力する際にかなりの部分のCPUリソースが無駄な比較で消費されている
たとえば2013年12月の配列にはpivot==45以上の値しか現れないんだから
そういうのは除外する工夫をすればもっと速くなるだろうね
とか言っておけば良いのか
343デフォルトの名無しさん:2013/11/26(火) 07:53:18.90
>西暦0000年
不正入力で除外すべきでは?

>順番に出力する際にかなりの部分のCPUリソースが無駄な比較で消費されている
time_t <-> struct tm の相互変換は無駄じゃないのか?

>2013年12月の配列にはpivot==45以上の値しか現れない
46 以上 じゃね?
344デフォルトの名無しさん:2013/11/26(火) 07:56:45.24
>>342
一度出力された月日は二度と出力されることは無い訳で、
削除マークを付けて次の比較のときはスキップすればもっと速くなる罠。
345デフォルトの名無しさん:2013/11/26(火) 08:39:04.04
>>335
漏れにはおもいっきり片寄ってるように見える
346デフォルトの名無しさん:2013/11/26(火) 09:57:40.80
#include <stdio.h>

int main(void)
{
int year, n, i, j, a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

scanf("%d", &year);
n = year / 100 + year % 100;
if(year % 4 || ((year % 100 == 0) && year % 400)) a[2] = 29;
for(i = 12 + 31; i >= 1 + 1; i--) for(j = 12; j >= 1; j--) if(a[j] && i == j + a[j]) printf("%d%02d%02d = %d\n", year, j, a[j]--, i + n);

return 0;
}
347デフォルトの名無しさん:2013/11/26(火) 10:23:53.86
すげー
348デフォルトの名無しさん:2013/11/26(火) 10:35:24.94
#include <stdio.h>

int main(void)
{
int c = 0, year, n, i, j, a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

scanf("%d", &year);
n = year / 100 + year % 100;
if(year % 4 || ((year % 100 == 0) && year % 400)) a[2] = 29;
for(i = 12 + 31; i >= 1 + 1; i--) for(j = 12; j >= 1; j--, c++) if(a[j] && i == j + a[j]) printf("%d%02d%02d = %d\n", year, j, a[j]--, i + n);
printf("%d\n", c);
return 0;
}

2013 で c == 504 だけど
c == 365 まで減らせない?
349デフォルトの名無しさん:2013/11/26(火) 10:53:49.59
504以下にはできるけど、2月があるからそのやり方だと365にするのはちょっと無理じゃないかな
350デフォルトの名無しさん:2013/11/26(火) 10:55:26.63
2/28と1/31で2日差があるから
>>348の修正で
for(j = 12; j >= 1 && i <= j + a[j] + 2; j--, c++)
にしたら453までは減ったけど
365まで減らすのはもっと工夫が必要だと思うが
そこまですると逆に計算量増える気もする
351デフォルトの名無しさん:2013/11/26(火) 11:00:31.30
だれだよ2月の日数削った馬鹿は
352デフォルトの名無しさん:2013/11/26(火) 11:01:56.21
1月と2月を前年の最終月に回すという考え方もあるね
353デフォルトの名無しさん:2013/11/26(火) 11:02:54.78
>>351
ローマ皇帝だってことを知ってて突っ込み待ちのレス乞食乙w
354デフォルトの名無しさん:2013/11/26(火) 11:06:57.24
>>351
昔のえろいひと
355デフォルトの名無しさん:2013/11/26(火) 11:10:36.17
>>353
税金ごまかすためだったか
月末の支払日伸ばすためだったか
356デフォルトの名無しさん:2013/11/26(火) 14:45:57.43
ローマも大変だったのね
357デフォルトの名無しさん:2013/11/26(火) 14:57:38.59
>>346 >>348
どちらも
2013 のときに 366 行
2012 のときに 365 行
出力されていますね
358デフォルトの名無しさん:2013/11/26(火) 15:25:01.91
うるう年の判定が逆だな
359デフォルトの名無しさん:2013/11/26(火) 15:42:15.89
順番に挿入するだけのも作ってみた

#include <stdio.h>

int main(void)
{
int a[366][2] = {0}, b[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, i, j, k, c, m, n, year;

scanf("%d", &year);
if(year % 400 == 0 || (year % 4 == 0 && year % 100)) b[2] = 29;
n = year / 100 + year % 100;

for(i = 31, c = 0; i >= 1; i--, c++) a[i][0] = 1200 + i, a[i][1] = 12 + i;

for(i = 11; i >= 1; i--) {
for(j = b[i]; j >= 1; j--, c++) {
m = i + j;
for(k = c; m > a[k - 1][1]; k--) a[k][0] = a[k - 1][0], a[k][1] = a[k - 1][1];
a[k][0] = i * 100 + j, a[k][1] = m;
} }
for(i = 0; i < c; i++) printf("%d%04d = %d\n", year, a[i][0], n + a[i][1]);

return 0;
}
360デフォルトの名無しさん:2013/11/26(火) 16:29:41.42
>>350
sleepソートなら、366回。
361デフォルトの名無しさん:2013/11/26(火) 17:03:33.89
hash値が2〜43のhashソートが速そう
衝突回避用には要素12の配列とかで
362デフォルトの名無しさん:2013/11/26(火) 17:30:20.93
かなりすっきりした

#include <stdio.h>

int main(void)
{
int h[44][13] = {0};
int year, n, i, j, m[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
scanf("%d", &year);
n = year / 100 + year % 100;
if(year % 4 || (!(year % 100) && year % 400)) m[2]--;
for(j = 12; j >= 1; --j) for(i = m[j]; i >= 1; --i) h[j + i][j] = j * 100 + i;
for(i = 12 + 31; i >= 1 + 1; --i) for(j = 12; j >= 1; --j) if(h[i][j]) printf("%04d%04d = %d\n", year, h[i][j], i + n);
return 0;
}
363デフォルトの名無しさん:2013/11/26(火) 17:35:46.46
42 x 12 = 504
364デフォルトの名無しさん:2013/11/26(火) 17:52:00.80
#include <stdio.h>

int main(void)
{
int h[44][14] = {0};
int m[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int c = 0, d = 0, year, n, i, j, k;
scanf("%d", &year);
n = year / 100 + year % 100;
if(year % 4 || (!(year % 100) && year % 400)) m[2]--;
for(j = 12; j >= 1; --j)
for(i = m[j]; i >= 1; --i){
k = j + i;
h[k][j] = j * 100 + i;
if(!h[k][0] || h[k][0] > j) h[k][0] = j;
if(h[k][13] < j) h[k][13] = j;
}
for(i = 12 + 31; i >= 1 + 1; --i)
for(j = h[i][13]; j >= h[i][0]; --j, ++c)
if(h[i][j]) printf("%04d%04d = %d, %d\n", year, h[i][j], i + n, ++d);
printf("%d\n", c);
return 0;
}
365デフォルトの名無しさん:2013/11/26(火) 18:46:26.92
>>364
if(!h[k][0] || h[k][0] > j) h[k][0] = j;

毎回成立する(真)ので比較自体無駄
代入だけでいいよ
366デフォルトの名無しさん:2013/11/26(火) 19:19:30.52
>364
もはや printf の前の if(h[i][j]) は不要かと思ったが
取ると可笑しくなるな
367デフォルトの名無しさん:2013/11/27(水) 07:57:01.23
367回になりました
ほんとうにありがとうございました
あと2つは何なんでしょう?
368デフォルトの名無しさん:2013/11/27(水) 08:06:13.19
367回にするための前準備のコストを無視して回数減ったって喜ぶのはどうなんだろ
369デフォルトの名無しさん:2013/11/27(水) 08:20:47.22
テストはしてない
for (i = 12 + 31; i >= 1 + 1; i--)
 for (m = (i >= 12+1) ? 12 : i - 1; m >= 1 && (d = i - m) <= 31; m--, c++)
  if (d <= a[m])
   printf("%d%02d%02d = %d\n", year, m, d, i + n);
370デフォルトの名無しさん:2013/11/27(水) 08:40:20.62
372回
あともう少し!
371デフォルトの名無しさん:2013/11/27(水) 08:41:52.86
>>368
エコカーで省エネですね
わかります
372デフォルトの名無しさん:2013/11/27(水) 09:30:59.74
ソーラー発電で電気代ウマーだろ
373デフォルトの名無しさん:2013/11/27(水) 11:07:07.81
>>369
(d = i - m) <= a[m]
だと何でだめなんだっけ
374デフォルトの名無しさん:2013/11/27(水) 11:45:18.87
>>373
>349ー350
阿保ばっかだな
375デフォルトの名無しさん:2013/11/27(水) 11:56:21.48
>>373
2月が28日までのとき
i=31の時の12/19,11/20,...,3/28,2/29,1/30
の2/29でループを抜けるので1/30が表示されない

>>370
(2/29,)2/30,2/31,4/31,6/31,9/31,11/31
をifで除外してるから、それを効率的なコードでforの条件に加えることができれば...
376デフォルトの名無しさん:2013/11/27(水) 12:12:32.73
どうでもいいんだけど
もし別の惑星で
太陽系みたいな周期のところに
同じような周期を持つ月を持つ惑星があって
同じような文明の偽人類がいたとして
やっぱり2月が28日29日だったりするのかな
377デフォルトの名無しさん:2013/11/27(水) 12:20:29.00
シーサー
378デフォルトの名無しさん:2013/11/27(水) 12:28:44.41
feb[2] = leap ? 1 : 2;
for (i = 12 + 31; i >= 1 + 1; i--)
 for (m = (i >= 12+1) ? 12 : i - 1; m >= 1 && (d = i - m) <= a[m] + feb[m]; m--, c++)
  if (d <= a[m])
   printf("%d%02d%02d = %d\n", year, m, d, i + n);

コスト減ったかどうかは謎
379デフォルトの名無しさん:2013/11/27(水) 12:39:16.40
最初から
int a[13] = {0, 31, 30, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
に設定しといて
for(i = 12; i >= 0; --i) feb[i] = a[i];
feb[2] = 29;
if(year % 4 || (!(year % 100) && year % 400)) feb[2]--;
の準備してから
for(m = (i >= 12+1) ? 12 : i - 1; m >= 1 && (d = i - m) <= a[m]; m--, c++)
if(d <= feb[m])
printf("%d%02d%02d = %d\n", year, m, d, i + n);
だとどうかな
準備してるから失格かな
380デフォルトの名無しさん:2013/11/27(水) 12:42:23.03
準備云々じゃなくてforの中のifが無くなってないから失格
381デフォルトの名無しさん:2013/11/27(水) 12:45:15.98
いや
トータルで比較に回数は確実に減ってるっしょ
382デフォルトの名無しさん:2013/11/27(水) 12:46:27.25
基本的なアルゴリズムと可読性で>>346でおしまい
383デフォルトの名無しさん:2013/11/27(水) 12:51:18.15
中の if が無くなるのが理想
384デフォルトの名無しさん:2013/11/27(水) 12:51:30.30
>>368
トータルで考えなよ。
1回しか使わないなら、前準備しないのも有り。
385デフォルトの名無しさん:2013/11/27(水) 12:58:54.95
for(i = 12 + 31, m = 12; i >= 1 + 1; i--) {
for(j = m; j >= 1; j--) {
if(i == j + a[j]) {
printf("%d%02d%02d = %d\n", year, j, a[j], i + n);
if(--a[j] == 0) m--;
} } }
386デフォルトの名無しさん:2013/11/27(水) 13:05:51.89
(year % 4 || (!(year % 100) && year % 400) + 28ってことじゃなくて?
387デフォルトの名無しさん:2013/11/27(水) 13:13:10.74
ああループの中か
388デフォルトの名無しさん:2013/11/27(水) 13:20:33.29
ifを使わないでくださいの人か
389デフォルトの名無しさん:2013/11/27(水) 15:06:19.20
年月日は演算しろと書いてるがソートして表示とあるだけでソート演算しろとは言ってない

http://ideone.com/bxX5sZ
390デフォルトの名無しさん:2013/11/28(木) 00:22:29.88
for (i = 12 + 31; i >= 1 + 1; i--)
 for (m = (i >= 12+1) ? 12 : i - 1; m >= 1 && ((d = i - m) <= a[m] || m == 2 && i <= 2+30 && (m--, d++)); m--, c++)
  printf("%d%02d%02d = %d\n", year, m, d, i + n);
391デフォルトの名無しさん:2013/12/02(月) 00:27:43.43
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):http://ideone.com/WaZoDn
[3] 環境
 [3.2] visual studio
 [3.3] 言語: C
[4] 期限:12/3 12時
392デフォルトの名無しさん:2013/12/02(月) 01:54:49.43
393 ◆QZaw55cn4c :2013/12/02(月) 04:31:19.50
394デフォルトの名無しさん:2013/12/02(月) 13:06:26.20
>>391
ガウス君の説き方
int sum_gauss(int n){
 if(n%2)
  return (n+1)/2*n;
 else
  return (n/2)*(n+1);
}
395デフォルトの名無しさん:2013/12/02(月) 15:20:12.42
>>394
if文はいらんぞ
int sum_gauss(int n){ return (n*(n+1))/2; }
396デフォルトの名無しさん:2013/12/02(月) 15:24:23.53
ああ、そういうことか

int sum_gauss(int n){
 return (n/2 + n%2)*(n+1);
}
397デフォルトの名無しさん:2013/12/02(月) 16:11:17.28
数独を総当りで解く関数を2つ作成

1, forを使用したもの
2, 再起を使用したもの

・1〜9の数字を使用
・盤面は9*9マス(3*3のブロックが9つ)
・縦 + 横 + ブロック(3*3)において数字が重複しないようにする
・問題が不正な(問題の時点で重複があった)場合問題が不正と出力
・問題に空行が見つかった場合はその行の値を全て無しとみなす
・読み込みが9行未満で終了した場合はそれ以降の行も値を無しとみなす
・解が100個以上見つかった場合は100個目を出力
・解が見つからなかった場合は解無しと出力

問題の受け取りはテキストから一行ずつ
各行につき9文字+改行
値を指定しない場合はドット'.'を指定する

テキスト内容の例
1........
2........
...3....4
.......1.
....9....
.....7...
.8.......
.........
.........
398デフォルトの名無しさん:2013/12/03(火) 00:01:56.59
[1] 授業単元:アルゴリズム概論
[2] 問題文(含コード&リンク):http://ideone.com/arXA0w
[3] 環境
 [3.2] gcc3.4
 [3.3] 言語: C
[4] 期限:12/3 14時

どなたかお願いします.
399デフォルトの名無しさん:2013/12/03(火) 00:19:48.07
問題文の頭で間違えてるのが気になる
400デフォルトの名無しさん:2013/12/03(火) 00:51:13.53
問題文の頭というと、どこでしょうか?
間違いがあるなら修正します。
401デフォルトの名無しさん:2013/12/03(火) 13:56:03.52
有効グラフって何やw
402デフォルトの名無しさん:2013/12/04(水) 02:28:40.14
>>397
暇つぶしのつもりが大作スパゲッティに。
http://ideone.com/2bLzS9
403デフォルトの名無しさん:2013/12/04(水) 20:23:58.21
[1] プログラミング
[2] 問題文(含コード&リンク):
文字列s、pを与えられ文字列sの中の先頭から順に調べpに一致する部分文字列が
見つかったらその部分文字列の先頭を指すポインタを、見つからない場合NULLを返す
SEARCH関数を作る
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 2013/12/06までに
[5] その他の制限: 再帰関数で作る。繰り返し文使わない。ライブラリ関数使わない
新たな関数や大域変数を宣言してはいけない。pが空文字列のときはsを返す。
404デフォルトの名無しさん:2013/12/04(水) 20:31:27.48
char* SEARCH(char* s,char* p){
char* q;
if(*p=='\0')return s;
if(*s=='\0')return NULL;
if(*s==*p){
q=SEARCH(s+1,p+1);
if(q==s+1)return s;}
else return search(s+1,p);
}
>>403です。自分なりに書きましたが例えばsにabcdefg、pもagとすると
bcdefgとなってしまいうまくいきませんでした
この場合NULLのはずですが・・・
405 ◆QZschizo.ptH :2013/12/04(水) 21:07:38.21
>>404
http://toro.2ch.net/test/read.cgi/tech/1313183984/751
1)最後まで一致したときに、最初の位置をどうやって返すか?
2)不一致を発見したときにどう巻き戻るか?
を考えると、サブ関数を作ってそれを再帰にする感覚で書く
406 ◆QZschizo.ptH :2013/12/04(水) 21:18:28.24
しかないのでは?ちょっといい手が思いつかない
407デフォルトの名無しさん:2013/12/04(水) 21:20:41.42
>>405
>サブ関数を作って
>新たな関数や大域変数を宣言してはいけない。
はいアウトー。
408デフォルトの名無しさん:2013/12/04(水) 21:36:06.53
>>403
>>405 likeに。10分で書いたからバグってるかも。
#include <stdio.h>
int Match(char* s, char *p){
if (s == NULL) return -1;
if (p == NULL) return -1;
if (*p == '\0') return 1;
if (*s == '\0') return -1;
if (*s != *p) return -1;
return Match(s + 1, p + 1);
}
char* Search(char *s ,char *p){
if (s == NULL) return NULL;
if (p == NULL) return NULL;
if (*s == '\0') return NULL;
if (*s == *p){ if (Match(s, p) == 1) return s; }
return Search(s + 1, p);
}
int main(){
char *bun = "magical girl madoka magika!";
char *s = "madoka";
char *s2 = "sayaka";
char *r = Search(bun, s);
char *r2 = Search(bun, s2);
return 0;
}
409408:2013/12/04(水) 21:37:01.85
あぁ、ダメか。
410デフォルトの名無しさん:2013/12/04(水) 21:40:08.20
>>404
char* SEARCH(char* s, char* p){
char* q;
if (*p == '\0')return s;
if (*s == '\0')return NULL;
if (*s == *p){
q = SEARCH(s + 1, p + 1);
if (q == s + 1)return s;
}
return SEARCH(s + 1, p);
}
最後のelse取っただけ
411 ◆QZschizo.ptH :2013/12/04(水) 21:43:47.24
>>410
なるほど
412デフォルトの名無しさん:2013/12/04(水) 21:47:38.37
#define ___
const char* SEARCH(const char *s,const char* p){
___ if(!s||!p||!*s)return 0;
___ if(!*p)return s;
___ if(*s==*p){
___ ___ const char *r;
___ ___ r=SEARCH(s+1,p+1);
___ ___ if(r==s+1)return r-1;
___ }
___ return SEARCH(s+1,p);
}
#include <stdio.h>
int main(){
printf("agc->%s\n",SEARCH("abcdefg","agc"));
printf("abc->%s\n",SEARCH("abcdefg","abc"));
printf("def->%s\n",SEARCH("abcdefg","def"));
return 0;
}
413デフォルトの名無しさん:2013/12/04(水) 21:48:52.49
>>403
もう終わっちゃったか。
ちょっと汚い方法だが、2つくっつけたぜ。
これで文句ないだろう。ただ、デバッグほとんどしてない。

#include <stdio.h>
char* Search(char *s ,char *p ,int Mode){
if (s == NULL) return NULL;
if (p == NULL) return NULL;
if (Mode == 0){
if (*s == '\0') return NULL;
if (*s == *p){ if (Search(s, p,1) != NULL ) return s; }
return Search(s + 1, p,0);
}
else{
if (*p == '\0') return (char*)0xDeadBeef;
if (*s == '\0') return NULL;
if (*s != *p) return NULL;
return Search(s + 1, p + 1,1);
}

return NULL;
}
int main(){
char *bun = "magical girl madoka magika!";
char *s = "madoka";
char *s2 = "sayaka";
char *r = Search(bun, s,0);
char *r2 = Search(bun, s2,0);
return 0;
}
414デフォルトの名無しさん:2013/12/04(水) 22:10:11.94
>>413
引数増やすのはありなのかなぁ…
っていうかPuella Magiってタイトルロゴにかいてあるだろー!
415デフォルトの名無しさん:2013/12/04(水) 22:14:38.90
lyrical nanoha
416デフォルトの名無しさん:2013/12/04(水) 22:33:06.84
>>414
仕様が不明確なのでそこを突きました。汗
まどかはまだにわかファンなのでそこまで書いてあるとは思わなかった。
謝罪してお詫びする。
417デフォルトの名無しさん:2013/12/04(水) 22:46:21.49
>>416
自分もニワカだし謝罪されてしまうと身の置き場ががが。
あとついでにmagicaらしい。kaだと思ってたorz
418デフォルトの名無しさん:2013/12/05(木) 00:08:56.85
char *SEARCH(char *s, char *p)
{
static char *ss = s, *pp = p;
return
(!*p) ? ss :
(!*s) ? NULL :
(*s != *p) ? SEARCH(++ss, pp) :
SEARCH(++s, ++p);
}
419デフォルトの名無しさん:2013/12/05(木) 00:53:01.90
char *search(char *s,char *p){
return s&&p?*p?*s?((*p==*s)&&(s+1==search(s+1,p+1)))?s:search(s+1,p):NULL:s:NULL;
}
420デフォルトの名無しさん:2013/12/05(木) 00:55:15.04
>>403
http://ideone.com/t49wAw

char *search(char *s,char *p){
return s&&p?*p?*s?((*p==*s)&&(s+1==search(s+1,p+1)))?s:search(s+1,p):NULL:s:NULL;
}
421デフォルトの名無しさん:2013/12/05(木) 00:58:54.31
>>418
error: initializer element is not constant
static char *ss = s, *pp = p;
^
422デフォルトの名無しさん:2013/12/05(木) 03:29:09.19
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
問題@(戻り値が無い場合の引数あり)
円錐の半径rと高さhを入力し、円錐の体積を求めるプログラムを作りなさい。
ただし、main関数で円錐の半径rと高さhの入力を行い、円錐の体積の計算と表示はtaisekiという
関数で行うこと。
また、円周率は3.14を使用すること。

>>422に続きます
423デフォルトの名無しさん:2013/12/05(木) 03:29:56.89
すみません423に続きますでした。

問題A(戻り値がある場合の引数あり)
円錐の半径rと高さhを入力し、円錐の体積を求めるプログラムを作りなさい。
ただし、main関数で円錐の半径rと高さhの入力と計算された円錐の体積の表示を行い、
円錐の体積の計算はtaisekiという関数で行うこと。

>>424に続きます
424デフォルトの名無しさん:2013/12/05(木) 03:54:47.56
>>422-423
void taiseki1(int r, int h)
{ // 問題@
printf("体積は%fです", r * r * h * 3.14 / 3);
}
double taiseki2(int r, int h)
{ // 問題A
return r * r * h * 3.14 / 3;
}

int main(void)
{
int r, h;

printf("半径を入力して下さい>"); scanf("%d", &r);
printf("高さを入力して下さい>"); scanf("%d", &h);

taiseki1(r, h); // 問題@
printf("体積は%fです", taiseki2(r, h)); // 問題A
}
425デフォルトの名無しさん:2013/12/05(木) 10:47:23.48
ちゃんちゃん
426デフォルトの名無しさん:2013/12/05(木) 18:31:37.90
tes
427デフォルトの名無しさん:2013/12/05(木) 19:18:40.36
>>422-423 スレを汚してしまいすみませんでした。連投制限に引っかかってしまったので投稿し直します
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://ideone.com/zF5weB
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Windows Vista Home
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) borland
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)C
[4] 期限:2013年12月12日02:00まで
[5] その他の制限:
今回の宿題は「配列」「関数」「ポインタ」 辺りの知識を使うそうです。
問題@とAはそれぞれ別です。
とくに制限はありませんが引数のありなし等をよくご確認して頂ければ幸いです。
>>424の方はせっかくやっていだたいたのに申し訳ありません
よろしくお願い致します。
428デフォルトの名無しさん:2013/12/05(木) 19:20:59.77
>>427
>>424提出してハネられたの?
429デフォルトの名無しさん:2013/12/05(木) 19:32:21.75
問題解く以前にコミュ力に疑問があるぞ。
>>424 はどうだったのか、何か問題があるのか
きちんと対応するのがスジでしょ。
430デフォルトの名無しさん:2013/12/05(木) 20:12:22.48
1と2くらい自分で分けて提出できないのかね
ひどすぎるわ
431デフォルトの名無しさん:2013/12/05(木) 20:15:10.16
問題を出して下さった方に失礼では?
432デフォルトの名無しさん:2013/12/05(木) 20:16:21.41
問題を解いた跡があるのでそれの結果を聞かないと対応が難しい。
433デフォルトの名無しさん:2013/12/05(木) 20:17:43.66
出題者に感謝しない解答者が多いよね
礼儀を覚えたほうがいい
434デフォルトの名無しさん:2013/12/05(木) 20:20:34.82
はっはー。で、結果は?
435デフォルトの名無しさん:2013/12/05(木) 20:21:36.13
出題者と転載者は違う
転載しかできない奴には何を聞いても欲しい答えに届かない
436デフォルトの名無しさん:2013/12/05(木) 20:36:49.51
>>433
解答なんかしねーよカスが
437デフォルトの名無しさん:2013/12/05(木) 20:49:40.92
もう少し簡単な問題にしてほしいってことですか?
438デフォルトの名無しさん:2013/12/05(木) 20:53:42.91
>>437
違う。問題はすぐ解けるが、以前解いた人に対するレスポンスはどうなのよ。
うまく行ったの?いかなかったらなんでいかなかったの?
439デフォルトの名無しさん:2013/12/05(木) 20:55:34.44
>>427
>>424を自分で2つに分けるんだ
440デフォルトの名無しさん:2013/12/05(木) 21:08:04.10
アアハイハイ、知っているがお前の態度が気に食わないってやつですね?
要約すると、わかりませんってことですね?
441デフォルトの名無しさん:2013/12/05(木) 21:10:31.66
>>440
現状説明してもわからないのにどうやって解答説明しようかなぁ。
重大問題だなぁ。
442デフォルトの名無しさん:2013/12/05(木) 21:24:42.55
分けりゃいいんだろ

#if MONDAI == 1
void taiseki(int r, int h)
{ // 問題@
printf("体積は%fです", r * r * h * 3.14 / 3);
}
#elif MONDAI == 2
double taiseki(int r, int h)
{ // 問題A
return r * r * h * 3.14 / 3;
}
#else
# error "MONDAI は 1 か 2 にしてくれ."
#endif

int main(void)
{
int r, h;

printf("半径を入力して下さい>"); scanf("%d", &r);
printf("高さを入力して下さい>"); scanf("%d", &h);

#if MONDAI == 1
taiseki(r, h); // 問題@
#elif MONDAI == 2
printf("体積は%fです", taiseki(r, h)); // 問題A
#else
# error "同上."
#endif
}
443デフォルトの名無しさん:2013/12/05(木) 21:26:27.87
>>442 で解決ね。素晴らしい。
444デフォルトの名無しさん:2013/12/05(木) 22:21:45.19
たぶん問題の意味も回答の意味もわからず、
メイク、テストの仕方のわからんのでは?w
そのまんま、提出するんですね。まぁいい・・・のか。
445デフォルトの名無しさん:2013/12/05(木) 22:47:15.17
万事OK。次こーい。
446デフォルトの名無しさん:2013/12/05(木) 22:48:17.64
出題者に礼を述べるべきでは?
447デフォルトの名無しさん:2013/12/05(木) 22:51:14.26
>>446
出題者を呼んで来い
448デフォルトの名無しさん:2013/12/05(木) 23:00:11.71
出題者って先生だろ
449デフォルトの名無しさん:2013/12/06(金) 12:06:23.58
カンニングと言う不法行為を公開の場で要請するゴミクズ相手になに言ってるんだ
死ねよクズ共
450 ◆QZaw55cn4c :2013/12/06(金) 12:35:30.26
>>449
心配しなくても、書くことが好きな人間なら近づかないと思うよこんな糞スレに
え,逆?逆?
451デフォルトの名無しさん:2013/12/06(金) 12:45:52.10
出題側が明確に禁止しない限り授業や講義の時間内にやらんことをカンニングも糞もないわ
452デフォルトの名無しさん:2013/12/06(金) 13:39:15.33
>>450
朝鮮人はちょっと黙ってて
453デフォルトの名無しさん:2013/12/06(金) 17:59:40.72
[2] 問題文 標準入力から1行の文字列を受け取って文字の単方向リストをつくれ
abbdeと入力すると→e→d→c→b→a
[3] 環境
 [3.1] OS Mac
 [3.2] コンパイラ名 gcc -o
 [3.3] 言語: C

よろしくお願いします。
454230:2013/12/06(金) 18:37:51.43
>>453
こんな感じでいいのか?デバッグほとんどしてないから提出前に確認してネ!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct List{
struct List* Next;
int value;}List;
int main(){
static const int Len = 1024;
char str[1024] = {0, };
int Num = 0;
List *L = NULL, *N = NULL;
int i = 0;
fgets(str, Len, stdin);
Num = strlen(str);
if (str[Num - 1] == '\n'){
str[Num - 1] = '\0';
Num--;}
L = calloc(Num+1, sizeof(List));
for (i = 0; i < Num; i++){
L[i].value = str[i];
L[i + 1].Next = &L[i];
}
L[0].Next = NULL;
N = &L[i-1];
while (N != NULL){
printf("%c", N->value); if (N->Next != NULL)printf(" -> ");
N = N->Next;
}
free(L);
return 0;}
455デフォルトの名無しさん:2013/12/06(金) 18:42:56.40
あれ?230って名前に入ってるけど、どこで入れたっけな。
とりあえず、>>230氏とは関係ないのでアシカラズ。
456デフォルトの名無しさん:2013/12/06(金) 18:45:21.68
自演乙
457デフォルトの名無しさん:2013/12/06(金) 18:51:30.90
>>456
このスレだけ見てるわけじゃないんだよ。
こんなことでイチイチ絡んでたら身がもたないぞ。
458デフォルトの名無しさん:2013/12/06(金) 18:57:27.07
言い訳乙
459デフォルトの名無しさん:2013/12/06(金) 18:58:01.12
ネガティブ。
460デフォルトの名無しさん:2013/12/06(金) 19:24:20.93
^230<>
で検索してみたが
自分が購読してるスレでは
ここしか出て来なかった
4/17 とか 7/5 とかに大量に 230 が居たwww
461デフォルトの名無しさん:2013/12/06(金) 19:26:50.47
粘着きも
462230:2013/12/06(金) 19:31:03.52
私は無実という事でよろしいでしょうか
463デフォルトの名無しさん:2013/12/06(金) 19:41:31.13
その方さがってよいぞ
464220:2013/12/06(金) 21:04:58.56
やった 釈放だ
465デフォルトの名無しさん:2013/12/06(金) 21:41:33.27
誰だよお前。
466デフォルトの名無しさん:2013/12/06(金) 21:49:12.15
俺だよ俺
467デフォルトの名無しさん:2013/12/06(金) 22:11:28.61
ワリオさーん。
468デフォルトの名無しさん:2013/12/06(金) 22:42:27.88
>>454 ありがとうございます
469デフォルトの名無しさん:2013/12/07(土) 12:52:02.69
みんなが大好きな C/C++ ポインタの課題50問作ってみました。
是非解いてみてください。

http://vivi.dyndns.org/tech/cpp/ex-1.html
470デフォルトの名無しさん:2013/12/07(土) 20:13:32.05
[1] 授業単元: プログラミング1
[2] 問題文(含コード&リンク): 1から3まで0.2ずつ増やしてその平方根の値を示す
0.0 0.2 0.4 0.6





こんな感じで表示させるプログラムができないです。皆さんの力を貸してください。

[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン: (visual studio 2012
 [3.3] 言語: C
[4] 期限: ([2013年12月8日12:00まで] または
[5] その他の制限: (for文 math関数まで習いました。)
471470:2013/12/07(土) 20:22:57.86
お前ら、これくらいしか取り柄ないんだから
とっとと解答つくれキモオタども
472デフォルトの名無しさん:2013/12/07(土) 20:23:14.88
>>470
こんな感じってのがさっぱり分からん
473デフォルトの名無しさん:2013/12/07(土) 20:24:05.05
>>470
0.0 0.2 0.4 0.6 0.8
1.0 1.2 1.4 1.6 1.8
2.0 2.2 2.4 2.6 2.8
3.0

この合計の平方根でいいの?
474デフォルトの名無しさん:2013/12/07(土) 20:31:45.44
>>473なのか
各値(0<=3;+=0.2)の平方根を表示するのか
例題の4は何なのか

謎だらけで解きようが無い
475デフォルトの名無しさん:2013/12/07(土) 20:38:41.00
問題文はそのまま貼れや自分勝手に解釈して書くな
476デフォルトの名無しさん:2013/12/07(土) 20:44:18.22
説明不足ですいません。
こんな感じです。
 0.0 0.2 0.4 0.6 0.8
0 ? ? ? ? ?
1 1.000
2
3
4
477デフォルトの名無しさん:2013/12/07(土) 20:46:00.17
だからそのまま貼れっつってんだよ分かんねーよ
478デフォルトの名無しさん:2013/12/07(土) 20:46:12.31
>>476
解いてもらえなくてもいいならいいが
「こんな感じ」じゃなくて「これ」で頼む
479デフォルトの名無しさん:2013/12/07(土) 20:50:34.37
>>476
yx 0.0 0.2 0.4 0.6 0.8
1
2
3
4

sqrt(x + y)って事でいいのか?
480470:2013/12/07(土) 21:05:12.58
わかんねーなら、無理して解答しなくていいよ
どーせ使えねえ糞解答なんでしょ
481デフォルトの名無しさん:2013/12/07(土) 21:09:28.33
ほんとすみません
1から3まで0.2ずつ増やしてその平方根の値を示すだけです。
482デフォルトの名無しさん:2013/12/07(土) 21:27:27.91
テンプレ読まない奴は自分でやれよ
自分で選んだ道だろ
できないならやめろよ今すぐ
483デフォルトの名無しさん:2013/12/07(土) 21:41:31.40
>>481
>>470>>476の4は何?
>>476の1.000は何?
484デフォルトの名無しさん:2013/12/07(土) 21:46:39.60
>>481
#include <stdio.h>
#include <math.h>
int main()
{
int i,j;
printf(" 0.0 0.2 0.4 0.6 0.8 1.0\n");
for (i = 1; i < 3; i++) {
printf("%d ", i);
for (j=0; j <= 10; j+=2) {
printf("%.2f ", sqrt(i+(double)j/10));
}
printf( "\n");
}
return 0;
}
こんな感じか?
485デフォルトの名無しさん:2013/12/07(土) 21:47:43.93
問題文だけなら

1.00 , 1.000000
1.20 , 1.095445
1.40 , 1.183216
1.60 , 1.264911
1.80 , 1.341641
2.00 , 1.414214


って感じかと思ったが表みたいなやつの意味がわからん
486デフォルトの名無しさん:2013/12/07(土) 22:07:27.96
1.0から3.0まで0.2刻みの数値の平方根を表示せよ。
でいいはず
って言ってる間に解けるな
#include <iostream>
#include <cmath>
using namespace std;
double div=1.0;
while(div<=3.0){
cout<<div<<"\t"<<sqrt(div)<<endl;
div+=02;
}
こんな感じでw
487デフォルトの名無しさん:2013/12/07(土) 22:22:18.51
表がわかんないとか、バカかw
488470:2013/12/07(土) 22:30:02.87
バカは無理して作らなくていいよ
つーか、邪魔しないでよ
489デフォルトの名無しさん:2013/12/07(土) 22:36:29.44
490デフォルトの名無しさん:2013/12/07(土) 22:46:58.93
この問題自力で解けないなら、エクセルで答えを出せるようになっておいた方がよっぽどいい、とおもた
491デフォルトの名無しさん:2013/12/07(土) 23:15:15.95
エクセルで平方根どうするんですかと来るんじゃね
492デフォルトの名無しさん:2013/12/07(土) 23:29:59.08
sqrtを使っていいなら誰でも書けるわw

鬼の首でもとったようなドヤ顔・・・
493デフォルトの名無しさん:2013/12/07(土) 23:34:00.80
アルゴリズム事典を買う金もないのか
494デフォルトの名無しさん:2013/12/07(土) 23:35:21.73
いい加減な事をすると後輩に迷惑かかるのに
495デフォルトの名無しさん:2013/12/08(日) 00:08:31.11
>>492
それって自分の顔ちゃうんか
496デフォルトの名無しさん:2013/12/08(日) 00:41:57.13
おやおや、対立煽って得する人がいるみたいですね。
497デフォルトの名無しさん:2013/12/08(日) 01:08:31.92
二次元の表にしろって指定の時点で駄目さ漂ってるが、
それに加えて471みたいなのまで涌いてるとか始末が悪い。

とりま、出題者がクソで問題文自体がクソだったとしても、
依頼者が勝手に補完するともっとクソになる実例ですね。
498デフォルトの名無しさん:2013/12/08(日) 02:37:51.58
こんな感じの依頼と回答でほのぼのした感じ
499デフォルトの名無しさん:2013/12/09(月) 11:27:44.25
テンプレの
>・なりすましを防ぐため、トリップを使ってください。
を無視している以上沸いてくるのはしょうがない
500デフォルトの名無しさん:2013/12/09(月) 15:06:48.13
社会の規則を守らないゴミがスレッドの規則を守れとはつまらないジョークだな
501デフォルトの名無しさん:2013/12/09(月) 16:09:32.90
と、ゴミが自己紹介しております
502デフォルトの名無しさん:2013/12/09(月) 16:46:05.97
こういう流れを見るにつけ
ID必須だと思う
503デフォルトの名無しさん:2013/12/09(月) 18:18:32.00
OSやウィンドウマネージャー書くぐらいの才能がないと、
c/c++なんて学ぶだけ時間の無駄
504デフォルトの名無しさん:2013/12/09(月) 19:46:22.00
スーザンボイルさんアスペを告白
http://news.mynavi.jp/news/2013/12/09/347/
505♯tttam:2013/12/09(月) 22:28:37.45
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
 キーボードから正負の整数をデタラメに入力し、整数のみを配列に格納し、その個数が5個になったら入力を受け付けず、その5つの正の整数を和と平均を求めるプログラムを作れ、平均は小数点以下一位まで求めろ
[3] 環境
 [3.1] OS:Windows7
[ 3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 12月20日
[5] for文にif文で負の数を受け付けないようにすればいいんでしょうか?
よくわかりません
506デフォルトの名無しさん:2013/12/09(月) 22:49:08.78
forかwhileの中で正の数だけ足していって正の数が5つになったらforを抜けて計算して出力って感じかな
507デフォルトの名無しさん:2013/12/09(月) 23:04:34.37
こんな感じ?

#include <stdio.h>
int main(void){
int sum=0, count=0, i=0;
while(count<5){
printf("input number>");
scanf("%d",&i);
if(0<i){
sum+=i;
count++;
}
}
printf("sum=%d ,ave=%.1f\n",sum,(double)sum/5.);
return 0;
}
508デフォルトの名無しさん:2013/12/09(月) 23:12:35.28
509デフォルトの名無しさん:2013/12/10(火) 02:16:07.20
>>506
・整数のみを配列に格納
・その個数が5個になったら
・その5つの正の整数

負の数が一つでも入力されたら正の整数の数が足りなくて続行不能。
問題が↓だったら配列に格納する前の段階で負数を除外すればいいだけだけどなぁ…

キーボードから正負の整数を入力し、入力された値のうち正の整数のみを配列に格納し、
その個数が5個になったら入力を終了し、その5個の正の整数の和と平均を求めるプログラムを作れ。
平均は小数点以下一位まで求めろ。
510デフォルトの名無しさん:2013/12/10(火) 03:21:11.52
>>505
ttp://ideone.com/OAGAUM
こんでいいの?
511♯tttam:2013/12/10(火) 07:51:07.62
皆さんのを参考にしたらうまく出来ました
本当にありがとうございました。
512デフォルトの名無しさん:2013/12/10(火) 17:37:58.36
%.1f という識別子使った事ありませんでしたw どもです。
最近はprecisionしか使ってない。
513デフォルトの名無しさん:2013/12/10(火) 19:00:31.77
以前>>240にて質問させていただいた者です。
自分なりにプログラムしてみたのですが、上手くいかなかった為、もう一度質問させていただきます。

[1] 授業単元:プログラミング演習
[2] 問題文(含コード&amp;リンク):クリップボードの履歴の最新50個を表示するプログラムの作成(テキストのみ)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visualstudio2010
 [3.3] 言語:どちらでも可(できればC++)
[4] 期限:2013年/12/12 23:59
[5] その他の制限: 特になし

後々exeにして自分で使えるようにしたいので、出来ればC++でお願いしたいです。
よろしくお願い致します。
514デフォルトの名無しさん:2013/12/10(火) 23:59:21.77
なんでCだと後々exeにして自分で使えるように出来ないと思ったのか。
そもそもOS自体クリップボードの履歴なんて取ってないから常駐必須だってのもわかってなさそう。

色々と絶望的にプログラミングに向いてないんじゃないか、君。
515デフォルトの名無しさん:2013/12/11(水) 01:50:17.52
普段C++でやってるからに決まってるだろ
コミュ障か?

>>513
クリップボードはWin32APIスレ向け
516デフォルトの名無しさん:2013/12/11(水) 02:49:53.45
>>515
C++でCの資産使えないとかスキル足りないにも程があるぞお前。
517デフォルトの名無しさん:2013/12/11(水) 06:50:32.29
これまたレベルの低いレスだこと (w
518デフォルトの名無しさん:2013/12/11(水) 09:55:30.61
>>516,514
コレは恥ずかしいw
519デフォルトの名無しさん:2013/12/11(水) 10:20:16.06
CopyRect
520デフォルトの名無しさん:2013/12/11(水) 11:45:56.14
どうみても宿題じゃないな
ここは「オレの欲しいプログラムをねだるスレ」じゃねーぞ 乞食
521デフォルトの名無しさん:2013/12/11(水) 13:49:07.25
FAQ
C++でゲームを作るにはどうすればいいですか。
522デフォルトの名無しさん:2013/12/11(水) 15:49:16.22
>>521
ここは、宿題スレだ。
ついでに言えば、質問内容も大ざっぱすぎる
523デフォルトの名無しさん:2013/12/11(水) 16:33:29.17
C++に限らず
ゲームの作り方を知ることだ
524デフォルトの名無しさん:2013/12/11(水) 16:49:27.69
このスレは役立たずのニートがオナネタを収拾するためのスレです
間違えないように
525デフォルトの名無しさん:2013/12/11(水) 17:13:28.25
馬鹿には無理
526デフォルトの名無しさん:2013/12/11(水) 18:03:17.80
>>521
データとアルゴリズムを知ってどうやってゲームシステムに結びつけるかの手法を考える。
527デフォルトの名無しさん:2013/12/11(水) 18:54:18.88
C言語で1人でゲーム制作をできるようになるにはどのくらい時間がかかりますか?
528デフォルトの名無しさん:2013/12/11(水) 19:05:37.65
早くて1年位見込んどくといいよ。
529デフォルトの名無しさん:2013/12/11(水) 19:06:54.66
人それぞれ

基礎で 300時間
必要最低限のプラットフォーム関連で 500時間
設計、アルゴリズムで 1000時間
実際のゲーム制作規模により?時間

10時間/日 勉強し続けて半年後にようやく制作に手をつけられるレベル

いい師がいるなら 3倍速くらいですすむから
金があって時間が惜しいなら高い講習をうけるという手もある
530デフォルトの名無しさん:2013/12/11(水) 19:22:00.04
勉強の効率は人によって違いすぎる……
531デフォルトの名無しさん:2013/12/11(水) 19:31:03.56
CUIで3ヶ月ってとこだな。
GUIだと、プラットフォームのカオスに触れて挫折しかねない。
しかも、他人に合わせることも揃えて覚えないといけないのでかなり大変。
532デフォルトの名無しさん:2013/12/11(水) 19:41:22.10
作りたいゲームがあるならそれにあわせて必要なところを学ぶから上達も早いけど、
ただゲームが作れるようになりたいってだけじゃC入門で躓いて荒らしになるのがオチ
533デフォルトの名無しさん:2013/12/11(水) 23:56:54.45
CUIのゲームなんて誰が遊んでくれるの?w
534デフォルトの名無しさん:2013/12/12(木) 00:17:42.52
自己満足だし、それくらい作れないと話にならない。
535デフォルトの名無しさん:2013/12/12(木) 01:07:46.83
>>533
roguelikeならむしろCUIのが風情があるのでとりあえず死ぬとこまではふつーにやりますよ
もちろん少数派なのは百も承知だけんど
536デフォルトの名無しさん:2013/12/12(木) 01:37:42.98
ゲーム作るの大変なんだ
プリンセスサクリファイスみたいなエロRPG作りたかったけど無理そうだな
537デフォルトの名無しさん:2013/12/12(木) 01:45:56.87
エロ売りたいなら絵や3Dモデル次第でしょ
素材用意できるんなら、Cなんかに学習コスト使わず適当なゲームエンジンでも使えばいいんじゃね
3DならUnity、紙芝居ならonscripterあたり
538デフォルトの名無しさん:2013/12/12(木) 01:56:48.40
>>536
そういうものが作りたかったらC言語なんて低級なもの選んでないで、もっと簡単に絵が出るような言語を選ぶべき。
539デフォルトの名無しさん:2013/12/12(木) 01:58:07.16
音とパッドもな!
540521:2013/12/13(金) 01:41:56.17
ご ごめんなさい。
古くからあるネタなんで笑って貰えるかと...
nifty フォーラム時代からあるC++FAQ ネタでした。
541デフォルトの名無しさん:2013/12/14(土) 10:56:05.97
おもしろくないってことが学べてよかったね
542デフォルトの名無しさん:2013/12/15(日) 05:20:05.28
イマイチ出力や入力、パイプについて深く理解できなかったので質問します
よろしくお願いします。

[1] システムプログラム
[2] 一般の実行プログラムである/usr/bin/lessを子プロセスとして起動して、pipeを通して子プロセスの標準入力にデータ(複数行のテキスト)を渡すプログラムを作りなさい。
[3] 環境
 [3.1] Fedora19
 [3.2] gcc 4.8.2
 [3.3] c
[4] 2013/12/18
[5] fork,pipe,dupについて習っているところです。
543 ◆QZaw55cn4c :2013/12/16(月) 03:10:23.14
>>513
来週まで待ってくれないか?

先に紹介した http://toro.2ch.net/test/read.cgi/tech/1381909900/235 のリンク先をチェックしているが問題が発生している‥‥
InvalidateRect() だけでは WM_PAINT が発生しない状況(UpdateWindow()してる‥‥)があって困惑中.もう見切りをつけようとは思っているが,たぶんエディットコントロール方面でさらに泥沼にはまる予定だ‥‥
http://codepad.org/kky37ici cited & partly changed http://wisdom.sakura.ne.jp/system/winapi/win32/win92.html

きだあきら氏の本って今でも手に入りますか?
544デフォルトの名無しさん:2013/12/17(火) 20:23:34.12
>>542
質問ではなく宿題の丸投げと良います
545デフォルトの名無しさん:2013/12/17(火) 20:37:56.36
>>542
「ふつうのLinuxプログラミング」の12章の内容。
何故か259頁から263頁までが欠けてるので手伝えない。
546デフォルトの名無しさん:2013/12/17(火) 22:15:41.37
シェルで作ってはだめすか
547デフォルトの名無しさん:2013/12/18(水) 00:16:21.75
548デフォルトの名無しさん:2013/12/18(水) 00:16:42.38
>>542
#include <stdio.h>
#include <unistd.h>
int main(void) {
int ret, pipefd[2];
pid_t cpid;
if (pipe(pipefd) < 0)
return 1;
cpid = fork();
if (cpid < 0)
return close(pipefd[0]), close(pipefd[1]), 1;
if (cpid == 0) {
close(pipefd[0]);
ret = write(pipefd[1], "Hello, World", 12);
close(pipefd[1]);
return ret < 0 ? 1 : 0;
} else {
close(pipefd[1]);
if (dup2(pipefd[0], STDIN_FILENO) < 0)
return 1;
execl("/usr/bin/less", "", NULL);
return close(pipefd[0]), 1;
}
}
549デフォルトの名無しさん:2013/12/18(水) 00:18:17.09
>>547 perlみたいなことを・・・、でも好き!
fork() || execl("/usr/bin/less", "", 0)
550デフォルトの名無しさん:2013/12/18(水) 11:20:50.43
>>548
親で実行してるくね?
551デフォルトの名無しさん:2013/12/18(水) 21:41:03.27
っていうか、今時コンソールでのテキストの入出力プログラムなんて
つくって誰が使ってくれるよw
552デフォルトの名無しさん:2013/12/18(水) 21:48:20.63
コンソールの便利さを知らないだけだろ
553デフォルトの名無しさん:2013/12/18(水) 21:52:00.59
GUIの便利さを知らないだけだろ
554デフォルトの名無しさん:2013/12/18(水) 22:23:41.05
また日本語読めないのが来たか
555デフォルトの名無しさん:2013/12/19(木) 03:01:25.56
>>551
完全にスレチ
556デフォルトの名無しさん:2013/12/19(木) 12:14:55.20
GUI は不便
557デフォルトの名無しさん:2013/12/19(木) 19:13:45.07
http://i.imgur.com/0AoVGDO.jpg
ソースコードお願いします…
558デフォルトの名無しさん:2013/12/19(木) 19:49:05.13
printf("aのアドレスは、%p\naの値は、%d\np_aのアドレスは、%p\np_aの値は、%p\nbのアドレスは、%p\nbの値は、%.2f\np_bのアドレスは、%p\np_bの値は、%p\n",&a,a,&p_a,p_a,&b,b,&p_b,p_b);
559デフォルトの名無しさん:2013/12/19(木) 21:50:25.12
中学校のプログラミングの授業かな?
560デフォルトの名無しさん:2013/12/19(木) 22:15:09.27
return 0;
561デフォルトの名無しさん:2013/12/19(木) 22:22:45.90
n個の実数x(i)をキーボードから読み込み、それらの平均と標準偏差を出力するプログラムを作りなさい。ただし、n個の実数の平均を求める関数mean(size,x[ ])と標準偏差を求める関数stdev(size,x[ ])を定義し、これを用いること。
がわかりませぬ。どなたか教えてください。
562デフォルトの名無しさん:2013/12/20(金) 00:12:01.51
>>561
あってるかなあ
http://ideone.com/Jl0BBs
563デフォルトの名無しさん:2013/12/20(金) 01:45:04.89
ほんとこの手の算術問題は即回答がつくなw
ちょっと難しくなると、「宿題は己でやらないと意味が無い」なんてイミフ
なあおりの癖にw
564デフォルトの名無しさん:2013/12/20(金) 01:47:05.63
そんなもんでしょ
何もおかしくない
565デフォルトの名無しさん:2013/12/20(金) 01:53:55.38
同意
さくっと分かる問題なら、暇つぶし用途の即レスがつきやすいってだけよね
なんも不自然に感じないす
566 ◆QZaw55cn4c :2013/12/20(金) 06:26:34.79
>>563
それは俺のせりふだお前がいうな馬鹿野郎
567デフォルトの名無しさん:2013/12/20(金) 09:10:03.08
>>562 ありがとう。でもifの中身がよくわからない、、、簡単に書き換えられたりしませんかね?
568デフォルトの名無しさん:2013/12/20(金) 12:35:02.40
-1 入れたら終了とかでいいなら簡単だけど
569デフォルトの名無しさん:2013/12/20(金) 13:23:28.05
>>568 それでおねがいします!
570デフォルトの名無しさん:2013/12/20(金) 13:30:58.43
>>562 実行しても数値がバグル・・・
571デフォルトの名無しさん:2013/12/20(金) 13:46:39.26
>>569
負なら終了で
for (n = 0; n < MM; n++) {
scanf("%lf", &data[n]);
if (data[n] < 0) break;
}
572デフォルトの名無しさん:2013/12/27(金) 12:26:18.59
int main(){
char c='\0';
char p1='\0';
printf("文字を入力:");
while(1){
scanf("%c",&amp;p1);
if(p1=='\0'){break;}
printf("test%c",p1);
}
以下略
}
で例えばaとか打つとtestatestと出てループ抜けれません
空文字読み込んだらループ抜けるはずなんですが
ご教授おねがいします
573デフォルトの名無しさん:2013/12/27(金) 13:14:46.47
>>572
普通「空文字」なんて言わないし、空文字列とNUL文字(\0)がごっちゃになってるんだろ。
普通の文字列はNUL文字で終端されていて、1文字目(序数0)にNUL文字が来る様な本文0文字の文字列が「空文字列」。

scanfの%cはstdinから文字を読むけど、stdinは文字列では無くコンソールなどのストリームやファイルが実体。
ストリームやファイルはNUL文字終端の文字列ではないので意図的にNUL文字を入力しない限りNUL文字は出てこない。
改行は改行文字として、空白は空白文字として、ファイルの終了(場合によってはCtrl+Z)はEOFとして入力される。
stdinから何らかの条件で複数文字を取り込んで文字列として加工した時に始めてNUL文字で終端された文字列が出てくる。
例えばgetsとかscanfの%sとかfgetsとかそのへん使うとコンソール入力をNUL文字で終端された文字列として読むことが出来る。

文字列を入力するループにして空文字列で終了するように修正するか、
文字を入力するループのまま改行文字などで終了するように修正するか、
文字を入力するループのままNUL文字をなんとか入力して終了させるか、
文字を入力するループをEOFで終了するように修正してEOFを入力して終了させるか、好きな修正法を選ぶといい。
574デフォルトの名無しさん:2013/12/27(金) 14:25:04.83
p1=='\0'をp1=='\n'で解決しました
ありがとうございました
575デフォルトの名無しさん:2013/12/27(金) 15:18:49.46
>>574
1回目の入力aは正常になるが
2回目以降の入力待ちが発生しないからループが無駄になるぞ
576デフォルトの名無しさん:2013/12/27(金) 15:45:08.52
西暦何年かを入力するとその年に月曜日が何回あるか数え
52回なら1を、53回なら0を出力するプログラムお願いします…

1回1回判定するのではなく、一気に何回か入力し、一気に判定を出力するものでお願いします
(0を入力したら終わりです)

入力できるのは1989〜5000です
577デフォルトの名無しさん:2013/12/27(金) 17:06:40.79
空文字って普通に言うし、使う。職場によって違うのかな。
578デフォルトの名無しさん:2013/12/27(金) 18:03:24.82
>>577
その職場ではどういう意味になるの?
'\0'のこと?""のこと?
579デフォルトの名無しさん:2013/12/27(金) 19:19:33.01
>>578
"" です。長さゼロの文字。
580579:2013/12/27(金) 19:23:06.83
これはやはり空文字列ですね。空文字と呼んでいますが、間違っています。
581デフォルトの名無しさん:2013/12/27(金) 19:55:50.02
>>580
文脈があれば大抵は空の文字列だって判るから実用上は問題ないのかも。
問題が起きるのはその辺の概念を整理できてない初心者がそれ聞いたとき。
582デフォルトの名無しさん:2013/12/28(土) 12:36:42.96
プログラミングなんかできてもIT奴隷にしかなれないから安心しろ
583デフォルトの名無しさん:2014/01/02(木) 17:09:55.23
[1] 授業単元:シュミレーション

[2] 問題文(含コード&リンク):
図のように,左右から,直線上を走る球が画面中央で衝突し,
跳ね返る動画を作りなさい.
但し,円の直径を質量として描画する

[3] 環境
 [3.1] OS: Windows
 [3.2] Visual Studio 2010
 [3.3] 言語:C++

[4] 期限:2014/01/07

[5] 表示画面の作成はできます。
衝突後速度の計算結果の画面表示もできます。
物体1と2に初速度と質量を与えて反発係数を入力すると
PICT画面に動画が表示されるようにプログラムしたいです。

[6]参考画像
http://viploader.net/ippan/src/vlippan327255.png
http://viploader.net/ippan/src/vlippan327256.png
584デフォルトの名無しさん:2014/01/02(木) 20:53:03.28
>>583
未来のITドカた乙
向いてないから来るな
585デフォルトの名無しさん:2014/01/02(木) 21:06:00.06
ドカた
586デフォルトの名無しさん:2014/01/03(金) 01:15:04.35
右から!右から何かが来てる!
587デフォルトの名無しさん:2014/01/03(金) 03:50:53.76
表示画面の作成はできますってなんだ
よくわからんが計算できて表示できるならやればいいだろ
何をやって欲しいのかわからん
588デフォルトの名無しさん:2014/01/03(金) 05:45:03.85
平均や偏差を求める問題とか
文字列を並べ替える問題とかなら
レスつくがこの手の問題は放置される可能性は極めて高い
589デフォルトの名無しさん:2014/01/03(金) 09:00:32.29
>>583
「問題文(含コード&リンク):」に書かれている内容を満たすコードなんて無数に考えられるんだけど、
既に存在しているコードを想定した問題出されてもエスパー以外は答えようが無いって理解できない?

>>588
それ以前で依頼に不備があるから回答不能だろが。
問題自体はその手の問題よりも温いくらいだと思うが。
590デフォルトの名無しさん:2014/01/03(金) 09:38:39.48
591デフォルトの名無しさん:2014/01/03(金) 14:05:17.12
2枚目こうですか?(´・ω・`)
void swapnum(int *num2, int *num1)
{
printf("入れ替え後\n");
printf("num1 = %d\n", *num1);
printf("num2 = %d\n", *num2);
}
592デフォルトの名無しさん:2014/01/03(金) 15:40:25.28
>>590
1枚目
addValue(num1, num2, &result);
addValue(int num1, int num2, int *result){
*result = num1 + num2;
}
指摘は自分でどうぞ
593デフォルトの名無しさん:2014/01/03(金) 16:41:04.61
void swapnum(int *num1, int *num2)
{
int temp=*num1;
*num1=*num2;
*num2=temp;
}
594デフォルトの名無しさん:2014/01/03(金) 16:52:38.53
>>589
じゃあ、その不備とやらをしてきして、その解決策まで示してあげれば。
595デフォルトの名無しさん:2014/01/03(金) 18:03:48.00
不備はそのレスで指摘済みじゃね?
596デフォルトの名無しさん:2014/01/03(金) 18:41:06.50
>>583=>>588=>>594なん?
この人サリーとアン課題が解けるか微妙な人な気がするわ。
597デフォルトの名無しさん:2014/01/03(金) 20:43:36.54
なんで宿題をこんなところで晒してるの
598デフォルトの名無しさん:2014/01/04(土) 02:02:13.35
>>596
このスレは昔からそういう連中がたくさんいた
599デフォルトの名無しさん:2014/01/04(土) 02:43:04.50
そりゃ宿題スレだもん
高度な人が出入りするわけない
600デフォルトの名無しさん:2014/01/04(土) 03:34:50.14
>>583
こういう問題はむしろ二個の玉の座標を単位時間毎に計算してそのプログラムをまず貼り、
描画の方は別の人が担当すればいいような気がする

玉の描画は問題の本質じゃないもん
601デフォルトの名無しさん:2014/01/04(土) 05:31:19.39
>但し,円の直径を質量として描画する
原文ママ?この辺なんとなく出題者も頭悪そうに見える
602デフォルトの名無しさん:2014/01/04(土) 07:16:03.54
適当に重さを決めて重かったら大きく描けという事か
60318:2014/01/04(土) 08:25:20.59
>>601
単なる誤記でしょ。

| 但し,円の質量を直径として描画する
604デフォルトの名無しさん:2014/01/04(土) 08:31:29.20
どっちにしろおかしいけどな
605デフォルトの名無しさん:2014/01/04(土) 09:15:30.86
馬鹿には無理
60618:2014/01/04(土) 09:16:23.69
>>604
ん?
なんかおかしいか?
607デフォルトの名無しさん:2014/01/04(土) 11:11:34.14
あ〜だこ〜だ、因縁つけて
結局はできねーんだろhw
608デフォルトの名無しさん:2014/01/04(土) 11:27:54.97
とっとと作れよオタク共 お前らこれしか能が無いんだから
609デフォルトの名無しさん:2014/01/04(土) 11:45:59.41
[1] 授業単元: プログラミング
[2] 問題文(含コード&amp;リンク):
宿題の丸投げをします。
http://www.dotup.org/uploda/www.dotup.org4784506.jpg.html
http://www.dotup.org/uploda/www.dotup.org4784512.jpg.html
[3] 環境
 [3.1] OS: Windows8
 [3.2] コンパイラ名とバージョン: VisualStudioPro2012
 [3.3] 言語: C
[4] 期限: ([2014年1月5日18:00まで]
[5] その他の制限: (関数まで習っております。)
610デフォルトの名無しさん:2014/01/04(土) 12:22:02.07
611デフォルトの名無しさん:2014/01/04(土) 12:48:03.18
これ大学名ばれたらやばくね
大学の名誉にかかわるよね
612デフォルトの名無しさん:2014/01/04(土) 12:50:18.74
この時期にこんな課題やってるのはF欄専門か工業高校だろ
高専レベルですらない
613デフォルトの名無しさん:2014/01/04(土) 13:18:54.27
>>611
教官がここで答えて、それと同じコードを提出してきた奴を落第にするというトラップはありですか?
614デフォルトの名無しさん:2014/01/04(土) 13:29:24.68
>>609
2つ目のやつはバツがついているやつができてるのか?
615デフォルトの名無しさん:2014/01/04(土) 13:30:14.96
後期で文系の一般教養ならこの時期この程度のレベルでも問題ない
616デフォルトの名無しさん:2014/01/04(土) 13:45:06.55
【問題】
Nクイーン問題を解くプログラムを作成せよ.
但し,Nクイーン問題とは,N行N列のマスの中に,N個のクイーンを,どのクイーンも互いに効きが当たらないように並べる問題である.但し,チェス盤の中で,クイーンは縦,横,斜めに関してどこまでも進むことができると仮定する.
617デフォルトの名無しさん:2014/01/04(土) 14:00:02.89
>>611
名誉?
618デフォルトの名無しさん:2014/01/04(土) 14:29:03.61
619デフォルトの名無しさん:2014/01/04(土) 14:43:58.00
2014の2014乗の下4桁を標準出力に表示せよ

制限
・インクルードはstdio.hのみ
・main実行開始から、出力間までの時間が1秒未満
・実行ファイルサイズ 50KB未満
620デフォルトの名無しさん:2014/01/04(土) 15:10:55.20
う 工学部卒だがわからん
621デフォルトの名無しさん:2014/01/04(土) 15:20:55.81
>>620
計算途中の数値は、下4桁で充分。
622デフォルトの名無しさん:2014/01/04(土) 15:43:05.91
>>604
質量の単位系との換算が出来ない件なら
最初から質量の単位をpxにすればいい。
623デフォルトの名無しさん:2014/01/04(土) 16:27:36.53
NQUEENを二次元でやる奴は底抜けの間抜け
624デフォルトの名無しさん:2014/01/04(土) 16:55:04.77
>>619
for(count=1,x=2014;count<=2014;count++,x=x%10000){
x = 2014 * x;
}
625618:2014/01/04(土) 16:57:48.76
>>623
当たり判定/利き判定こそ2次元だが、局面の記憶は1次元でやっている
当たり/利き判定も1次元か…ちょっと考えてみよう
626デフォルトの名無しさん:2014/01/04(土) 16:58:13.32

スレタイをよく読めよ
何言語だよ、それ?
627デフォルトの名無しさん:2014/01/04(土) 17:08:34.04
>>626
624ならC/C++のように見えるしコンパイルしてみても問題ないが。
「,」の使い方を知らなかったの?
628デフォルトの名無しさん:2014/01/04(土) 17:13:27.17
countとxが何者かわからない
629デフォルトの名無しさん:2014/01/04(土) 17:14:21.17
>>627
どこコンパイラだよw
630デフォルトの名無しさん:2014/01/04(土) 17:18:21.63
まさかとは思うが、主要部分だけを抜き出したものだって理解できないんだろうか

それより累乗がよくわかってないのが問題
631デフォルトの名無しさん:2014/01/04(土) 17:23:03.25
>>628
じゃあもう自力でやれば
632デフォルトの名無しさん:2014/01/04(土) 17:31:52.03
回答する側はいい加減でもいいんですねw
質問側はちょっとでもミスがあると、難癖つけるくせにわ
633デフォルトの名無しさん:2014/01/04(土) 17:34:09.97
当たり前、ここはオナニーのネタを仕入れるためのスレですから
634デフォルトの名無しさん:2014/01/04(土) 17:46:35.18
>>632
・全て自力でやるか
・ヒント貰ってそっから考えるか
前者でいいならここくるなよ
635デフォルトの名無しさん:2014/01/04(土) 17:56:51.86
>>619

#include <stdio.h>

int main(void)
{
int i, x;

x = 1;
for(i=0;i<2014;i++) {
x *= 2014;
x %= 10000;
}

fprintf(stdout, "2014 ** 2014 = %d (mod 10000)\n", x);

return 0;
}
636デフォルトの名無しさん:2014/01/04(土) 18:30:42.96
ほらみろQZが発狂した
637デフォルトの名無しさん:2014/01/04(土) 18:32:46.44
#include <stdio.h>
int main(void)
{
  int i, x, m[10000] = {0};
  for (i = x = 1; i <= 2014; i++) {
    x = (x * 2014) % 10000;
    if (m[x])
      i = 2014 - ((2014 - i) % (i - m[x]));
    m[x] = i;
  }
  printf("%d\n", x);
  return 0;
}
638デフォルトの名無しさん:2014/01/04(土) 19:01:40.74
>>636
C++スレでぼこぼこにされたからってここで晴らさなくても
639デフォルトの名無しさん:2014/01/04(土) 19:29:41.75
またオナニーコード晒してるよ
なんでこんなことするんかね
640デフォルトの名無しさん:2014/01/04(土) 19:38:49.60
>>639
もっといいコードをさらしてみなよ
641デフォルトの名無しさん:2014/01/04(土) 20:04:32.63
なかなか興味深いコードだ
642デフォルトの名無しさん:2014/01/04(土) 20:21:55.31
図星で発狂わかりやすいねー
しかも自演してるしw
643デフォルトの名無しさん:2014/01/04(土) 20:24:01.41
(同意見だなあ)
644デフォルトの名無しさん:2014/01/04(土) 21:16:09.65
誰も褒めてくれないから、自分で自分を褒めるしかないわけだな
アワレww
645デフォルトの名無しさん:2014/01/04(土) 21:20:40.15
他には誰も解答できていない件
646デフォルトの名無しさん:2014/01/04(土) 21:28:29.36
回答してないを回答出来ないと変換するQZ脳

普通の人間は公開オナニーを「しない」
647デフォルトの名無しさん:2014/01/04(土) 21:42:10.42
回答以外はスルーでw
648デフォルトの名無しさん:2014/01/04(土) 21:52:48.57
スルーできていない奴が何を言う
649デフォルトの名無しさん:2014/01/05(日) 04:39:33.36
650デフォルトの名無しさん:2014/01/05(日) 04:41:36.56
651デフォルトの名無しさん:2014/01/05(日) 04:52:36.55
>>646
http://toro.2ch.net/test/read.cgi/tech/1357191974/
には、公開オナニーと罵られるのを承知でコードを書き続ける者達が集っているようだね
652デフォルトの名無しさん:2014/01/05(日) 05:32:57.98
>>649
バカは無理すんなw
653デフォルトの名無しさん:2014/01/05(日) 06:04:57.99
ム板の質問スレをぶち壊す会
1 :デフォルトの名無しさん:2014/01/04(土) 02:38:02.18 この板はプログラムを作る人のための板です。

あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。

その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。

質問スレが充実してしまったおかげでム板全体が低能のたまり場になってしまった。
原点に立ち返りプログラム板をプログラムを作る人のための板に戻そう。


26 :停止しました。。。:停止真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
654デフォルトの名無しさん:2014/01/05(日) 08:16:19.12
>>653

>>1
>あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
自体が日本語になっていないし‥

馬鹿がたてたスレは当然スレストがかかって当然
655デフォルトの名無しさん:2014/01/05(日) 09:10:16.14
>>654
2ch全体については知らないが、
ム板は質問者のエネルギーで辛うじて生き永らえているということでしょう。
656デフォルトの名無しさん:2014/01/05(日) 21:43:05.15
荒らしてるつもりはないのかも知れないけど、下品だったりして、
読んでて面白くないからね。ツイッターに流れていくよ。
今や、ム板で活発なスレは10もないんしゃないか。どれもC/C++関係のスレね。
657デフォルトの名無しさん:2014/01/05(日) 22:13:26.48
ローカルルール↓

この板はプログラムを作る人のための板です。

あらゆる質問はまず”すれ立てるまでもない質問はここで”スレにしてください。

その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。

プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
658デフォルトの名無しさん:2014/01/05(日) 22:24:27.79
[1] 授業単元:シミュレーション

[2] 問題文(含コード&リンク):
>>583

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C++
[4] 期限: 2014/01/10 24:00まで
[5] その他の制限: 特に指定なし

再び同じ問題について質問です。
自分でも考えてみましたがどのように説明したらいいのかわかりません。
問題文については出題されたままですが
プログラムを作成していただける方で意味のわからないことがあれば教えてください。
>>603はご指摘のとおりだと思います。

http://viploader.net/ippan/src/vlippan327341.png
659デフォルトの名無しさん:2014/01/05(日) 22:44:54.19
これは大学卒業できない
660デフォルトの名無しさん:2014/01/05(日) 22:48:19.79
そんな難しいのはここの人たちではできないよ
661デフォルトの名無しさん:2014/01/05(日) 23:12:57.97
>>658
あのなあ・・・球の描画は後回しにして、0.01秒毎くらいに二つの球の座標をまず計算してみ?
それが出来れば後は簡単だから
662デフォルトの名無しさん:2014/01/05(日) 23:14:35.21
>>660
難しいというのは計算でしょうか?
衝突の計算とXY座標の表示の方法はわかっています。

今、悩んでいるのは

@円の大きさを質量を入力したボックスから取得した値で決定したものをどう表現するか?
pDC-<Eillpse(x0,y0,x1,y1);
x0,y0,x1,y1の座標を固定でなく表現すればいいとは思うのですが。

A@での円が描画できたとして、その位置が時間や速度に関係して場所が変化し
衝突後に反対向きに動いていく座標の変化を表すプログラムの表記方法。
>>658の参考画像にあげた考え方をどうプログラムにするか。

です。

説明能力不足で申し訳ないです。
http://viploader.net/ippan/src/vlippan327344.png
663片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/05(日) 23:32:46.15
中心点と半径を引数とする関数を作る。
664デフォルトの名無しさん:2014/01/06(月) 01:18:50.48
面積と質量が比例するとして K*pi*r^2=M
Kはマクロでとりあえず1.0にして後で調整
半径rを求める式 double r=sqrt(M/K/pi);

中心座標(物理)は変数 double x,y;
物理座標→ピクセル値変換 int pxl(double x) { return (int)(1.0*x+0.5); } 1.0は係数、後で調整
直径のピクセル値 int D = pxl(2.0*r);
左上の座標 int x0=pxl(x-r), y0=pxl(y-r);
右下の座標 int x1=x0+D, y1=y0+D;
円の描画 pDC->ellipse(x0,y0,x1,y1);
665デフォルトの名無しさん:2014/01/06(月) 01:24:51.17
なんか必死すぎる人がたくさんいて怖い
666デフォルトの名無しさん:2014/01/06(月) 09:45:37.58
あっそう
667デフォルトの名無しさん:2014/01/06(月) 11:13:41.96
おめーのことだよ
668デフォルトの名無しさん:2014/01/06(月) 14:16:38.18
>>583>>658
「表示画面の作成はできます。」
って部分が出題時点で与えられた環境に含まれてるようにしか見えないし、
> 問題文については出題されたまま
って大嘘だろ。
669デフォルトの名無しさん:2014/01/06(月) 18:41:12.06
まさかの自作自演オナニー回答だったか
670デフォルトの名無しさん:2014/01/06(月) 22:23:44.71
pDC-<Eillpse(x0,y0,x1,y1);
これが一番面白かった
671デフォルトの名無しさん:2014/01/07(火) 00:01:56.60
>>664
ありがとうございます。

>>670
なにが面白いのですか?
講義で習った通りの書き方ですが、大文字のEが面白いということでしょうか?
小文字が一般的なのですか?
こちら講義の内容だけが知識の全てなのでわかりにくい書き方でしたら申し訳ありません。
672デフォルトの名無しさん:2014/01/07(火) 00:40:39.41
-<
673デフォルトの名無しさん:2014/01/07(火) 01:03:27.05
>>672
なるほど、そこですか。
テキストからコピペだったのでただの打ちミスかと思います。
ご指摘ありがとうございました!
674デフォルトの名無しさん:2014/01/07(火) 01:11:58.74
教授「こいつには単位あげない」
675デフォルトの名無しさん:2014/01/07(火) 11:12:18.96
もっと複雑なロボティクスとNNの計算を解いたが、今ではただPHPが愛おしい
676デフォルトの名無しさん:2014/01/07(火) 11:21:07.04
ほとんど大体がPHPで書くことができ、残りのPHPで書けないものは書く必要がない。
677デフォルトの名無しさん:2014/01/07(火) 13:58:55.34
#include <stdio.h>

int main(void)
{
double a, b, c; char d;
printf("数字 演算子 数字 を入力してください。\n");
printf("例 12.4 * 4.0\n");
scanf("%lf %c %lf", &a,&d,&b);
//dの値により、加算、減算、乗算、除算を分岐して計算
printf("答えは %f です。\n");
return 0;
}

という課題が出たのですが
どのように分岐するのでしょうか?
678デフォルトの名無しさん:2014/01/07(火) 14:01:33.32
if (d == '+')
ans = a + b;
else if ...以下略
679デフォルトの名無しさん:2014/01/07(火) 14:03:38.72
double add(double a, double b){ return a + b;}
double min(double a, double b){ return a - b;}
double mal(double a, double b){ return a * b;}
double div(double a, double b){ return a / b;}

double (*func_tbl)(double a, double b)[] = {add, min, mal, div};

func_tbl[d];
680デフォルトの名無しさん:2014/01/07(火) 14:30:59.56
>>678 >>679
回答ありがとうございます
参考にしながらやってみたのですが
これであっているでしょうか?

#include <stdio.h>

int main(void)
{
double a, b, c; char d; float ans;
printf("数字 演算子 数字 を入力してください。\n");
printf("例 12.4 * 4.0\n");
scanf("%lf %c %lf", &a,&d,&b);
//dの値により、加算、減算、乗算、除算を分岐して計算;
if( d == '+') { ans = (a + b);
printf("答えは %f です。\n",ans);
} else if ( d == '-') { ans = ( a - b );
printf("答えは %f です。\n",ans );
} else if ( d == '*') { ans = ( a * b );
printf("答えは %f です。\n",ans );
} else if ( d == '/') { ans = ( a / b );
printf("答えは %f です。\n",ans );
}
return 0;
}
681デフォルトの名無しさん:2014/01/07(火) 14:50:19.89
#include <stdio.h>

int main(void)
{
double a, b, c; char d;
printf("数字 演算子 数字 を入力してください。\n");
printf("例 12.4 * 4.0 \n");
scanf("%lf %c %lf", &a, &d, &b);
//dの値により、加算、減算、乗算、除算を分岐して計算
if( d == '+') {
c = ( a + b );
printf("答えは %f です。\n",c);
} else if( d == '-') {
c = ( a - b );
printf("答えは %f です。\n",c);
} else if( d == '*') {
c = ( a * b );
printf("答えは %f です。\n",c);
} else if( d == '/') {
c = ( a / b );
printf("答えは %f です。\n",c);
}
return 0;
}

なんどもすいません
直してみました
682デフォルトの名無しさん:2014/01/07(火) 15:21:40.51
#include<stdio.h>
#include<limits.h>
double add(double a, double b){ return a + b; }
double mal(double a, double b){ return a * b; }
double minus(double a, double b){ return a - b; }
double div(double a, double b){ return a / b; }

int main()
{
char d = '*';
double val;
double (*func_tbl[CHAR_MAX])(double,double);//={add,mal,minus,div};
func_tbl['+']=add;
func_tbl['*']=mal;
func_tbl['-']=minus;
func_tbl['/']=div;
val = func_tbl['*'](6,9);
printf("6 %c 9 = %lf\n", d, val);
return 0;
}
683デフォルトの名無しさん:2014/01/07(火) 15:43:43.36
>>681
switch使ってみた

#include <stdio.h>
int main(void)
{
double a, b, c; char d;
printf("数字 演算子 数字 を入力してください。\n");
printf("例 12.4 * 4.0 \n");
scanf("%lf %c %lf", &amp;a, &amp;d, &amp;b);
//dの値により、加算、減算、乗算、除算を分岐して計算
switch (d) {
case '+': c = ( a + b ); break;
case '-': c = ( a - b ); break;
case '*': c = ( a * b ); break;
case '/': c = ( a / b ); break;
default : printf("演算子が不正\n"); return 0;
}
printf("答えは %f です。\n",c);
return 0;
}
684デフォルトの名無しさん:2014/01/07(火) 16:12:12.04
bが0の場合も入れてね
685デフォルトの名無しさん:2014/01/07(火) 16:17:51.53
686デフォルトの名無しさん:2014/01/07(火) 16:40:21.55
cでプログラミングの入門をするが実際はPHPで十分である
むしろ、PHPこそ今日における至高であり、それ以外は大学の怠慢なのだ
687デフォルトの名無しさん:2014/01/07(火) 16:59:35.04
PHPが可愛くて仕方がない。
688デフォルトの名無しさん:2014/01/07(火) 18:00:32.86
PHPマンセー
689デフォルトの名無しさん:2014/01/07(火) 18:08:03.78
malじゃなくてmulではないか
690デフォルトの名無しさん:2014/01/07(火) 18:57:33.34
PHPerだもの
       みつを
691デフォルトの名無しさん:2014/01/07(火) 19:00:44.73
PHPerたちの多くは、かつてはスーパーハカーと呼ばれている(皮肉を込めて)
692デフォルトの名無しさん:2014/01/07(火) 20:20:59.32
>>686
crypt動かんバージョンリリースしたりする言語だけどな。
693デフォルトの名無しさん:2014/01/07(火) 20:45:17.99
>>692
そういう時、自分でゴリゴリ書いているの?
694デフォルトの名無しさん:2014/01/07(火) 20:47:58.04
cryptなんてソース転がってるだろ
別言語のだったとしても書き換えればいいだけ
695デフォルトの名無しさん:2014/01/07(火) 21:49:39.64
PHPインタプリタは何で書かれてるの?
696696-1 ◆v.TAYcWkbs :2014/01/07(火) 22:07:18.39
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&amp;リンク): データファイル(rep_data.txt)には「学籍番号、科目A、科目B、科目Cの各点数」が
順に学籍番号順に並んでいる。そのデータファイルをもとにキーボードから入力された学籍番号の
学生の成績(含:3科目の合計点の順位)を表示するプログラムを作れ。
探索は二分探索法を使いソートにはクイックソートを使うこと。

表示は以下のようにすること。
Input A Student Number: 14【Enter】
Ranking : #269 /*最高得点は1位とせよ.*/
Subject A : 86
Subject B : 59.1
Subject C : 220.42
Total : 365.52
697696-2 ◆v.TAYcWkbs :2014/01/07(火) 22:10:32.60
【備考】
科目 A の得点は int 型,科目 B,C の得点は double 型で扱うこと.
合計点が同じになる学生はいないということは既知とせよ.
データの人数は 1000 人であることもわかっているとせよ.
学籍番号には抜けがある.学籍番号が存在しない場合は,”No data”と表示するようにせよ.
雛型 (121.c) を用いよ.main 関数は完成しているので,main 関数内で呼び出している関数を作成せよ.

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2014年01月09日21:00まで
698デフォルトの名無しさん:2014/01/07(火) 22:20:00.49
表示ってどこに表示すればいいのかしらん?
699692-3 ◆v.TAYcWkbs :2014/01/07(火) 22:21:32.68
データファイル、雛形ファイルはurl書き込めないので
>>2の一番上のアップローダ(C/C++の宿題片付けます アップローダ)に乗っけときました。(No.1319,No.1321)

長くなり連投してしまいましたがどちらさまかどうかお願いします...
700デフォルトの名無しさん:2014/01/07(火) 22:30:30.23
701 ◆v.TAYcWkbs :2014/01/07(火) 22:31:20.85
>>698
コンパイルしたときの表示結果がこうなるようにということです。
>>696で言えば
Input A Student Numberを14と入力した際は以下のような値になるということです
702デフォルトの名無しさん:2014/01/07(火) 22:32:02.26
703デフォルトの名無しさん:2014/01/07(火) 22:32:53.01
704デフォルトの名無しさん:2014/01/07(火) 22:34:13.03
705 ◆v.TAYcWkbs :2014/01/07(火) 22:47:00.27
答えてくれるのはありがたいんですがこれは関係あるんですかね...?
706デフォルトの名無しさん:2014/01/08(水) 00:02:16.49
>>699
のっけときましたじゃなくてurlくらい貼れば?
707デフォルトの名無しさん:2014/01/08(水) 06:19:53.70
>>693>>694
お前らPHPerならPHP5.3.7(2011年)の超有名バグぐらい知っとけ。
こんなんPHP触らん奴でもITニュース見てれば知ってるバグだぞ。
参考
http://it.slashdot.jp/story/11/08/24/0758215/ PHP 5.3.7に重大なバグ、strncatの罠にはまる
http://bakera.jp/ebi/topic/4507
708デフォルトの名無しさん:2014/01/08(水) 07:40:46.95
こんなバグはPHPだから発見された
709デフォルトの名無しさん:2014/01/08(水) 07:45:05.58
>>695
愛とperlの残りカス
710デフォルトの名無しさん:2014/01/08(水) 07:57:31.02
ideoneって表示するたびに実行してるの?
それとも初回の実行結果を2度目以降は表示してるだけ?
711デフォルトの名無しさん:2014/01/08(水) 09:04:07.65
>>710
投稿があった時に一度だけ実行して、
実行結果と出力をdbに保存してるよ
後は保存結果を表示するだけ
712デフォルトの名無しさん:2014/01/08(水) 09:37:04.72
http://ideone.com/ML6KLg
> Wed Jan 8 01:25:26 2014
713デフォルトの名無しさん:2014/01/08(水) 13:04:58.17
手も足も出ずに困ってます。
よろしくお願いします。

[1] 授業単元:数理学
[2] 問題文(含コード&リンク):
ナビエ-ストークス方程式から導かれるカオス的振舞を示す非線形方程式としてローレン
ツ方程式
dx/dt = -px + py
dy/dt = -xz + rx - y
dz/dt = xy - bz
がある(p; r; b は定数)。
p = 10; r = 28; b = 8=3 としローレンツ方程式のx; y; z を
オイラー法を用いて求めよ。
初期値をx(0) = 1:0; y(0) = 1:0; z(0) = 1:0、時間刻みをdt = 0:02 と
して、t = 0 からt = 40 まで解き(x; y; z) を図示しなさい。
余力のある人は、2 次のルンゲ・クッタ法や4 次の
ルンゲ・クッタ法を用いて同じ計算をし、プログラムとグラフを
レポートに含めて提出してください。なお、オイラー法を用いた計算と
ルンゲ・クッタ法を用いた計算の考察があると良い。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:どちらでも可
[4] 期限: 2014年1月14日18:00
[5] その他の制限: とくにありません
714デフォルトの名無しさん:2014/01/08(水) 13:42:35.80
自分で調べることも出来ないのか
715デフォルトの名無しさん:2014/01/08(水) 14:32:55.73
ルンゲクッタとオイラー法は、たしか精度が違う
手も足もでないって脳に腫瘍でもできてるのか?
716デフォルトの名無しさん:2014/01/08(水) 14:39:39.01
FILE *fp = fopen("foo.txt","w");
dxdt = -px + py; dydt = -xz + rx - y; dzdt = xy - bz;
dt=0.02;
for(t=0; t<=40; t++){
// eurler method
fprintf(fp, "%lf %lf %lf %lf\n", t, x, y, z);
}
fclose(fp);
717デフォルトの名無しさん:2014/01/08(水) 14:42:50.76
double t=0,dt=0.02;
while(t<=40){
t += dt;
}
718デフォルトの名無しさん:2014/01/08(水) 15:11:37.77
手も足も出ない奴がこれ見てもわからないと思うけど
719 ◆QZschizo.ptH :2014/01/08(水) 15:38:05.75
>>716-717
お前,微分積分をしらんのか?

>>713
俺が解いてやるからしばらく待て
720デフォルトの名無しさん:2014/01/08(水) 15:38:16.65
パソコンが苦手なもので。
どなたか教えて下さい。
721デフォルトの名無しさん:2014/01/08(水) 15:39:11.43
>>719
ありがとうございます。
どうかよろしくお願いします。
722デフォルトの名無しさん:2014/01/08(水) 16:14:58.61
>>719
知っているがバカの宿題を解いてやるために、
微積をわざわざ思い出すような時間を割きたくない
723デフォルトの名無しさん:2014/01/08(水) 16:20:44.95
>>719
716,717のベースがあって課題が解けないって
まともに演習を受けてたと思えないんだけど
724デフォルトの名無しさん:2014/01/08(水) 16:35:31.95
doulbe x, dx, ddx = 0.01, dt = 0.02;
while(t < t_max){
dx += ddx;
x += dx;
t += dt;
}
こんな感じ。QZがtemplateに再起を使って解いたら見直す。
725 ◆QZschizo.ptH :2014/01/08(水) 16:42:27.59
>>723
>>716-717 のどこがベースになってるんだ?

>>722
思い出さなきゃわからないのか?
726デフォルトの名無しさん:2014/01/08(水) 16:44:23.99
だって、この課題はループ中にオイラー法やルンゲクッタ法の数式を書き込むだけで済む
727デフォルトの名無しさん:2014/01/08(水) 16:46:03.98
こういう宿題を丸投げするバカに大卒の資格なんてやる必要がない
728デフォルトの名無しさん:2014/01/08(水) 17:25:49.43
激しく同意
729デフォルトの名無しさん:2014/01/08(水) 17:31:49.79
けどほら、フェラが上手けりゃ脳味噌なくても良いところへ就職できるよ
銀行とか、お絵かき教室とかね。
ノータリンでも脳味噌つかわないとろには就職してたし、
面接官ともフィーリングが合ってたよ。
730デフォルトの名無しさん:2014/01/08(水) 17:58:31.21
>>727
スレタイを声に出して読んでみ
731デフォルトの名無しさん:2014/01/08(水) 18:29:36.14
qzが作ったうんこ解答提出すれば単位取れないから心配すんな
732デフォルトの名無しさん:2014/01/08(水) 18:41:16.35
>>731
『具体的に解答のどこがうんこか指摘できないようでは』 云々
733デフォルトの名無しさん:2014/01/08(水) 19:59:13.09
>>707
crypt実装は何の関数も使わずにできるだろ
734デフォルトの名無しさん:2014/01/08(水) 20:00:37.94
>>730
F欄大生を片付けますって意味だろ
735デフォルトの名無しさん:2014/01/08(水) 20:54:38.82
for (t=0.0; t<=40.0; t+=dt) {
dx = (-p*x + p*y)*dt;
dy = (-x*z + r*x - y)*dt;
dz = (x*y - b*z)*dt;
x+=dx;
y+=dy;
z+=dz;
printf("%f\t%f\t%f\t%f\n", t,x,y,z);
}
736デフォルトの名無しさん:2014/01/09(木) 09:30:27.49
>>583
GUIは頑張ってね。
ttp://ideone.com/qu0xNi
737デフォルトの名無しさん:2014/01/09(木) 19:49:24.56
ハッシュについて
リストの後方から前方向へレコードをたどるのを
容易にするのはどんなレコードにすればいいでしょうか?
738 ◆QZschizo.ptH :2014/01/09(木) 20:36:29.60
>>737
ハッシュと切り離して考えるとして、リストを前からたぐったり後ろからなぞったりするんなら、両方向にポインタを張る「双方向リスト」がよさそうだ
739デフォルトの名無しさん:2014/01/09(木) 23:35:59.37
QZって、クズ野郎 の略だよな
740デフォルトの名無しさん:2014/01/09(木) 23:37:01.57
ハッシュって何と言われると答えられるが、
その用法については人によってバラバラって感じがするなぁ。
わしだけ?
741デフォルトの名無しさん:2014/01/10(金) 01:21:29.06
リストとハッシュって相性わるくね?
ハッシュも一意なやつと衝突可能なやつがあるから使い分けだと思うよ。
個人的には配列とハッシュは相性いいと思う。
ハッシュをインデックスにして初期の検索をしてそこから綿密に検索すれば多少オーダー下げれる。
742 ◆QZschizo.ptH :2014/01/10(金) 01:40:31.38
>>737 は、いわゆるハッシュテーブルをチェイン法で実現しようとしているのでは?
ただし単純なチェイン法ではなく、ひとつのチェインの中で入れ替えとかいろいろ細工がしたいのかと

私も小細工に手を染めたことがあるが、いまいちぱっとしなかった、というか「ハッシュ関数による計算量のΟ(1)化」という大義を見失ってしまった
743デフォルトの名無しさん:2014/01/10(金) 10:15:30.73
Qz86
744デフォルトの名無しさん:2014/01/10(金) 22:20:56.30
test
745 忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/12(日) 17:02:39.47
[2] キーボードから読み込む、実数の3乗を求めて表示するプログラム(floatを用いて)
[3] 環境
 [3.1] OS: Windows 7 Pro 64bit
 [3.2] Visual C++ 2010
 [3.3] 言語:C++
[4] 期限: できれば本日中に

[コメント]
まだ勉強を始めたばかりなのですが、実数で躓いています。
よろしくお願いします。
746デフォルトの名無しさん:2014/01/12(日) 17:12:28.11
キーボードから読み込むってよく見るけど何かおかしくない?
747デフォルトの名無しさん:2014/01/12(日) 17:59:27.41
int main(){
double a;
scanf("%lf", &a);
printf("%lf\n", a*a*a);
return 0;
}
748デフォルトの名無しさん:2014/01/12(日) 18:00:22.43
どこかから書式指定子の項目探せ
749デフォルトの名無しさん:2014/01/12(日) 18:38:38.38
>>747ダウト
750 ◆QZaw55cn4c :2014/01/12(日) 18:46:12.16
>>749
C99では後付でOKとなった<printf() の 書式指定子における "%lf"の存在
751デフォルトの名無しさん:2014/01/12(日) 18:59:16.29
>>750
C++は?
752デフォルトの名無しさん:2014/01/12(日) 19:02:28.21
>(floatを用いて)
753デフォルトの名無しさん:2014/01/12(日) 19:05:08.38
ほんとクズは問題よく読まねえな
754デフォルトの名無しさん:2014/01/12(日) 19:15:38.19
#include <iostream>
#include <iterator>
int main(){std::cout<<[](float x){return x*x*x;}(*std::istream_iterator<float>(std::cin));return 0;}
755デフォルトの名無しさん:2014/01/12(日) 22:55:05.90
[2] キーボードから読み込む、実数の3乗根を求めて表示するプログラム(floatを用いて)
[3] 環境
 [3.1] OS: Windows 7 Pro 64bit
 [3.2] Visual C++ 2010
 [3.3] 言語:C++
[4] 期限: できれば本日中に

[コメント]
まだ勉強を始めたばかりなのですが、実数で躓いています。
よろしくお願いします。
756デフォルトの名無しさん:2014/01/12(日) 23:20:27.38
>>754
これいいなww
757デフォルトの名無しさん:2014/01/13(月) 00:00:13.41
>>756
面白いし便利だけど、なんか古いC/C++とは違う思想があるんだなって感じるわ
JavaScriptとかでこんな書き方するけど、ラムダ式は言語をこう変えたりするのか・・・
758 忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/13(月) 00:24:49.66
>>754
ありがとうございます。
確かに動くんですけど、想像していたのとちょっと違いました。
多分色々とおかしいと思うんですけど、どこを直したらいいか教えてください。

#include <stdio.h>

int main()

{

float x = 0;

printf("%f=");
scanf_s("%f", &x);

printf("xの3乗 = %f*%f*%f\n");

return 0;
}
759デフォルトの名無しさん:2014/01/13(月) 00:38:54.78
>>758
//printf("%f=");
printf("x=");
scanf_s("%f", &x);

//printf("xの3乗 = %f*%f*%f\n");
printf("xの3乗 = %f\n",x*x*x);
760 忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/13(月) 00:49:17.88
>>759
助かりました。
%の意味を勘違いしていたことに気が付きました。
ありがとうございます。
761デフォルトの名無しさん:2014/01/13(月) 01:10:19.69
よかったな
762デフォルトの名無しさん:2014/01/13(月) 01:12:54.19
CならCって言えば?
763デフォルトの名無しさん:2014/01/13(月) 01:15:14.73
>>755
3乗根なら powf(x, 1.0f/3)
764 忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/13(月) 07:04:02.08
質問です。
このfor文をwhile文にする場合はどうしたらいいんでしょうか?

#include <stdio.h>
int main( void )

{
int i,j;
printf("叫びたい数を入力:");
scanf_s("%d", &j);
for (i = 0; i < j; i++)

{
printf("どんと来い");
}

printf("\n");

return 0;

}
765デフォルトの名無しさん:2014/01/13(月) 08:03:32.76
while (j-- > 0)
766 忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/13(月) 08:08:26.95
>>765
ありがとうございました。
767デフォルトの名無しさん:2014/01/13(月) 10:28:51.09
[1] 授業単元:応用プログラミング
[2] 問題文http://ideone.com/NFSCh2
 
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:c言語
[4] 期限:1月14日15時まで
768デフォルトの名無しさん:2014/01/13(月) 10:40:06.11
>>767
ふむり、QZ!!!!!出番ですよおおおおおおお!!!!
769デフォルトの名無しさん:2014/01/13(月) 12:42:38.01
>>767
こういう演習って偏差値いくらぐらいの大学なんだろう
770デフォルトの名無しさん:2014/01/13(月) 12:49:35.55
頼む、冬休みを目いっぱいエンジョイした俺の尻拭いのためにおまいらの力を貸してくれ!!!
771デフォルトの名無しさん:2014/01/13(月) 12:55:05.11
ひとつ良いことを教えてやるよ
大学のカリキュラムに合わせるようならIT業界へ進むな
772デフォルトの名無しさん:2014/01/13(月) 13:03:18.00
>>770
もう一回冬休みが来るっていうのもいいぞ
773デフォルトの名無しさん:2014/01/13(月) 13:15:51.24
プログラミングなんて勉強しなくても、フェラがうまけりゃ大丈夫だよ
774デフォルトの名無しさん:2014/01/13(月) 14:16:52.84
こういう演習にemacsやviを使わせないのは鬼畜なんだろうか
それとも、とりあえずコンパイルってのが悪癖なんだろうか
775デフォルトの名無しさん:2014/01/13(月) 16:27:37.39
>769
応用で不毛な事やっててbcc使わせてるあたりろくな情報系ではないけど簡単すぎないのが不思議
F欄ではなさそうだけどB以上では考え辛いし専門ならレベル低くてもカリキュラムはもう少し実用的だろうし
わからん
776デフォルトの名無しさん:2014/01/13(月) 17:01:46.84
C苦手だから面白いことできなかった
http://ideone.com/YDlXIq
777デフォルトの名無しさん:2014/01/13(月) 17:07:00.25
>>775
>専門ならレベル低くてもカリキュラムはもう少し実用的
それはどうか?
>>767 は基本的なソートを網羅しているから専門学科の初歩級だろうね、交換ソート、ていうのはバブルソートのことかな?
778デフォルトの名無しさん:2014/01/13(月) 17:07:54.96
>>775
偏差値50未満のE欄理系でも似たような課題でたぞ

>>776
もしかすると770みたいなアホが大手に入って君に命令するんだよ?
779デフォルトの名無しさん:2014/01/13(月) 17:21:49.27
Wikipedia enのバブルソートの表記がjaより何気に複雑
780デフォルトの名無しさん:2014/01/13(月) 18:00:25.70
>>777
網羅てwww仕事でこんなの書いたら干されるぞw
あと専門って専門学校のつもりだった
>>778
だからFではなくB以上でもない中途半端な辺だろうねって
絞れないの理由は課題の難易度設定と杜撰な授業環境がミスマッチな感じがしただけ
でも実は授業の板書コピペ課題だったとかならありうるか
778のいうE欄理系はコンパイラ何使ってた?
781デフォルトの名無しさん:2014/01/13(月) 18:56:12.61
>>780
うちはgcc
782 ◆QZaw55cn4c :2014/01/13(月) 18:57:32.91
>>780
>仕事でこんなの書いたら干されるぞ
いやいや、バブルソートは論外としても、選択ソートや挿入ソートはお仕事でも場面によってはありだと思うよ
たとえば、クイックソートでは要素数が十分に減ったら選択ソートや挿入ソートに切り替える、というのは必ずやる。
要素1とか2まで細かくに再帰するコストのほうが高いからね
783デフォルトの名無しさん:2014/01/13(月) 18:59:03.45
公開オナニーのオカズ提供してやったんだからさっさと発射しろ
784デフォルトの名無しさん:2014/01/13(月) 19:00:45.64
仕事でソート書くって、どんな場面なの?
脳味噌腐らせないために訓練だと思ってた
785デフォルトの名無しさん:2014/01/13(月) 19:01:40.02
>>784
リストのソートとかじゃない?
786デフォルトの名無しさん:2014/01/13(月) 19:06:50.34
アルゴリズム体操をやらないと、配列と添字すらイメージできなくなるんだ
787デフォルトの名無しさん:2014/01/13(月) 19:12:45.91
皆、プログラマに憧れてソートや二分木を毎日書いていたのに、
ある日、Javaやc++、Perlには、そういったライブラリは
既にあるって知って驚愕したよね?
そして、B欄以上の大学生どころか高校生ですらトップコーダーに
参加しているって知って絶望したよね?
788デフォルトの名無しさん:2014/01/13(月) 19:22:29.84
しない。
プログラマに憧れて「ソートや二分木を毎日書いていた」とか臭すぎる。
タイピング速度を競ったり、何分でテトリス書けただの、
自分ではプログラマの力量を示してるつもりで、
単に反復運動する習性を発表しただけのパターン。

いかにコードを書かないかのレベルに至ってない。
789デフォルトの名無しさん:2014/01/13(月) 19:27:03.56
痛いやつがいるな
790デフォルトの名無しさん:2014/01/13(月) 19:33:19.84
>>784
新人研修だな
791デフォルトの名無しさん:2014/01/13(月) 20:04:37.92
空手にしろ茶道にしろ反復横飛びにしろ反復して型を身に付けそこから自分自身の型を見つけだしやがて自分の道を歩んでいくんだ。
守・破・離だ。反復を否定したら破も離もないよ。
792デフォルトの名無しさん:2014/01/13(月) 21:21:06.92
プログラマは「申し訳ございません」と「土下座」の練習が大事だよ。
793デフォルトの名無しさん:2014/01/13(月) 21:37:40.73
>>788
手動かさないと書けるものも書けなくなるよ。
794デフォルトの名無しさん:2014/01/13(月) 21:46:07.53
>>788
何が楽しくてIT業界に入るの?
795デフォルトの名無しさん:2014/01/13(月) 22:01:04.60
せんせぇー!DAOやビジネスロジック書く人たちって、おやつに含まれますか?
796デフォルトの名無しさん:2014/01/13(月) 22:08:56.94
ねーよボケが
ふわっと仕様変更来た時に「できません」って言ってろ
そこで何故?って聞かれて説明できてかつ相手を納得させられるあなたは素晴らしい
797デフォルトの名無しさん:2014/01/13(月) 22:11:03.41
せんせぇー!DAOやビジネスロジック書く人たちって、技術者に含まれますか?
798デフォルトの名無しさん:2014/01/13(月) 22:31:37.95
よく聞く仕様変更って追加料金とれないの?
799デフォルトの名無しさん:2014/01/13(月) 23:11:19.10
A = 0
B = 0
C[2][4] ={'A','B','C','D'}
{'うんこ','ちんこ','カーチャン','たかし'}

for (i=0;i<5;i++) {
for (j=0;j<5;j++){
A += 1
}
if ( A % 2 == 0) {
B +=1
}
}
A = A % B


printf("答え:%c",&C[A][B])

友達から出題されました。
なんか、絶対コードが間違ってると思うのですが
正しいと言いはります。
訂正してもらえませんか。
800デフォルトの名無しさん:2014/01/14(火) 00:51:43.54
>>776
ありがとうございました!
801デフォルトの名無しさん:2014/01/14(火) 04:04:25.82
>>774
どっからエディタ縛りの話が出てきたんだ・・・?
802デフォルトの名無しさん:2014/01/14(火) 16:17:45.79
>>801
bccって、ボーランドとかFreeのIDEつかってそう
エディタのキーバインドすら身に付かない。糞の役にも立たない演習
803デフォルトの名無しさん:2014/01/14(火) 16:23:37.09
つかってそう
804デフォルトの名無しさん:2014/01/14(火) 17:31:08.41
Emacs も或る意味 Free の IDE でしょ
805デフォルトの名無しさん:2014/01/14(火) 18:42:41.20
日本だとBCPadって可能性も・・・
ていうか只の憶測だったのかよ
806デフォルトの名無しさん:2014/01/14(火) 19:20:57.69
>>805
俺もBCPadを使ってると予想したぞ
宿題コードの頭でbccなんて使ってるからな
Emacsやvi使うようなら、せめてcygwin入れるだろうし
807デフォルトの名無しさん:2014/01/14(火) 22:40:17.47
>>782
どの業界に生きてるのか知らないけどそれが本当ならその会社では働きたくない
808デフォルトの名無しさん:2014/01/14(火) 22:51:42.36
>>807
https://en.wikipedia.org/wiki/Quicksort

Optimizations
Two other important optimizations, also suggested by Sedgewick and widely used in practice are:
(略)
Use insertion sort, which has a smaller constant factor and is thus faster on small arrays,
for invocations on small arrays (i.e. where the length is less than a threshold k determined experimentally).
809デフォルトの名無しさん:2014/01/14(火) 23:33:21.27
そこ?
810デフォルトの名無しさん:2014/01/15(水) 01:43:05.11
まちがいなくここだね、knuth の例の教科書にも Sedgewick のアイディアだ、と書いてあったね
でも knuth はへんてこなアセンブラを強要するからなあ‥‥
811デフォルトの名無しさん:2014/01/15(水) 13:23:44.72
今使ってるstd::sortのソース見ると要素数32以下で挿入ソートになってる
812デフォルトの名無しさん:2014/01/15(水) 19:54:22.24
>>807
コテに影響されて正常な判断ができないようでは‥‥適性に乏しいと言わざるを得ない
第一そのコテは割れている
813デフォルトの名無しさん:2014/01/16(木) 02:10:54.78
選択ソートは何に使うの?
814デフォルトの名無しさん:2014/01/16(木) 21:23:03.21
[2]標準Cライブラリを使用せずにprintfを作成するという課題です。
  %c,%s,%d,%x,%X,%oなどに対応したのですが、%12dや%+dなどの実装の方法が分からないのでどなたかご助力お願いします。ソースコード中のprint_string,print_char,print_intなどはアセンブリ言語を用いてシスコールで実装しているものです。
http://ideone.com/XafXzm 
[3] 環境
 [3.1] OS:ubuntu
[3.2] mips-gcc
 [3.3] 言語:c言語
[4] 期限:1月21日まで
815デフォルトの名無しさん:2014/01/16(木) 21:29:44.09
switch内の'%'以下に条件分岐を増やすだけじゃなのか
816デフォルトの名無しさん:2014/01/16(木) 22:26:04.55
apt-file search printf.c
817デフォルトの名無しさん:2014/01/17(金) 00:51:17.96
>>815
そうなんですけどそのやり方が分からないのです
818デフォルトの名無しさん:2014/01/17(金) 00:52:55.25
>>817
apt-file search printf.c

だから、まんま答えが乗ってるじゃないか
819デフォルトの名無しさん:2014/01/17(金) 00:55:07.01
初期化指定子のパターン列挙してオートマトンでも書いたら?
820デフォルトの名無しさん:2014/01/17(金) 01:02:33.56
状態対の等価性判定木の使い道をようやく理解した。
821デフォルトの名無しさん:2014/01/17(金) 01:05:42.21
最近の学生やら新入社員は
コンパイラ演習的なものはやらされないのかな?
822デフォルトの名無しさん:2014/01/17(金) 01:09:31.02
母校のコンパイラ単位は座学だけ
823デフォルトの名無しさん:2014/01/17(金) 01:16:32.26
>>818
https://www.opensource.apple.com/source/shell_cmds/shell_cmds-170/printf/printf.c
printf.cってこれですよね?

>>821
自分は来年ですね
824デフォルトの名無しさん:2014/01/17(金) 01:26:12.97
良いことを教えてやる。
大学のカリキュラムに合わせてプログラミングを学ぶと、ろくな企業に就職できない
825デフォルトの名無しさん:2014/01/17(金) 01:31:43.20
>>824
統計はあるの?
826デフォルトの名無しさん:2014/01/17(金) 01:35:39.78
ありますね
827デフォルトの名無しさん:2014/01/17(金) 01:39:25.49
>>825
統計はないが証人ならいるぞ
はやいこと、どの業界へ進むか決めたもん勝ち
828デフォルトの名無しさん:2014/01/17(金) 01:43:14.50
>>827
従軍慰安婦じゃないんだからさぁw
客観的に評価できる形で頼みます
829デフォルトの名無しさん:2014/01/17(金) 04:14:12.37
いや、カリキュラムの通りやればいいよ
ぶっちゃけるとカリキュラムの範囲以外はほとんど実務だと役に立たない
やっぱり情報業界はまだ未熟だから現場を直接参考にしてるんだよね
だから基本的に教えられたことやるだけでいいぞ、応援してる
830デフォルトの名無しさん:2014/01/17(金) 05:09:42.61
でかい釣り針
831デフォルトの名無しさん:2014/01/17(金) 12:32:16.93
>>829
こういうホワイトカラーな職場って数が少なくって、
中の人たちも反骨精神がないから市場から淘汰されていく姿が目に浮かぶ
832デフォルトの名無しさん:2014/01/18(土) 12:19:08.74
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 1/21

課題の量が多いのやってくださった方に5000円報酬として差し上げようと思っています
ネットワークについての課題です
興味ある方はメールください
833デフォルトの名無しさん:2014/01/18(土) 12:29:19.10
834デフォルトの名無しさん:2014/01/18(土) 14:43:52.59
>>832
仕事としてなら全然足りない
835デフォルトの名無しさん:2014/01/18(土) 14:46:35.21
最低でも50,000,000円だな
836デフォルトの名無しさん:2014/01/18(土) 14:51:21.44
これは新手の業者スパム
837デフォルトの名無しさん:2014/01/19(日) 10:58:03.43
[2] 配列の大きさ6で、それを超えると受け取れないようにする。また負の数を入力した場合、入力処理を中断する。
[3] 環境
 [3.1] OS: Windows 7 Pro 64bit
 [3.2] Visual C++ 2013
 [3.3] 言語:C
[4] 期限: 明日

[コメント]
ここに



#include <stdio.h>
int main()
{
int a, b[6];
for(a = 0 ; a < 6 ; a++)
{
printf("整数を入力:= ");
scanf_s("%d", &b[ia);
}


/* 表示 */
for(a = 0; a < 6 ; i++)
printf("%d\n", b[i]);

}
838837:2014/01/19(日) 11:02:50.31
>>837です
途中で送信してしまいました。

[2] 配列の大きさ6で、それを超えると受け取れないようにする。また負の数を入力した場合、入力処理を中断する。
[3] 環境
 [3.1] OS: Windows 7 Pro 64bit
 [3.2] Visual C++ 2013
 [3.3] 言語:C
[4] 期限: 明日

[コメント]
ここまではできたんですが,負の数で中断させる方法がうまくいきません。
breakを使うんではないか、とは思いますがどこにどのように入れていいのかがよくわかりません。
よろしくお願いします。


#include <stdio.h>
int main()
{
int a, b[6];
for(a = 0 ; a < 6 ; a++)
{
printf("整数を入力:= ");
scanf_s("%d", &b[a]);
}


/* 表示 */
for(a = 0; a < 6 ; i++)
printf("%d\n", b[i]);

}
839デフォルトの名無しさん:2014/01/19(日) 11:14:20.19
>>838

for (a = 0 ; a < 6 ; a++)
{
printf("整数を入力:= ");
scanf_s("%d", &b[a]);
if (b[a] < 0) return 0;
}
840デフォルトの名無しさん:2014/01/19(日) 12:08:56.39
>>839
ありがとうございました。
ifを使えばいいんですね。
もう少し勉強してみます。
841デフォルトの名無しさん:2014/01/19(日) 23:33:26.65
[1] 授業単元:応用プログラミング
[2] 問題文 http://ideone.com/W68lkj
 [3.1] OS:Windows
 [3.3] 言語:c言語
[4] 期限:1月24日15時まで
よろしくお願いします。
842 ◆QZaw55cn4c :2014/01/20(月) 06:29:27.86
>>841
>シェル・クイック・マージ・ヒープのソートの実装をせよ。

なんかお題さえ並べればそれだけで課題になるとか、猿でもできる出題だ
そういう課題はバブルソート、選択ソート、挿入ソートで十分だし、実用に供される場合もあると先週書いたのだがねえ
ひとつだけやるなら、クイックソートで十分、次点はヒープ(こいつのデータ構造はほかにも使える)かマージ(外部ソート用途)か
シェルソートなんか知らなくていいくらいだ

いったいどこの学校?教員は誰?
843デフォルトの名無しさん:2014/01/20(月) 06:34:54.03
>>842
黙れさっさと宿題やれ、それがお前の仕事だろうが。
関係ないことに口挟むな。粛々と宿題しろ。
844デフォルトの名無しさん:2014/01/20(月) 06:51:35.58
ソート実装しろとか死ぬほど懐かしいw

俺は全部バブルソートのソースコードで提出したな
学校がインターネット回線なくて、
夏休みの宿題を家に持ってかえるのも嫌だったから、仕方が無かったんだ・・・
845デフォルトの名無しさん:2014/01/20(月) 09:19:14.77
wikiにソート書いた気がしたけど、その中だとマージしか書いてなかった
そのうちクイックくらいは追加しとかないとな、定番だし
846デフォルトの名無しさん:2014/01/20(月) 09:28:53.38
[2] 配布されるdatの1000個の数字をクイックソートせよ
但しデータの入出力部分以外は、for文while文if文のみで書く

[3] 環境
 [3.1] OS: Windows 8 64bit
 [3.2] Visual Stdudio 2012
 [3.3] 言語:C

[4]明日迄には終わらせたい
847デフォルトの名無しさん:2014/01/20(月) 10:37:41.05
ハローワールドの文字列にたいして
置き換え前の文字を探索し入力した文字に変換するソースです
空所補充お願いします
http://f.xup.cc/xup3odydntv.jpg
848デフォルトの名無しさん:2014/01/20(月) 10:40:28.46
関数呼び出しも不可か, それは難易度高いな
849デフォルトの名無しさん:2014/01/20(月) 22:54:26.32
>>842
バカかお前。お前が先週なにを書いたのだろうと宿題出されることに変わりはないんだよ。
出題にケチつけても宿題がなくなるわけじゃないんだからさっさとやれよ。
何のためにコテハンつけてのさばってやがんだよ。やる気ないんだったらコテ外せ。
学校と教師の名前聞いても宿題を提出したことになるわけじゃないだろうが。
聞くだけ無駄だってわからないもんかねえ。アスペすぎだろお前。
850デフォルトの名無しさん:2014/01/20(月) 22:58:34.88
846ですがさっぱりです…どうすればいいでしょうか?
851デフォルトの名無しさん:2014/01/20(月) 23:02:41.60
>>846
typedef int value_type; /* ソートするキーの型 */

value_type med3(value_type x, value_type y, value_type z)
/* x, y, z の中間値を返す */
{
if (x < y)
if (y < z) return y; else if (z < x) return x; else return z; else
if (z < y) return y; else if (x < z) return x; else return z;
}

void quicksort(value_type a[], int left, int right)
/* クイックソート
* a : ソートする配列
* left : ソートするデータの開始位置
* right : ソートするデータの終了位置
*/
{
if (left < right) {
int i = left, j = right;
value_type tmp, pivot = med3(a[i], a[i + (j - i) / 2], a[j]); /* (i+j)/2ではオーバーフローしてしまう */
while (1) { /* a[] を pivot 以上と以下の集まりに分割する */
while (a[i] < pivot) i++; /* a[i] >= pivot となる位置を検索 */
while (pivot < a[j]) j--; /* a[j] <= pivot となる位置を検索 */
if (i >= j) break;
tmp = a[i]; a[i] = a[j]; a[j] = tmp; /* a[i],a[j] を交換 */
i++; j--;
}
quicksort(a, left, i - 1); /* 分割した左を再帰的にソート */
quicksort(a, j + 1, right); /* 分割した右を再帰的にソート */
}
}
852デフォルトの名無しさん:2014/01/20(月) 23:30:18.03
おまえら大学生や高専生ならWikipedia本家の記事ぐらいスラスラと読め
ソートなら擬似コードが載ってるだろ
853デフォルトの名無しさん:2014/01/20(月) 23:35:21.01
>>852
黙れ高卒w 嫉妬してんじゃねえぞおらw
854デフォルトの名無しさん:2014/01/20(月) 23:36:42.05
本物の大学生はこんなくだらねえ宿題なんてやってる暇ねえんだよw
お前らがやれww
855デフォルトの名無しさん:2014/01/20(月) 23:40:34.18
>>853
情報システム科の修士までとったぞ
おまえなんかIT業界へ行っても、3ヶ月以内に辞める腰抜け
856デフォルトの名無しさん:2014/01/20(月) 23:50:09.36
Apache HttpdにしろRFCにしろ、ドキュメントは
原文のまま読む方がはやいって後になって理解するんだよ
もっとも公務員志望のチキンだろうけど
857デフォルトの名無しさん:2014/01/21(火) 00:17:09.19
沸騰水型原子炉の加圧水型原子炉に対する優位性はどこにあるのでしょうか?
沸騰水方原子炉における主蒸気隔離弁の重要性はどのように位置付けられるのでしょうか?
主蒸気隔離弁の破断をどのように評価すればいいのでしょうか?

以上、詳細をご存知の方は何卒ご教示いただきたく伏してお願いいたします
858デフォルトの名無しさん:2014/01/21(火) 00:18:53.20
アーイキソ
859デフォルトの名無しさん:2014/01/21(火) 00:24:14.37
原子力関連の学科って就職あるの?
860デフォルトの名無しさん:2014/01/21(火) 00:30:18.40
ググるだけ、いくらでも資料でてくるのに、
他にレポートがあるってPRするあたり本当に地頭の悪いボンクラ学生なんだろうな
861デフォルトの名無しさん:2014/01/21(火) 01:49:35.36
ポッチャマ…
862デフォルトの名無しさん:2014/01/21(火) 04:11:30.70
ところで、
>>848
の感想はどこに反映されているのかな。
863デフォルトの名無しさん:2014/01/21(火) 05:09:02.83
>>862
>>848はただのバカだろ。無視するのが一番だ。
読点を見ろ、どう見ても高卒丸出しだ。
864デフォルトの名無しさん:2014/01/21(火) 11:24:47.07
>>851
大変詳しくありがとございます
ただ、qsort使っちゃダメなんですよ…図書館で調べてもそんなソースコード見つからなくて…可能なんでしょうか
865デフォルトの名無しさん:2014/01/21(火) 11:38:32.67
どこにqsort使ってるのかわからない
866デフォルトの名無しさん:2014/01/21(火) 12:34:36.92
はい!新宿調教センターです!
867デフォルトの名無しさん:2014/01/21(火) 13:09:22.83
>>863
しかし、課題がqsortで「for文while文if文のみで書く」ということだと、
再帰不可という意味に取るのが普通だろう。
868デフォルトの名無しさん:2014/01/21(火) 13:50:46.69
[2] 入力した5文字までの文字列を5個まで格納して表示する。
5個未満で中断するときはEnterで入力し,5個入力後かEnter入力後に、入力したすべての文字列を表示。
[3] 環境
 [3.1] OS: Windows 7 64bit
 [3.2] Visual C++ 2013
 [3.3] 言語:C
[4] 期限: できれば今日中
お力を貸してください。

表示例
1回目:5文字以内で入力
Apple ← キーボード入力したもの
2回目: 5文字以内で入力
Rice ← キーボードで入力したもの

1回目
APPLE ← 結果
2回目
Rice ← 結果
869デフォルトの名無しさん:2014/01/21(火) 14:41:20.22
>>868
5.times.inject [] do | a |
  (a<<gets.chomp[0..5]).last.empty? ? (break a[0..-2]) : a
end.display

>gets_test.rb
r
t
rer
["r", "t", "rer"]
>gets_test.rb
ferrfwefreurfthyuehft
ftwrfrfirefhrfr
erftwrefrwifnhiernfher
dfdfdddjnvjdknvjdvd
dfjdfjdfidjdfjdfdsineogmi
["ferrfw", "ftwrfr", "erftwr", "dfdfdd", "dfjdfj"]
870デフォルトの名無しさん:2014/01/21(火) 17:03:54.82
>>868
・6文字以上の入力はどうするか
871デフォルトの名無しさん:2014/01/21(火) 18:41:55.33
>>869
やっていただいたのにすいません。
みたことがない関数ばかりです。
ちなみに今勉強している部分は配列とかポインタ、ソートの部分です。

>>870
特に指示はなかったのですが、「5文字以内で入力してください」と表示しようと思っています。
872デフォルトの名無しさん:2014/01/21(火) 18:51:17.42
>>871
今までの課題で入力された値の受け取りは何でやってた?
scanf ?
gets ?
873デフォルトの名無しさん:2014/01/21(火) 18:52:03.40
>>868
#include "stdafx.h"
#include <conio.h>
#include <string>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
std::string str;
for (int i=0; i<5; i++) {
char c = (char)getch();
if (c=='\r')
break;
str += c;
}
std::cout << str << std::endl;
return 0;
}
874デフォルトの名無しさん:2014/01/21(火) 19:06:51.37
>>872
scanfです。
getsは使ったことありません。
875デフォルトの名無しさん:2014/01/21(火) 19:10:40.02
>>874
strlenは使った事ある?
876デフォルトの名無しさん:2014/01/21(火) 19:14:16.77
>>875
あります。
strcpyとかも最近やりました。
877デフォルトの名無しさん:2014/01/21(火) 19:16:23.22
>>876
途中までやったの載せたらそれを編集してみるよ
878デフォルトの名無しさん:2014/01/21(火) 19:35:21.41
char buf[5+1];
fgets(buf, sizeof(buf), stdin);
printf("%s\n", buf);
879デフォルトの名無しさん:2014/01/21(火) 19:54:50.47
#include <string.h>
#include <conio.h>
#include <stdio.h>

const int MAX_CHAR_NUM = 5;

int main(void)
{
char s[MAX_CHAR_NUM+1], c;
int i;

memset(s, 0, sizeof(s));

for (i=0; i<MAX_CHAR_NUM; i++) {
c = (char)getch();
if (c == '\r')
break;
s[i] = c;
}

fprintf(stdout, "%s\r\n", s);

return 0;
}
880デフォルトの名無しさん:2014/01/21(火) 19:57:16.40
>>877
10%もできていませんけどこれでもよければ

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

int main(void)

{
int array[5][5],i;

/* 文字の入力 */
for(i = 0 ; i < 5 ; i++)
{
printf("%d回目:5文字以内で入力: = ",i+1);
scanf_s("%s", &array[i]);


}
881デフォルトの名無しさん:2014/01/21(火) 21:29:09.02
>>864
qsort使っちゃダメってどういうこと?
再帰がダメってこと?
882デフォルトの名無しさん:2014/01/21(火) 23:16:30.34
>>881
そうです。
関数呼び出しも再帰も無しでってことです。
ほんとに初心者で無知を晒してすいません…
883デフォルトの名無しさん:2014/01/21(火) 23:23:51.59
>>857
>沸騰水型原子炉の加圧水型原子炉に対する優位性はどこにあるのでしょうか?
沸騰水型原子炉は、減速材として封入している原子炉格納容器内の軽水を直接加熱、それを蒸気として原子炉格納容器外に引き出しタービンをまわすものです。
放射能を十分に帯びた減速材が一次冷却材を兼ねており、減速材でタービンを回す点が利点にも欠点にもなります。
すなわち効率上昇、仕組みが単純なため建設費が安くすむ一方、設備への放射能汚染が高くなり日常の保守作業における被爆量が高くなる欠点があります。

>沸騰水方原子炉における主蒸気隔離弁の重要性はどのように位置付けられるのでしょうか?
原子炉格納容器からの蒸気流量を調整する役割を担っています。
原子炉緊急停止(原子炉スクラム)の際は、炉内に制御棒を挿入すると同時に主蒸気隔離弁が放射能の濃厚な蒸気を遮断する一連のシーケンスを構成しています。

>主蒸気隔離弁の破断をどのように評価すればいいのでしょうか?
主蒸気隔離弁は、原子炉緊急停止時の安全を保障する装置群の一環でありいかなる場合であっても破断は許されません。
今回破断した炉について安全強度が不足していることを示唆する事例といえます。

なお、日本全国の沸騰水型原子炉すべてについて原子炉緊急停止に必要な強度が不足している懸念を示す解釈も可能です。
884デフォルトの名無しさん:2014/01/21(火) 23:31:09.60
>>873
コピペしてみましたが動きません
885デフォルトの名無しさん:2014/01/22(水) 04:27:26.30
夜分遅くに申し訳ございません…
本日9時提出の課題を今になって気づいたのですが、私の頭ではさっぱりわからないのでお助け下さい…

[1]プログラミングC
[2] 問題文(含コード&リンク):
問1:以下の実行結果に示すような、3つの実数を入力した後、最大値と最小値の差を求めるプログラムを作成せよ。
※例
3つの整数を入力してください。
na=12
nb=65
nc=44
65と12の差は53です。

問2:以下の文字列(programming_jissyu)が配列に格納されているとする。
この文字列を任意の位置で2つ分割して表示するプログラムを作成せよ。
※例
難文字目で分割しますか:11
文字列の前半
programming
文字列の後半
_jissyu
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語: C
[4] 期限:本日9時

引き続き自分でも挑んでみますが、お時間がある方がいらっしゃいましたらどうかお力添えお願いします。
886デフォルトの名無しさん:2014/01/22(水) 04:30:11.61
すみません、age忘れました
887デフォルトの名無しさん:2014/01/22(水) 05:22:07.12
>>885
問1 問題では実数となっているのに実例では整数となっています。
888デフォルトの名無しさん:2014/01/22(水) 05:25:18.40
>>887
すみません、誤植のようなので整数で入力した場合のプログラムでお願いします!
889デフォルトの名無しさん:2014/01/22(水) 06:02:35.45
#define ___
#include <stdio.h>
int main(){
___ int na,nb,nc,max,min;
___ printf("3つの整数を入力してください。\n");
___ printf("na=");if(scanf("%d",&na)!=1){printf("入力が間違っています\n");return 0;}
___ printf("nb=");if(scanf("%d",&nb)!=1){printf("入力が間違っています\n");return 0;}
___ printf("nc=");if(scanf("%d",&nc)!=1){printf("入力が間違っています\n");return 0;}
___ max=na;
___ if(max<nb)max=nb;
___ if(max<nc)max=nc;
___ min=na;
___ if(min>nb)min=nb;
___ if(min>nc)min=nc;
___ printf("%dと%dの差は%dです。\n",max,min,max-min);
___ return 0;
}
890デフォルトの名無しさん:2014/01/22(水) 06:09:50.91
#define ___
#include <stdio.h>
int main(){
___ int pos,idx;
___ char str[]="programming_jissyu";
___ printf("難文字目で分割しますか:");
___ if(scanf("%d",&pos)!=1){printf("入力が間違っています\n");return 0;}
___ printf("文字列の前半\n");
___ for(idx=0;idx<pos&&str[idx];idx++){
___ ___ putchar(str[idx]);
___ }
___ printf("\n");
___ printf("文字列の後半\n");
___ for(idx=pos;str[idx];idx++){
___ ___ putchar(str[idx]);
___ }
___ printf("\n");
___ return 0;
}
891デフォルトの名無しさん:2014/01/22(水) 06:20:42.90
>>889
>>890
ありがとうございます!無事起動出来ました!!
深夜帯の投稿だったので半分諦めていましたが、こんな時間にも関わらず即作成して頂け本当に感謝しています。
次回また投稿させて頂くような事があった場合にはなるべく余裕を持って行います。本当にありがとうございました。
892デフォルトの名無しさん:2014/01/22(水) 06:22:11.41
丸写しバレて落第とかアホなことにはなるなよー
893デフォルトの名無しさん:2014/01/22(水) 07:33:23.76
>>880
自分でこれ組み合わせてやって

-----入力が6文字以上
if(5 < strlen(array[i])) {
}

-----Enter入力の判定
if(array[i][0] == '\0') {
}

-----表示
printf("%s\n", array[i]);
894デフォルトの名無しさん:2014/01/22(水) 09:32:58.66
>>893
ありがとうございます。
[入力が6文字以上]のarray[i]の部分がエラーを吐きます。
原因は何でしょうか?
895デフォルトの名無しさん:2014/01/22(水) 11:02:27.66
>>894
エラーメッセージを見てみて
896デフォルトの名無しさん:2014/01/22(水) 11:13:22.43
バレない改ざんの技術向上は今の日本において喫緊の課題
897デフォルトの名無しさん:2014/01/22(水) 11:31:55.84
周辺に存在する bluetooth low energy の電波一覧を取得するサンプルがほしい
898デフォルトの名無しさん:2014/01/22(水) 15:14:14.58
ゴミ
899デフォルトの名無しさん:2014/01/22(水) 18:14:11.10
公務員試験対策しろ
900デフォルトの名無しさん:2014/01/23(木) 22:36:09.98
[2]
imgur.com/eUDas7F(問題文)
ideone.com/bL70VV(深さ優先探索)
ideone.com/qWnTEr(ライフゲーム)
[3.1]Windows7
[3.3] Cのみ
[4] 2014年1月31日23:59分まで
できれば、解説をコメントアウトで打ち込んでいただけると助かります。どなたかよろしくお願いします。
901デフォルトの名無しさん:2014/01/24(金) 11:18:31.29
[2] 要素の数が10の配列に2から始まる倍数を逆順に表示せよ
[3] 環境
 [3.1] OS:Windows 7
 [3.3] 言語: C
[4] 期限:できればはやめに

自分なりにやってみましたが,まちがっているところがわかりません。
よろしくお願いします。

int main(void)

{
int array[11];
int x = 2;
int i;

// 10乗までを順番に計算
for (i = 0; i <= 10; ++i) {
array[ i ] = x;
x *= 2;
}

// 逆順
for ( i = 10; i >=0; --i)[
printf("%d\n",array[ i ]);
]

return 0;
}
902デフォルトの名無しさん:2014/01/24(金) 12:17:08.50
>>901
実際にどんな結果になってて
求める結果はどんな物なのか追記して
903デフォルトの名無しさん:2014/01/24(金) 12:23:11.22
>>902
結果というより、下記のエラーで表示が出来ない状態です

(31)error C2337: 'printf' : 属性が見つかりません。
(31): error C2143: 構文エラー : ']' が ';' の前にありません。
(33): error C2143: 構文エラー : ';' が ']' の前にありません。
904デフォルトの名無しさん:2014/01/24(金) 12:25:38.29
>>902
解決できました。
かっこの間違えでした。
お騒がせしました。
905デフォルトの名無しさん:2014/01/24(金) 12:25:38.80
ヒント #include
906デフォルトの名無しさん:2014/01/24(金) 16:27:48.70
>>904
2の10乗は1024な
907デフォルトの名無しさん:2014/01/25(土) 18:34:51.56
908デフォルトの名無しさん:2014/01/25(土) 19:44:20.55
>>901
# ruby2.1.0p0

p [2].cycle.take(20).map.with_index{|m,i|m**i}
p [2].cycle.take(20).map.with_index{|m,i|m**i}.reverse
# => [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288]
# => [524288, 262144, 131072, 65536, 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1]
909デフォルトの名無しさん:2014/01/25(土) 21:07:17.16
@、Aの使い分けについてどのような場合があるか教えてください
http://ideone.com/t7N7GX
910デフォルトの名無しさん:2014/01/25(土) 22:03:10.98
なんで未だに継承とか使うわけ?
継承はゴミ

ミックスインとトレイトへ移行しろ
911デフォルトの名無しさん:2014/01/26(日) 00:40:29.79
>>909
仮想メンバ関数(virtual)は、「その」クラス(A2)のポインタ型(A2*)に
派生クラス(B2)のポインタ(B2*)を入れて「A2*型」の仮想メンバ関数実行したとき、
A2の関数ではなく、代入したクラスのB2のメンバ関数が実行されるようにする機能です。

使い分けとしては、上記のような機能が必要なとき(派生クラスのポインタを入れるとき)に
限ってvirtualを使います。これをポリモーフィズムと言ったりします。

ポリモーフィズムでない場合とは、クラスA1に機能を追加して派生した
クラスB1のようなクラス構成の場合です。
この場合は、同じ名前のメソッドでも、それぞれクラスA1専用のもの、
クラスB1専用のものと分かれているため、別の処理をすることになります。

仮想関数は通常のメンバ関数の呼び出しとは異なり、コストが大きいので意味もなく
使わない方がいいです。
また、ポリモーフィズムでない機能の継承は使うべきである場面が限られていますので、
どうしても継承が必要な場合はA4レポート1枚くらいに理由をまとめた方がいいです。
912デフォルトの名無しさん:2014/01/26(日) 02:40:46.59
降って湧いた風疹の流行も、倫理問題どこ吹く風の出生前検査解禁も、絶賛放出中というか止め方がいまだにわからない現実ならば非常に理解できる
913デフォルトの名無しさん:2014/01/26(日) 15:49:03.98
>>910
>ミックスインとトレイト
調べてみます

>>911
わかりやすい説明ありがとうございました。
プログラミングする際、意識して気をつけたいと思います。
914デフォルトの名無しさん:2014/01/26(日) 17:43:19.74
>>900
とりあえず探索の方作った解説は書いてないのでわからんことあったら聞いてくれ
ideone.com/5e1eRL
915デフォルトの名無しさん:2014/01/26(日) 21:47:29.29
すみません、私頭悪いので教えてください。
テキストで独学でC言語を勉強している者ですが、Visual C++で組んだプログラムをコマンドプロンプトで動作させるにはどうしたら良いのですか?
916デフォルトの名無しさん:2014/01/26(日) 21:51:12.76
>>915
コンソールアプリケーションでCtrl+F5で走らせてるけど
917デフォルトの名無しさん:2014/01/26(日) 22:11:17.65
[1] 授業単元:応プログラミング
[2] 問題文 http://ideone.com/a59S8S
 [3.1] OS:Windows
 [3.3] 言語:c言語
[4] 期限:1月28日
お願いします。
918デフォルトの名無しさん:2014/01/26(日) 22:11:20.10
>>916

それか、Sample3 Sampleb.txt 【Enter】

としかかかれいません。
919デフォルトの名無しさん:2014/01/26(日) 22:52:05.14
コマンドライン引数にオプションで入れておけばいい
使うテキストも全部プロジェクトの一部にしてしまえば楽
920デフォルトの名無しさん:2014/01/26(日) 23:42:28.71
>>919
どうやってやるんですか?
921デフォルトの名無しさん:2014/01/26(日) 23:55:56.40
>>920
尻大海?
922デフォルトの名無しさん:2014/01/27(月) 02:00:10.46
>>915
ビルドするとプロジェクト直下にDebugかReleaseというフォルダができるから、コマンドプロンプトでそこまで辿り着いて実行。
923デフォルトの名無しさん:2014/01/27(月) 02:04:49.42
で、相対パス指定のリソースが見つからね
っとなるんですよね
924デフォルトの名無しさん:2014/01/27(月) 04:50:12.58
多分、プロジェクトフォルダ以外にソースコード置いちゃってるんだと思うけど

まずコンソールプロジェクトを新規で作るだろ
左にSorceとかソースコードとかいう名前のフォルダアイコンみたいのあるだろ
そこのSorceのところ右クリックして、新規ソースコード作成みたいな事やって
そこに書いてコンパイル

煽り抜きで、
この程度が自己解決できないのは、先行きくらいからCとかC++やんないほうが良いよ
925デフォルトの名無しさん:2014/01/27(月) 05:07:46.58
というか正直、コンソールアプリを今時デバッグ以外で実行する必要性はあるのか?
基本的に書き捨てるものなんだからさっさと動作確認して次に行くべきだと思うが……
そもそもコンソールアプリの延長線上にGUIアプリやゲームアプリは存在しないから、コンソールアプリ自体をさっさと見限ったほうがいいよ。
926デフォルトの名無しさん:2014/01/27(月) 05:39:20.54
簡単な実用プログラムはコンソールで作ることも多いけどな・・・
レガシーなゲームはコンソールベースで作れるし、
コンソールアプリがコンソール+GUIって動作することも普通にできるし、
GUIプログラムでもコマンドライン引数使う事が普通にあるわけで。

コンソール関連を時代遅れって言いたそうに見えるけど、
それはコンソール関連を使わないから出る意見だと思う
927デフォルトの名無しさん:2014/01/27(月) 07:21:19.40
半分正論
C++でコンソールアプリを作る機会は殆ど無いからな
わざわざあんな重たい開発環境使うなら最初っからC#でGUIやってたほうが良いと思うよ
928デフォルトの名無しさん:2014/01/27(月) 07:34:35.39
>>915,918,920
プロンプト開く
cd "exeファイルの保存されているフォルダpath"
ファイル名.exe 引数1 引数2 ...

こういう事聞いてんのか?
929デフォルトの名無しさん:2014/01/27(月) 14:19:37.25
>>928
そうやってやるんてますか…

テキストでコマンドラインからの入力という項目でSampleか゛【コマンドライン引数をつかう】らしいです。
930デフォルトの名無しさん:2014/01/27(月) 15:56:08.86
出来ました。皆さんご協力ありがとうございます。

結果を報告しますと、Debugのフォルダ内にあるexeファイルと同じフォルダ内(Debugフォルダ)にテキストファイル(Sample.txt)を移したら出来ました。
931デフォルトの名無しさん:2014/01/27(月) 18:09:43.97
>>914 ありがとうございます。ライフゲームのほうはまだ期限があるのでがんばってみますが、間に合いそうになければお願いします・・。
932デフォルトの名無しさん:2014/01/27(月) 18:44:52.04
>>930
引数でファイルを指定する時はフルパスかカレントディレクトリからの相対パスにした方がいい

Sample.exeとSample.txtが同じ場所にある場合は
Sample.exe ./Sample.txt
933デフォルトの名無しさん:2014/01/27(月) 19:02:23.22
>>930
ありがとうございます。やってみます。
934デフォルトの名無しさん:2014/01/27(月) 19:06:26.17
935デフォルトの名無しさん:2014/01/29(水) 07:22:46.70
[1] 授業単元: C言語T
[2] 問題文(含コード&amp;リンク):レポート形式なのですが比較回数を数えるプログラムのソースコードを御教示ください。
 問:以下の挿入ソートのプログラムを参考に(次番に記載)着目する各x[i]の大小比較の回数を求めよ。
   参考として、各データの比較回数は最大(i-1)回、最小1回、平均(i/2)回となる。
   また、それぞれのデータの並びを変えて比較回数とデータの並びの関係を考えよ。
[3] 環境
 [3.2] コンパイラ:gcc
 [3.3] 言語: C言語
[4] 期限: できれば本日中
936935:2014/01/29(水) 07:27:08.20
参考のプログラムが以下です。

#nclude<stdio.h>

int main(void) {

int x[5] = {78, 56, 33, 45, 23};
int a;
int i, j;


for (i=1; i<=4; i++) {
a = x[i];
j = i-1;
while (x[j]>a && j>=0) {
x[j+1] = x[j];
j--;
}
x[j+1] = a;
}

for (i=0; i<=4; i++) {
printf("%d\n", x[i]);
}

return 0;
}
937デフォルトの名無しさん:2014/01/29(水) 07:48:24.48
>>936
それと同じようなのどっかで見たな
その書き方だと比較回数と交換回数が分かりにくいので、「挿入ソート 比較回数 交換回数」でぐぐって
崩したソースを参考にすると良い
938デフォルトの名無しさん:2014/01/29(水) 08:38:13.64
>>936
int mainのまえに

int cnt=0;
int isBigger(int x_, int a_){
cnt++;
if(x_>a_) return 1;
return 0;
}

を書き足して、
x[j]>a
と書いてあったところを
isBigger(x[j], a)
と書き換えればいいよ

あとは最後のreturn 0の前に
printf("%d\n", cnt);
と書けばよし
939935:2014/01/30(木) 01:02:36.71
レスが遅くなりすみません
先ほどバイト先から帰宅したとこです

>>937
ありがとうございます
完成したプログラムを提出せよではなくレポート形式にしてるのもプログラム自体は完成できなくても考察を何かしらの形で書けば点をつけることができるからみたいです
プログラムだけの提出だとみんな完成できずに提出を諦めて点がつけられないそうです

>>938
プログラムを教えていただきありがとうございます
コンパイルして実行してみるとこの配列では13と出力されましたが
これが挿入ソートが完了するまでに比較された数の総数ということでしょうか?
940デフォルトの名無しさん:2014/01/30(木) 16:55:51.65
[1] 授業単元:アルゴリズム概論
ヒープソートについての課題です

[2] 問題文
以下のプログラムは、整列する配列の添え字の下限が1であることを仮定している.
この過程を除いたプログラムを書け.
すなわち、整列する範囲の下限、上限ともに可変とした場合のヒープソートの手続きを書け。
ソースコード: http://ideone.com/HOlaTT
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名:gcc
 [3.3] 言語: C
[4] 期限: 2014年1月31日14:00まで

期限は明日までですが、どなたかお願いします。
941デフォルトの名無しさん:2014/01/30(木) 20:28:14.69
やさしいC アルゴリズム編

初心者には分かりやすいよ
942デフォルトの名無しさん:2014/01/30(木) 22:04:28.84
ほんと学校って場所はキチガイだな
覚えてすぐ誰でもそれなりの事が出来るのがプログラミングって分野なのに何この課題
プログラミングの範囲まで非効率な授業やって愚民化教育してるからソフトウェア分野が進歩しないのな
943デフォルトの名無しさん:2014/01/30(木) 22:26:15.29
覚えてスグに出来るようなことは、覚えてスグにできるようになるだろう
APIとデータベースを叩いてるだけのヤツらはソートすら書けないと思うけど
944デフォルトの名無しさん:2014/01/30(木) 22:46:17.13
できない人は黙っててください
945デフォルトの名無しさん:2014/01/30(木) 22:52:08.71
まぁソート書けたところで何も得られるものはないけどな。
アルゴリズム系はそれこそAPIやデータベースに封じ込めておくのが一番生産的。
946デフォルトの名無しさん:2014/01/30(木) 23:09:47.73
汎用的な道具が揃っててすぐ使えるってのと、細かい仕様要求に応えられるナマの引き出しがあるかどうかってまた別の話だと思うけどな
といっても今時ならパズルゲームの制作にでも関わらんとあまり使われない引き出しなのかな
オセロのAIみたいなものすらググればコピペできる時代だし
947デフォルトの名無しさん:2014/01/31(金) 02:34:43.21
どなたか>>940お願いします・・・
948デフォルトの名無しさん:2014/01/31(金) 06:31:59.46
>>940
ttp://ideone.com/rXCceP
超汚いけど一応解けたハズ。現在コンパイル中で結果が見れない。
これホントにO(N*logN)で解けてるかよくわからんな。
試用したデータはフォーク前に使ってあったやつを拝借した。
間違ってたら思う存分罵ってくれ。ヒープソートの原理は知ってるが書いたこと無いんだ。
今回やってみてバブルソートより早いのは分かった。
949デフォルトの名無しさん:2014/01/31(金) 06:39:50.94
>>948
ソートできてから投稿しなよ
950デフォルトの名無しさん:2014/01/31(金) 06:39:57.88
>>940
Ideon重いなー。Codepadも重いなー
結果はこっちで見てくれ。
http://melpon.org/wandbox/permlink/3qPIHHEnkrmHNvYg
ワンドボックスはマイナーだから色々眺めてくれ。
951デフォルトの名無しさん:2014/01/31(金) 06:40:43.60
>>949
AfterAがソート済みです。
952デフォルトの名無しさん:2014/01/31(金) 06:44:41.80
すなわち、整列する範囲の下限、上限ともに可変とした場合のヒープソートの手続きを書け。

宿題の内容みてんのかね
953デフォルトの名無しさん:2014/01/31(金) 06:46:02.48
下限はポインタの位置をずらしてください。
上限は個数を制限してください。

まだ、なんかある?
954デフォルトの名無しさん:2014/01/31(金) 06:53:48.83
ちゃんとコード読めてるのかね。
めちゃくちゃ汚いけど、足したところは少ないよ。
955>>940:2014/01/31(金) 06:57:32.85
>>948>>950さん
ありがとうございます。

>>954さん
大丈夫です。読めてます。
本当にありがとうございます。
956デフォルトの名無しさん:2014/01/31(金) 07:42:22.98
>>948>>950さん
整列する範囲の下限、上限はどこで設定してるのでしょうか?

例えば、下限をleft、上限をrightとしてleft〜rightの範囲を整列するようなプログラムでは
ないような気がするのですが...

おそらく、私の考えですが要素a[ i ]の子ノードはa[ 2 * i - left +1 ]、a[ 2 * i - right + 2 ]
のようになると思うのですが

せっかく作っていただいたのに、申し訳ありませんが
問題文のプログラムも作っていただけないでしょうか?
注文が多くてすいません
957デフォルトの名無しさん:2014/01/31(金) 07:45:28.51
>>956
ツリー内でソートしろとは書いてないぞ。
もともと雑な配列の一部をソートできればいいんじゃねーの?
958>>956:2014/01/31(金) 07:50:22.40
>>957
たしかにそうですね
すいませんでした
959デフォルトの名無しさん:2014/01/31(金) 07:55:42.86
0〜n-1 までの n個のデータのソートを行う関数 sort(data, n)

left〜right までのソートは
 データの先頭が data + left で データ数が right - letf +1 個

sort2(data, left, right) { sort(data+left, right-left+1); }
とでも書けばよかろう
960デフォルトの名無しさん:2014/01/31(金) 08:13:53.71
ttp://ideone.com/tkX2ZE
個人的にはこんな感じのことを思ってたんだが、違ったのか。
配列でソート済みバランスツリー作りたいって書いてあったらやらなかったよ。
はー、無力。
961デフォルトの名無しさん:2014/01/31(金) 08:25:50.74
>>960さん
実は私もこの問題文よく理解できてないので
ひょっとしたら、>>960さんのが正しいのかもしれません
(もちろん、問題文はレポート用紙に記載されていたものをそのまま転載しましたが)

事前に私が担当の教員に問題文の意味を聞いておくべきでした

回答、アドバイスしてくれた方
ありがとうございました.感謝いたします.
962デフォルトの名無しさん:2014/01/31(金) 12:12:23.82
すいません、どなたか>>900のライフゲームの課題をお願いします・・・。
963デフォルトの名無しさん:2014/01/31(金) 16:29:12.91
964デフォルトの名無しさん:2014/01/31(金) 17:40:53.18
965デフォルトの名無しさん:2014/02/01(土) 00:54:40.65
>>963,964
ありがとうございました。感謝です。
966デフォルトの名無しさん:2014/02/01(土) 21:34:16.66
福島はどこもいつも高いねhttp://new.atmc.jp/pref.cgi?p=07
967デフォルトの名無しさん:2014/02/02(日) 14:04:12.90
>>963
申し訳ないのですが、初期状態のファイルはどうすればいいですか?
968デフォルトの名無しさん:2014/02/02(日) 14:28:35.04
自己解決しました。
969デフォルトの名無しさん:2014/02/02(日) 22:16:37.65
[2] 問題
ポインタを使ってABCDEを縦に1文字ずつ表示する
[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名:Visual C++ 2013
 [3.3] 言語: C
[4] 期限: できれば今日中
途中まで自分なりにやってみたのですが,どう直していいのかがわかりません
よろしくお願いします。

#include <stdio.h>

int main(void)
{

char str[] = "abcde";
char* p_str = str;

printf("%c\n",p_str);

return 0;
}
970デフォルトの名無しさん:2014/02/02(日) 22:25:35.53
#include <stdio.h>

int main(void)
{

char str[] = "abcde";
char* p_str = str;

for(;*p_str;)
printf("%c\n",*p_str++);

return 0;
}
971デフォルトの名無しさん:2014/02/02(日) 23:42:47.71
>>970
ありがとうございました。
972デフォルトの名無しさん:2014/02/03(月) 19:23:05.40
[2] 問題
ポインタを使って標準入力から任意の文字列(全角 2バイト文字)を読み込み、入力された文字列を逆順に出力
[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名:Visual C++ 2010
 [3.3] 言語: C
途中まではできたのですが、全角に出来なくて困っています。

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

int main(void)
{
char str1[100];
char str2[100];
char *p_str1;
char *p_str2;

fgets(str1,sizeof(str1),stdin);

p_str1 = str1;
p_str2 = str2;
973デフォルトの名無しさん:2014/02/03(月) 19:23:45.51
>>972の続き

while (*p_str1 != '\0') {
*p_str1++;
}
if(*(p_str1-1) == '\n'){
p_str1--;
*p_str1 = '\0';
}

while (p_str1 > str1) {
p_str1--;
*p_str2 = *p_str1;
p_str2++;
}

*p_str2 = '\0';

printf("入力:%s\n", str1);
printf("逆順:%s\n", str2);

return 0;
}
974デフォルトの名無しさん:2014/02/03(月) 19:58:07.74
>>972-973
できれば今日中にお願いします
975デフォルトの名無しさん:2014/02/03(月) 20:11:33.36
while (p_str1 > str1) {
p_str1--=2;
*p_str2 = *p_str1;
*(p_str2+1) = *(p_str1+1);
p_str2+=2;
}
976デフォルトの名無しさん:2014/02/03(月) 20:36:55.87
>>975
これでは文字化けしてしまうんですが、includeが足りないとかですか?
977デフォルトの名無しさん:2014/02/03(月) 21:02:09.76
>>975
こういう結果になってしまいます
岡山県倉敷市
入力文字列:・
逆順文字列:s・~・q・ァ・R・ェ・
978デフォルトの名無しさん:2014/02/03(月) 22:13:26.05
[1] 授業単元:プログラミング
[2] 問題文:入力した自然数の逆数を小数で求める
[3] 環境
 [3.1] OS:7
 [3.2] コンパイラ名とバージョン:Visual C++ 2010
 [3.3] 言語: C言語
[4] 期限:1週間以内にお願いします
[5] その他の制限:問題文の例として
割り切れる場合はいいのですが
割り切れず永遠に続く循環小数があるので
循環小数の場合
自然数が7の時逆数は0.142857142857・・・となるので
表示するときは    0.142857(この後も142857と永遠に続く)とゆうようにしたいです
説明がうまくないのですがよろしくお願いします
979デフォルトの名無しさん:2014/02/03(月) 22:33:07.94
980デフォルトの名無しさん:2014/02/03(月) 22:59:21.38
>>977
端末のロケールがおかしいんだろね
cp 932なコマンドプロンプト上で実行しましょう
981デフォルトの名無しさん:2014/02/03(月) 22:59:45.28
>>975
逆順の処理に入れても動きません
982デフォルトの名無しさん:2014/02/03(月) 23:08:06.32
UTF8にするとサロゲートペアとかあって面倒なんだよね。
983デフォルトの名無しさん:2014/02/03(月) 23:09:57.59
>>980 >>982
設定の問題でしょうか?
ソースコードはこれです
http://codepad.org/MCzgHPt4
984デフォルトの名無しさん:2014/02/03(月) 23:12:13.04
>>982
それはUTF16の話でしょ
UTF8は可変長なんだから手間は同じだよ
985デフォルトの名無しさん:2014/02/03(月) 23:22:00.45
>>983
> p_str1--=2;
p_str1-=2;
ソーリー
986デフォルトの名無しさん:2014/02/04(火) 00:08:14.31
>>985
今度はプログラムが停止してしまいます
http://codepad.org/uYgv5AAt
987デフォルトの名無しさん:2014/02/04(火) 00:13:03.00
>>986
*p_str1-=2;
ではなく
p_str1-=2;
988デフォルトの名無しさん:2014/02/04(火) 00:16:11.28
>>987
ありがとうございます。
ここではポインタ不要だったんですね
989デフォルトの名無しさん:2014/02/04(火) 00:34:28.46
はわわわわ・・・。
990デフォルトの名無しさん:2014/02/04(火) 04:30:05.99
【質問テンプレ】
[1] 授業単元:俺の限界
[2] 問題文(含コード&リンク):言語内Lispモドキを作っています。
今回は継承元で継承先の関数が呼べるかの実験をしています。
困ったことに、継承元には余計な情報を付加したくないので、継承元をテンプレートにすることができません。
この条件で、継承元のVoidTypeから、継承先の任意のstd::funtionが呼べるようにならないでしょうか??
サンプル:http://ideone.com/sabUbx
[3] 環境
 [3.1] OS: Any
 [3.2] コンパイラ名とバージョン:anyだけど、VC2013EEでも動くことが望ましい。
 [3.3] 言語: C++11
[4] 期限: 2014/02/06位まで。
[5] その他の制限: C++11の範囲で。かつなるべくVC2013の範囲で。
991デフォルトの名無しさん:2014/02/05(水) 09:28:35.79
[1] 授業単元:C言語
[2] 問題文:クイックソートのプログラム(http://melpon.org/wandbox/permlink/h5g91ZEQJkVKz5YW)を改編し比較回数と分割回数を表示させよ
[3] 環境
 [3.1] OS:windows7
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限:本日中
[5] その他の制限:グローバル変数を使って少し改編するだけでできるようです。
992デフォルトの名無しさん:2014/02/05(水) 22:33:00.01
なんというか感慨深いな
993デフォルトの名無しさん:2014/02/06(木) 16:26:22.59
>>990
VoidTypeにprivateな仮想関数fooを定義して、operator()から呼ぶ
派生クラスでfooをオーバーライドじゃねーの?
994デフォルトの名無しさん:2014/02/06(木) 16:28:37.33
NVIイディオムとか、c++のイディオムが載ったWiki漁れ
995デフォルトの名無しさん:2014/02/06(木) 21:47:09.13
>>993-994
お返事ありがとう。
一応できるということのようなのでググってみます。
回答ありがとうございました。
>>990はこれで閉めます。
996デフォルトの名無しさん:2014/02/07(金) 02:35:54.19
これって、TMPの静的ポリモーフィズムとかだっけ?
997デフォルトの名無しさん:2014/02/07(金) 03:34:33.10
>>996
実験要素が強いのでなんとも言えませんけど、
Boost::Anyが入れば大体解決する問題なのですよね。今のところ。
知識が足りない・・・。Orz

ちょっとググってみます。
998デフォルトの名無しさん:2014/02/07(金) 03:42:16.42
>>996
いわゆるひとつのMixinですなー。
ちょっと検討してみます。
999デフォルトの名無しさん:2014/02/07(金) 04:32:52.86
次スレ・・・。カモーン。
1000デフォルトの名無しさん:2014/02/07(金) 06:02:07.71
>>993-994,996
ttp://ideone.com/fs9YOw
一応出来ました。戻り値の自由度も確保しましたけど、
こいつをVoidTypeに適応するときに戻り値だけは自由度なさそうなのでBoolにしようと思います。
さて、どうやって調理してやろうか・・・。

ありがとうございました。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。