C/C++の宿題を片付けます 105代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/04/15(火) 23:07:41【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):()
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
【前スレ】
C/C++の宿題を片付けます 104代目
http://pc11.2ch.net/test/read.cgi/tech/1202135539/
0002デフォルトの名無しさん
2008/04/15(火) 23:10:20_,,-‐‐‐‐‐‐t-:、_ `‐、、_
__,,,-‐'´ .:. ,,:.:``‐、;:;:;ヽ_
,,,_____,,..、_,,,,,-‐‐‐-、、_,,-'´ ............:.:/: .:. ````ヽ、_ こ、これは>>1乙じゃなくて
〈=__,,,,__,,,,,,,,,,,,..::::::::::... ;.:.:.:.:.:.:.:.:.:.:.:.:.:.:,;ノ::. `‐、、 浜に打ち上げられた魚の死骸なんだから
/ .._____.. .. . `````ヽ- '--‐‐'''''~~~'`::::ヽ:.:.:..... 、 ヽ、 変な勘違いしないでよね!
ヒ;-'´ ````:‐:‐:-:-.:__,,、、、、、 ....:.:.:.:.:.:.`:.:.:.:,;,;,;,;.:.:.;,;...........ヽ、ヽT ● ヽ、
````‐--:-:‐:':´:`:`´:: :::``:..、_:.:.:.:.:.:.:.ヽ、__ ,-==,
````‐‐:-:-:-:-:‐"
0003デフォルトの名無しさん
2008/04/16(水) 02:36:46いまいちソースが理解できないので、ヒントや解説をもらえないでしょうか?
お願いします。ring_list_tやretが何を指しているのかがわからなかったです。
0004デフォルトの名無しさん
2008/04/16(水) 03:09:37ring_list_append()
・リングリスト1要素を新規に確保
・新要素の中身は引き数data
・新要素の次要素は自分自身
・新要素の前要素は自分自身
・既存リストの追加点が空なら(唯一の要素である)新要素を返す
・既存リストの追加点を新要素の前要素に繋ぐ
・既存リストの追加点の次要素を新要素の次要素に繋ぐ
・既存リストの追加点の次要素の前要素に新要素を繋ぐ
・既存リストの追加点の次要素に新要素を繋ぐ
・新要素を返す
即ち、
追加点
次↓↑前
追加点の次要素
という構造を
追加点
次↓↑前
新要素
次↓↑前
追加点の次要素
と言う構造に変更している。
っと、ここで力尽きた。後は頑張ってくれw
0005デフォルトの名無しさん
2008/04/16(水) 03:51:01プログラムの
ret->prev=list;
ret->next=list->next;
list->next->prev=ret;
list->next=ret のところがようやく理解できました。
理解させてもらった上で質問なのですが、このような構造変換をして
何故あのような親とラベルのきれいな出力になるのかが理解できていないです。
簡単なヒントでいいので教えていただけないでしょうか?
0006デフォルトの名無しさん
2008/04/16(水) 05:30:390007デフォルトの名無しさん
2008/04/16(水) 06:06:50CPUが命令を実行してくれるのはわかるんですが・・・・
フローチャートを描きたいので内容的な部分を言ってくれるとありがたいのですが。
00084
2008/04/16(水) 07:38:21――少しは想像力と推理力を働かせようよ……
# あ、それができるくらいなら(ry
リングリストの部分はロジックを追うときに絵を描きながら理解しやすいんじゃない?
全体のロジックを追うときにはその絵を見れば判るだろうし。
# って、それができる(ry
0009デフォルトの名無しさん
2008/04/16(水) 07:43:14ノードのラベルと親ノードを、ノード-1の位置に記憶する
ex. ノード3のラベルと親ノードは、infoary[2].label, infoary[2].parent
infoary[x-1].label == 0 の場合、xは通過していないことになる
analyze_depth:
�@空のスタック(stack_t stack={0})、初期化されたノード情報配列(nodeinfo_t infoary[NODENUM] = {{0}})を宣言
�Aスタックにルートノード(start)をプッシュ : pushstack(&stack, start);
�Bルートノードを通過済みする : flags[start-1] = 1;
�Cルートノードのラベルを1に設定 : infoary[start-1].label = 1;
ルートノードの親ノードを自分に設定 : infoary[start-1].parent = start;
�Dラベルを2に設定 : label = 2;
�Eスタックにデータ(親ノード)がある→�F、 スタックが空→�N
�Fスタックからノードを取り出す(親ノード) : parent = popstack(&stack);
�G親ノードから到達可能なノード(子ノード)が、ある→�H、ない→�E : for(i=0; adj[parent-1][i] != 0; ++i){
�H子ノードが未通過→�I、通過済み→�G : if( flags[ adj[parent-1][i]-1 ] == 0){
�I子ノードを通過済みにする : flags[ adj[parent-1][i]-1 ] = 1;
�Iスタックに親ノードをプッシュ : pushstack(&stack, parent);
�Jスタックに子ノードをプッシュ : pushstack(&stack, adj[parent-1][i]);
�K子ノードのラベルを設定 : infoary[ adj[parent-1][i]-1 ].label = label;
子ノードの親ノードを設定 : infoary[ adj[parent-1][i]-1 ].parent = parent;
�Lラベルを+1する : ++label;
�M�Eに戻る : break;
�Nラベルが0以外のノードを表示する
printf(" v_label parent\n");
for(i=0; i < NODENUM; ++i){
if(infoary[i].label != 0){
printf("%2d : %7d %6d\n", i+1, infoary[i].label, infoary[i].parent);
}
}
上記間違いがあっても、当方は責任を負いかねます
これで分からないなら、まずwikiで深さ優先探索、スタックをじっくり勉強してください
0010デフォルトの名無しさん
2008/04/16(水) 11:14:04助かりました
本当にありがとうございます orz
0011デフォルトの名無しさん
2008/04/16(水) 13:22:41>>989
無知なんでライブラリと聞いてもピンとこないんですが;;すいません。
授業で使う資料に書いてあることを書きます。
画像処理を行うプログラムをWindowsのダイアログベースで作成していく。
ダイアログベースプログラムの大枠をMicrosoft Visual Studio6.0のVisual C++6.0で作る。
となっています。どうでしょうか?
問題
a[100][100]を宣言し、2重のfor文を用いて、a[0][0]に0+0を入れて、
a[0][1]に0+1を入れて、a[0][2]に0+2を入れて、a[1][2]に1+2を入れて、
・・・a[99][99]に99+99を入れるようなプログラムを作れ。次にこれらの
配列変数の値が赤色の値で、緑と青の値は0であるような画像を表示する
プログラムを作成しろ。
>>996〜998
ありがとうございます。
まだ基礎しか習ってないのでここまで複雑ではないような気がします。
せっかくやっていただいたのに申し訳ありません;;
0012993
2008/04/16(水) 16:57:563日もかけて作ったのに!
ところで、ダイアログベースってことは使うコントロールを指定されてたりしないかい?
0013デフォルトの名無しさん
2008/04/16(水) 17:23:14SetPixelで点打っていくだけでは内科医
0014993
2008/04/16(水) 17:25:57複雑と言われそうだ。
0015デフォルトの名無しさん
2008/04/16(水) 17:56:32char buff[128];
という変数があって、
あえてstring.hを使わずにbuff[128]に
str[]を代入するにはどうすればいいですか?
0016デフォルトの名無しさん
2008/04/16(水) 18:19:000017デフォルトの名無しさん
2008/04/16(水) 20:22:55sprintf(buff, "%s", str);
0018デフォルトの名無しさん
2008/04/16(水) 20:54:57乙。
最近まったく答えてないが。
0019名無しさん@ゴーゴーゴーゴー!
2008/04/16(水) 21:35:12宜しくお願いします。
0020デフォルトの名無しさん
2008/04/16(水) 21:59:22設問1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6256.txt
0021デフォルトの名無しさん
2008/04/16(水) 22:04:28設問2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6257.txt
0022デフォルトの名無しさん
2008/04/16(水) 22:12:07設問3
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6258.txt
10進数表現が、符号無しか符号付きか不明だったので、両方用意しました。
不要なほうは消してください。
0023デフォルトの名無しさん
2008/04/16(水) 22:13:25そのビット操作はレベル的に提出したら>>19やばくねw
0024デフォルトの名無しさん
2008/04/16(水) 22:17:22設問4
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6259.txt
同様に両方用意しました。
0025デフォルトの名無しさん
2008/04/16(水) 22:40:29このスレではよくあることw
0026デフォルトの名無しさん
2008/04/16(水) 22:55:470027デフォルトの名無しさん
2008/04/16(水) 23:21:07[2] 問題文:2値化画像を読み込ませ、
黒(255)の部分の面積(画素の数を求める)プログラミングを作成せよ。
[3] 環境
[3.1] OS:XP
[3.2] Visual Studio2005
[3.3] 言語:C
[5] その他の制限:メイン関数(特に画素の数を求める部分)だけでも教えて欲しいです。
分かりにくかったらすみません。
よろしくお願いします。
0028デフォルトの名無しさん
2008/04/16(水) 23:27:590029デフォルトの名無しさん
2008/04/17(木) 00:17:580030デフォルトの名無しさん
2008/04/17(木) 00:21:58[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6260.txt
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン:CPad for Borland
[3.3] 言語: (C)
[4] 期限:4/18まで
[5] その他の制限:入力はgetcharもしくはfgetsで行う。
文字列の最大は#defineで行う。
よろしくお願い致します。
0031デフォルトの名無しさん
2008/04/17(木) 00:58:05本当に申し訳ありません;;
他には何も書いてないようです・・・
>>13
SetPixelで点を打っていくのは確かです。
よろしくお願いします。
0032デフォルトの名無しさん
2008/04/17(木) 01:09:31[2] 問題文(含コード&リンク):()
1世代20年とういう仮定のもとに、500年前(つまり25世代前)のあなたの祖先の数が何人になるかを再帰法を用いて計算せよ
(1世代前=父母、2世代前父方の祖父母+母方の祖父母、3世代前=・・・)
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C
[4] 期限: 4月21日まで
[5] その他の制限: 制限はないのですが再帰法を絶対に使えということです
どなたかよろしくお願いします
0033デフォルトの名無しさん
2008/04/17(木) 01:45:43int hoge(int a, int b)
{
if(b<0) return 0;
return a+hoge(a*2, b-1);
}
int main(int argc, char *argv[])
{
int i;
for(i=0;i<=25;i++)
printf("%d\n", hoge(1, i)-1);
return 0;
}
0034デフォルトの名無しさん
2008/04/17(木) 01:48:480035デフォルトの名無しさん
2008/04/17(木) 01:58:11[2] 問題文:200個の要素を格納する整数配列を宣言し,要素を1〜100の乱数で満たし,この配列の要素を標準出力に出力する.
次いで,要素の大きい順に出力するプログラムを作成する
[3] 環境
[3.1] OS:XP
[3.2] cygdrive
[3.3] 言語:C
[5] その他の制限:自分で並び替えられる前、並び替え変えた後が
表示されるようにつくろうとしましたが、大きい順に並び変えるところで
お手上げ状態です。いろいろfor文入れたりしましたが駄目でした。どうか
お願いします。以下作ってみたプログラムです。
003635
2008/04/17(木) 01:59:59#include <stdlib.h>
#include <time.h>
int main(void)
{srand((unsigned) time(NULL));
int d[200]; int i, j; int tmp;
printf( "before,\n" );
for ( i=0; i<200; i++ ){
j = rand() % 100 + 1;
printf("%d ",j);
}
printf("\n");
for ( i=0 ; i<200; i++ ) {
for ( j=i+1; j<100; j++ ) {
if ( d[i] < d[j] )
{ tmp = d[i];
d[i] = d[j];
d[j] = tmp;
}
}
}
printf("after,\n");
{
printf("%d ",d[i]);
}
}
0037デフォルトの名無しさん
2008/04/17(木) 02:00:30中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
0038デフォルトの名無しさん
2008/04/17(木) 02:08:34#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int d[200];
int i, j;
int tmp;
srand((unsigned) time(NULL));
printf( "before,\n" );
for ( i=0; i<200; i++ ) {
d[i] = rand() % 100 + 1;
printf("%3d ", d[i]);
}
printf("\n");
for ( i=0; i<200; i++ ) {
for ( j=i+1; j<200; j++ ) {
if ( d[i] < d[j] ) {
tmp = d[i];
d[i] = d[j];
d[j] = tmp;
}
}
}
printf("after,\n");
for ( i=0; i<200; i++ ) {
printf("%3d ",d[i]);
}
printf("\n");
return 0;
}
0039デフォルトの名無しさん
2008/04/17(木) 02:13:57ありがとうございます!
0040デフォルトの名無しさん
2008/04/17(木) 08:24:04違ってたらすんません。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6261.c
0042デフォルトの名無しさん
2008/04/17(木) 12:04:46内容:char src[ ] = "seikima";
char dest[4] = "tsu";
と配列を用意し、destの中身をsrcに結合させ、表示させる。
ただし、for文を使うこと・ポインタ、string.hは使ってはならない。
0043デフォルトの名無しさん
2008/04/17(木) 12:33:49srcの配列数していいんだったらいいけど。
0044デフォルトの名無しさん
2008/04/17(木) 12:35:51まぁ自分でも頑張ってみることも大事だよ。
ここに頼りすぎてると後々辛い思いをするかもね。
0045デフォルトの名無しさん
2008/04/17(木) 13:38:23ここに来ているお前はなんだよ?w
0046デフォルトの名無しさん
2008/04/17(木) 18:47:33http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6264.txt
簡単なバブルソートでやってみました。なぜか\が文字化けするので
puts( "" )なんて変な書き方になってます。
0047デフォルトの名無しさん
2008/04/17(木) 19:02:44http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6266.txt
まさか授業でこんなトリッキーなことをさせるとは思えないんですが...
どんな環境でも動くのかは知りません。
0048デフォルトの名無しさん
2008/04/17(木) 20:03:23おまえらならわかる?
今回はR32C/121を利用してロボットを作ろうとしています。
できれば新しくCAN通信で動かしたいのですが
初期設定でうまくいっていないようです。
/* CANリセット/初期化モードに移行 */
reset_c0ctlr = 1;
sleep_c0ctlr = 0;
/* 動作モードの設定 */
/* CAN制御レジスタの設定 */
porten_c0ctlr = 0;
loopback_c0ctlr = 0;
msgorder_c0ctlr = 0;
basiccan_c0ctlr = 0;
buserren_c0ctlr = 0;
tsprescale_c0ctlr = 0;
/* ビットタイミングの設定 */
prc0 = 1;/* Protect off */
cclkr &= ~0x0FU;
cclkr |= 0x00;
prc0 = 0;/* Protect on */
brp_c0conr = 12;
/* CAN動作モードへ移行 */
reset_c0ctlr = 1;
/* 動作モード確認 */
while(state_reset_c0str == 1){}
どこがおかしいの?
0049デフォルトの名無しさん
2008/04/17(木) 21:52:030050デフォルトの名無しさん
2008/04/17(木) 22:43:09たぶん、
> /* CAN動作モードへ移行 */
> reset_c0ctlr = 1;
ここを
reset_c0ctlr = 0;
にしないと動作モードにならないだろ?
他のレジスタはほとんどわからんけどね。
0051デフォルトの名無しさん
2008/04/17(木) 23:21:04c=a+a*b+a/b
c=43
どうしても43にならないのですが、解説していただけないでしょうか。
0052デフォルトの名無しさん
2008/04/17(木) 23:29:17aとbは43になるかもしれないしならないかもしれません。
cはc=43の時点で43になります。
0053デフォルトの名無しさん
2008/04/17(木) 23:30:3443は素数なのでa,bの少なくとも一方は整数ではない
あれ?問題がわからなくね?
005451
2008/04/17(木) 23:31:42a=10 b=3で
c=a+a*b+a/b
このときのcに格納される値の問題です…。すいません。
答えは43らしいのですが…
0055デフォルトの名無しさん
2008/04/17(木) 23:34:220056デフォルトの名無しさん
2008/04/17(木) 23:35:17c = (10) + (10 * 3) + (10 / 3)
c = (10) + (30) + (3)
c = 43
あってるよ
算数の宿題じゃなくプログラムの問題だったら
コードを見てみないと何がおかしいのかわかりません
0057デフォルトの名無しさん
2008/04/17(木) 23:36:49あとは四則演算
0060デフォルトの名無しさん
2008/04/17(木) 23:40:12これ参照エラーでそうだけど…
言葉の隅つくようだったら
printf("%s",src);
for(i=0; i<sizeof(dest); i++)
printf("%c", dest[i])
でいけそうじゃね?
0061デフォルトの名無しさん
2008/04/17(木) 23:48:370062デフォルトの名無しさん
2008/04/17(木) 23:57:230063デフォルトの名無しさん
2008/04/18(金) 06:16:24Javaじゃないから配列の範囲外をアクセスしても、変なところぶっ壊さない限り
大丈夫じゃない?とりあえず、OSX上でgcc 4.0.1では動いてる。
0064デフォルトの名無しさん
2008/04/18(金) 08:46:24[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6269.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 04/25
[5] その他の制限:なし
自分でも考えて見てますがちょっと出来る気がしないので
(画像の読み込みとhistの計算の部分)暇があれば宜しくお願いします
0065デフォルトの名無しさん
2008/04/18(金) 09:25:30マジで言っているならC/C++を使うのはやめた方がいい。
0066デフォルトの名無しさん
2008/04/18(金) 09:58:51[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6270.txt
[3] 環境
[3.1] OS:WindowsXPPro
[3.2] コンパイラ名とバージョン: VC++2005
[3.3] 言語:C
[4] 期限: 本日中
[5] その他の制限:C++でも可
その他参考サイトからパクってきても、手を加えたら動かなくなります。
イチから作るのが超絶苦手でいつも改造改変ばっかりしてたので手も足もでず・・。
0067デフォルトの名無しさん
2008/04/18(金) 13:08:360068デフォルトの名無しさん
2008/04/18(金) 13:25:16それ、マジで言っているならそっちこそCを使うのをやめた方がいい。
Javaでも使ってれば?
元々、Cってのは高級アセンブラだぜ?メモリ管理なんて話を抜きにす
れば、どこのアドレスだろうが自由に読み書きできるのがCってもんだ。
実際の業務で使うとかって話じゃなくてパズルみたいな問題を解いてる
だけ。できることと、やっていいことの区別くらいついてるさ。
0069デフォルトの名無しさん
2008/04/18(金) 13:36:49srcの後ろにdestが連続した領域に記録されたとき、srcの文字列の終端を示す文字を
destをあのように操作することで上書きしたから起こった現象。
0070デフォルトの名無しさん
2008/04/18(金) 13:38:33ここはまぁいい。
>とりあえず、OSX上でgcc 4.0.1では動いてる。
これは阿呆だろ。>68が言うように「パズルの問題を解く」つもりなら何故動くか理解しておくべきだ。
それをしないなら、使うのはやめた方がいいってことだな。
# 何故できるか、と同様に何故してはいけないか、もね。
0071デフォルトの名無しさん
2008/04/18(金) 13:44:400072デフォルトの名無しさん
2008/04/18(金) 14:11:45阿呆って?
intやlongはalignされる可能性があるけどcharはそのまま連続して確保されるでしょ、
実装依存かもしれんけどとりあえずosxのgccならOK、って書いとけばよかった?
0073デフォルトの名無しさん
2008/04/18(金) 14:13:34>>60
Javaじゃないから配列の範囲外をアクセスしても、変なところぶっ壊さない限り
大丈夫じゃない?とりあえず、OSX上でgcc 4.0.1では動いてる。
↑こいつが一番アホだろ、JK。もちっとまともな奴がここにいると思ったが
所詮バカが自分以下を見下そうと思ってきているだけか。この世にお前以上の人間が
どんだけいると思ってんだ?w
0074デフォルトの名無しさん
2008/04/18(金) 14:40:48ぐだぐだ言わずに解答の一つでもかけよ
0075デフォルトの名無しさん
2008/04/18(金) 15:15:24言い返すことが出来なくなるとファビョる基地外 以後放置よろ
0076デフォルトの名無しさん
2008/04/18(金) 16:00:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6271.c
あんま自信ないけどうp
0077デフォルトの名無しさん
2008/04/18(金) 18:43:58ありがとうございます
今ちょっとLinuxのPCが調子悪いので今日試せませんが
ソース見て勉強します
007864
2008/04/18(金) 23:55:27プログラム内でjpgをppmに変える必要があるそうです
でもdjpegコマンドを用いるってプログラム内でlinuxのコマンド
用いて変換することって可能なのでしょうか
あともし>>76さんに書いて頂いたコードで出力データを別ファイルに
書き込んでデータファイル作る場合にはどうすれば良いでしょう
FILEのところに関数追加して書き込み用として開いて最後にfprintf?
ご教授お願いします
0079デフォルトの名無しさん
2008/04/19(土) 01:38:28削除、CSVファイルの取り込み以外は出来たのだが・・・タイムオーバー?
もちっとできんもぉ〜ソースだけど完成するのだが・・・
0080デフォルトの名無しさん
2008/04/19(土) 08:12:340081デフォルトの名無しさん
2008/04/19(土) 08:34:14努力が報われないのもあれだから、おれが添削してやるよ。
0083デフォルトの名無しさん
2008/04/19(土) 09:01:50俺のきしょいクソースを見たいとな?ならば見せて進ぜよう、後ほど。
0084デフォルトの名無しさん
2008/04/19(土) 09:37:390085デフォルトの名無しさん
2008/04/19(土) 09:39:120086デフォルトの名無しさん
2008/04/19(土) 09:43:34まさかこれがかの有名な自作自演!?
どんだけチキンなんだよw
0087デフォルトの名無しさん
2008/04/19(土) 09:49:32必死だなw
0088デフォルトの名無しさん
2008/04/19(土) 09:55:00土曜の朝から笑かしてもらいやした。もうお腹いっぱいです。
0089デフォルトの名無しさん
2008/04/19(土) 09:56:2284は俺だが自演じゃねーよw
どっちかっていうと俺は81と83が自演だと思ってる人間だ
0091デフォルトの名無しさん
2008/04/19(土) 09:58:450093デフォルトの名無しさん
2008/04/19(土) 12:36:32彼もうへそ曲げちゃったから。。。
0094デフォルトの名無しさん
2008/04/19(土) 12:58:59もちっと待ってなぁ。ちと、CSVからバイナリに変換するところでてこずってる。
あと、余裕があったら最後に名前を基準にソートする部分をそぉ〜っと入れておくぜい。
0095デフォルトの名無しさん
2008/04/19(土) 12:59:340096デフォルトの名無しさん
2008/04/19(土) 13:00:210097デフォルトの名無しさん
2008/04/19(土) 13:00:35まぁ、きんもぉ〜なソースになりすぎて、自分でも把握しきれてない。
が、一応バイナリーデータ、CSVへの出力は完成している。
あとはインポーとのところが、ね・・・
0098デフォルトの名無しさん
2008/04/19(土) 15:27:250099デフォルトの名無しさん
2008/04/19(土) 15:39:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6273.c
4) リストの出力(第四段階)
登録されている登録項目のリストを、テキストファイルに出力する。
※ 名前によるソートを視野に入れたコーディングが望まれる。
このソートの部分は実装していないので、あしからず
適当に仕組みを作ればできるけど、なんかもう徹夜明けで
('A`) マンドクセッ 状態なんで、クソミソースですまそ
0100デフォルトの名無しさん
2008/04/19(土) 15:41:25300件を超えるべきではないが、その部分もやってないっす・・・すまそ。
登録されている件数は、生成されたバイナリーデータのファイルサイズと
1件分の構造体のサイズを元に算出してますです、はい。
0101デフォルトの名無しさん
2008/04/19(土) 15:43:580102デフォルトの名無しさん
2008/04/19(土) 15:47:39あぁ、なんかインポートかCSV出力にバグっぽいのがあった・・・シラネッ
0103デフォルトの名無しさん
2008/04/19(土) 15:50:460104デフォルトの名無しさん
2008/04/19(土) 15:51:36ttp://ja.wikipedia.org/wiki/%E3%81%97%E3%82%89%E3%81%AD%E5%9E%8B%E8%AD%B7%E8%A1%9B%E8%89%A6
本当にもう、シラネッ
0105デフォルトの名無しさん
2008/04/19(土) 15:52:24興味ないならいちいちそんなことを書き込まなくていい。お前の存在自体いらないしw
0106デフォルトの名無しさん
2008/04/19(土) 16:03:41ただ興味があってチャレンジするのであれば、一向に構わないが
君の無意味な連続投稿によって埋もれていく宿題登校者の身にもなったらどうかな。
>>97-102 の辺りとか、反応がないという事はどういうことか?
あまりこういうことは言いたくはないが、もう少し空気を読んでくれ。
0107デフォルトの名無しさん
2008/04/19(土) 16:06:05お前の方がうざっ、無能な奴ほど相手に食って掛かるもんだな
それから、現状で待機中の宿題があるなら、お前がやれよw
0108デフォルトの名無しさん
2008/04/19(土) 16:08:01さすが、すべての発想が我々の2、3歩先をリードしていらっしゃるw
0109デフォルトの名無しさん
2008/04/19(土) 16:12:16有能なら>>66程度の問題なら難なく解決できるだろwwwwww
特別に難しいアルゴリズムを求めているわけでもないし、ただ仕様通りに書くだけ。
期限切れてるから、俺はやる気にもならんがな。
0110デフォルトの名無しさん
2008/04/19(土) 16:13:030111デフォルトの名無しさん
2008/04/19(土) 16:45:02[1] プログラミング言語
[2] 整数の平方根を開平法で求めるCのプログラムを作成せよ。結果は小数点第1位まで求めればよい
[3.1] OS: Windows
[3.3] 言語: C
よくわからないので、よろしくお願いします。
0112デフォルトの名無しさん
2008/04/19(土) 17:17:20ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6275.c
0113デフォルトの名無しさん
2008/04/19(土) 17:18:31何こいつ、このスレの主か?偉そうに仕切ってやがるが
そこまで言う前に、お前も無駄なレスを書き込むなって。
相手を煽ればそれにレスがつく、結局流れる原因はお前にもあるんじゃん。
放置、スルーを知らない時点でお前の存在こそこのスレには要らない。
それから、期限切れではあるが、期限を延長したような
本人からのレスがあるようだが・・・?
兎にも角にも、興味がないならお前がスルーしろよ、な?
0114デフォルトの名無しさん
2008/04/19(土) 17:20:010115デフォルトの名無しさん
2008/04/19(土) 17:33:38トリップをつけさえすればこのスレ、いや世界が変わると言っても過言ではないでしょう
011630
2008/04/19(土) 17:34:40すいません、できてはいたのですが,
警告 W8066 StrCmnd.c 81: 実行されないコード(関数 main )と、でてましたが
この警告を消す方法はないでしょうか?
そして、前スレで解いていただいたのですが、
「Q.0〜255の整数を入力し、数値に変換して unsigned char型配列に格納する。
この数値に対して1ビット左にシフトした結果、全ビット反転した結果をそれぞれ
10進数、16進数、2進数で表示する(入力された数値に対しても表示しておくこと)」
という問題で、
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6274.txt
と、解答していただいたのですが、unsigned(left,right,return)
など使わずに 結果をunsigned nのみで表示する方法はないでしょうか?
0117デフォルトの名無しさん
2008/04/19(土) 17:42:21http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6277.c
0119デフォルトの名無しさん
2008/04/19(土) 17:51:33↓
名無し住人として書き込んだ為、神のソース投稿に際して無粋な突っ込みが入る
↓
宿題投稿者からの懇願が奏し、神がソースをアップロード
↓
神が書いたソースのあまりの素晴らしさに息を呑む住人
↓
レスする暇もなく神のソースをしゃぶっている住人から、レスポンスがない事に神は腹を立てる
↓
更に無能な住人から嫉妬されてしまう
↓
完璧な論理で一蹴
↓
非の打ち所がないほどのソースをまさかの連続改良
↓
神様万歳 ←今ここ
↓
神がトリップをつけ2chで数々の功績を残す
↓
神の功績は2ch程度では留まらず、やがて世界の舞台で活躍
↓
神を中心に世界が変わる
0120デフォルトの名無しさん
2008/04/19(土) 18:13:12> あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。
> 気に入らない質問やその他や発言はスルーの方向で。
読めない新入りがいるよなぁ
0121デフォルトの名無しさん
2008/04/19(土) 19:44:02また暴れてPC取り上げられんなよw
0122デフォルトの名無しさん
2008/04/19(土) 20:05:00[2] 目盛りのついてない水差しが3つあり、それぞれ3L、5L、8Lの容積をもっている
8Lの容器には既に満杯の水が入っているが、半分の4Lずつに分けたいと考えている。
なお、資源を大切にしたいので、水をいくらでも使えるということは出来ない。
最初の8Lをうまく3つの容器に分ける必要がある。
その手順を求めるおプログラムを作成せよ。
また完成後1Lと7Lや5Lと2Lにも分けられることを確認せよ
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: BorlandC++
[3.3] 言語: C言語
[4] 期限: 2008年4月20日24:00まで
[5] その他の制限: 特にないです
0123デフォルトの名無しさん
2008/04/19(土) 20:45:04[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6280.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:出来れば4/21,無理なら4/24でお願いします
[5] その他の制限:特にありません
宜しくお願いします
0124デフォルトの名無しさん
2008/04/19(土) 21:22:36>前回のプログラムデータを使用する宿題
ここんとこ詳しく
0125デフォルトの名無しさん
2008/04/19(土) 21:58:48それを複数の画像に使用してDBを作ってます
DBの内容については書いてあるとおりです
0126デフォルトの名無しさん
2008/04/19(土) 22:04:27正直面倒そうなんで俺はパスする
0127デフォルトの名無しさん
2008/04/19(土) 22:09:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6281.txt
ごめん、勢いで作ってしまったらC++だった。
どなたか引き続きCでお願いします。
0128デフォルトの名無しさん
2008/04/19(土) 22:12:01やっとでけた
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6283.c
0129デフォルトの名無しさん
2008/04/19(土) 22:36:29int queue[STATE_NUM], queue_top=0, queue_last=0;
↓
int queue[QUEUE_SIZE], queue_top=0, queue_last=0;
0131デフォルトの名無しさん
2008/04/19(土) 23:10:44綺麗じゃないけどせっかく作ったので
途中までどれかが4になればいいのかと思ってた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6285.txt
0132123
2008/04/19(土) 23:12:15スミマセン,DB作ってきました
お願いします
0133131
2008/04/19(土) 23:17:08#define FIN 7
#define REQUIREMENT if(b[1][1]==4 && b[2][1]==4){
に訂正
WFSやったのとないからDFSで求めたんだけど、WFS勉強したいから参考サイトとか教えてもらない?
0134デフォルトの名無しさん
2008/04/20(日) 01:43:22WFS ってなんでしょうか。幅優先探索?
0135デフォルトの名無しさん
2008/04/20(日) 02:15:59幅優先探索と初めから言えばよかったが
0136デフォルトの名無しさん
2008/04/20(日) 03:12:57神のコードは、時に読んだ人を妊娠させるとか‥‥‥。
0137デフォルトの名無しさん
2008/04/20(日) 04:33:34>>118
0138デフォルトの名無しさん
2008/04/20(日) 11:33:05EOF入力したダメー
0139デフォルトの名無しさん
2008/04/20(日) 14:42:29普通、EOFは入力できないのだが。
# 入力をクローズすれば、fgetc()などの戻り値がEOFになることを期待できるが。
0140デフォルトの名無しさん
2008/04/20(日) 15:00:130141デフォルトの名無しさん
2008/04/20(日) 15:03:540142デフォルトの名無しさん
2008/04/20(日) 15:07:190143デフォルトの名無しさん
2008/04/20(日) 15:59:06[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6287.txt
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン:CPad for Borland
[3.3] 言語: (C)
[4] 期限:4/21まで
[5] その他の制限:
入力はgetcharで行い、atoi関数は不可。
�@〜�Bまでありますが、過程ではなくそれぞれ1つのプログラムですので、
よろしくお願いします。
@余力があれば、>>116の下の段もお願いします;
0144デフォルトの名無しさん
2008/04/20(日) 16:14:27それぞれ、printf("\n");の行の次に以下の行を入れればいい。
--
n = a;
n <<= 1;
--
n = a;
n >>= 1;
--
n = a;
n = ~n;
--
# 勿論、left, rightなどはnに変更することをお忘れなく。
ってことでいいのかな?
0145デフォルトの名無しさん
2008/04/20(日) 16:27:23>@余力があれば、>>116の下の段もお願いします;
何のために1つの変数で表示する必要があるの?
変数の使いまわしは思わぬミスを招くから回答者はそれを避けたんだと思うんだけど
0146デフォルトの名無しさん
2008/04/20(日) 16:55:48>>141
こいつまた知ったかで墓穴掘ってるよ・・・ナンバーサイン野郎は以後放置な
0147デフォルトの名無しさん
2008/04/20(日) 17:09:18一応、入力されたデータもファイル(何かデータの資料)として扱えるんだがね。
0148デフォルトの名無しさん
2008/04/20(日) 17:23:30ttp://www.geocities.jp/ky_webid/c/027.html
ここにあるソースをコンパイルして実行すれば一目瞭然
0149デフォルトの名無しさん
2008/04/20(日) 17:38:00違ってたらすまそ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6288.c
「CPad for Borland」君の問題、前スレからいくつか解いてきたけど、
教えてる人間が3、4流っぽい気がする。
0150デフォルトの名無しさん
2008/04/20(日) 17:40:55�@
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6289.txt
0151デフォルトの名無しさん
2008/04/20(日) 17:45:38自己レスです。
累計出力するの忘れてました。
一行だけ追加してください。
p[j++] = _p;
printf("累計件数:%d\n", j); <- 追加
} while (j < DATA_SIZE);
0152デフォルトの名無しさん
2008/04/20(日) 17:48:27�A
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6290.txt
0153149
2008/04/20(日) 17:49:56読み間違ってました。
0154デフォルトの名無しさん
2008/04/20(日) 18:13:49次のソースで試してみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6291.txt
環境:
WindowsXP/cygwin(gcc.3.4.4)
Vine Linux 4.1(kernel 2.6.15) / gcc
FreeBSD 6.2 / gcc
MS-DOS ver6.2(NEC) / lsic(3.30c), borland c(3.1), ms-c(6)
結果をみるかぎり、>>139, >>141 が正しいように思えるのですが、如何に?
0155デフォルトの名無しさん
2008/04/20(日) 18:16:08�B
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6292.txt
>>149
すいません、横から仕事取っちゃいました。
0156デフォルトの名無しさん
2008/04/20(日) 18:28:04>3、4流っぽい気が
それはお手本のソースを見ない限りなんともいえませんが、それは提示されてましたっけ。
0157デフォルトの名無しさん
2008/04/20(日) 18:29:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6293.c
意外に手こずってしまった
間違ってたらごめんね
0158デフォルトの名無しさん
2008/04/20(日) 19:09:34ありがとうございます!
ちょっと家のPC不調なんで学校行って実行してみます
0159デフォルトの名無しさん
2008/04/20(日) 19:19:23ここ、宿題スレ。あとな、お前何が言いたいの?
あのリストを作るプログラムをちゃんと見たか?w
getchar() が使われているんだが???
0160デフォルトの名無しさん
2008/04/20(日) 20:07:23それをいうならアンダースコアから始まる変数名を使って欲しくはない
(わざとやってるんじゃなければ)
0161デフォルトの名無しさん
2008/04/20(日) 20:12:35なるほど、なるほど。
0162149
2008/04/20(日) 20:15:420163デフォルトの名無しさん
2008/04/20(日) 20:21:12アンダースコアで始まる名前は処理系のために予約されていることになってるから
使わないほうがいいと思うよ
0164 ◆wIggSzRFEU
2008/04/20(日) 20:26:382 人数a人のクラスで野球チーム(9人)をbチーム作成した。
このとき残りのメンバーでバレーチーム(6人)を何チーム作れ、何人あまるかを出力する。
3 Windows
テラタームを使ってます
C
4 2008年4月21日06時
5 scanfを用いるみたいです・・・
難しい関数は習ってません
よろしくお願いします。
0165デフォルトの名無しさん
2008/04/20(日) 20:28:170166 ◆wIggSzRFEU
2008/04/20(日) 20:29:590167149
2008/04/20(日) 20:32:57そのような話は聞いたことがないのですが、それは処理系依存の話でしょうか?
よく見る他人のソースがlinuxのkernelソースだったもんで普通に使ってました。
0168デフォルトの名無しさん
2008/04/20(日) 20:33:06#include<stdio.h>
int main(void)
{
int a, b, c; // a:クラスの人数 b:野球チーム数 c:バレーチーム数
printf("クラスの人数を入力してください : ");
scanf("%d", &a);
if(a<0) return 1;
for(b=0;b*9<=a;b++)
{
c=(a-b*9)/6;
printf("野球チーム数:%d バレーチーム数:%d あまり人数:%d\n", b, c, a-b*9-c*6);
}
return 0;
}
0169デフォルトの名無しさん
2008/04/20(日) 20:35:14ありがとうございます!
0170デフォルトの名無しさん
2008/04/20(日) 20:36:200171デフォルトの名無しさん
2008/04/20(日) 20:41:53その数でバレーチームが何人作れて、
何人余るかじゃないの?
0172デフォルトの名無しさん
2008/04/20(日) 20:44:54処理系のために予約されてるんだから、当然規格で決まってる
ただまぁアンダースコアで始まるすべての名前が予約されてるわけじゃないけど
0173デフォルトの名無しさん
2008/04/20(日) 20:59:16>>157さんのプログラム拝見させて頂きました
恐らく>>64での課題とまとめたソースだと思うのですが
既に>>64を実行してとっているデータ(>>132のような)
を読み込んで演算を行うようにしたいのですが
どうすればいいでしょうか?
あとオーバーフローチェックのところのLLONG_MAXが使用されてなく
エラーが出てしまいます
0175デフォルトの名無しさん
2008/04/20(日) 21:15:180176デフォルトの名無しさん
2008/04/20(日) 21:15:32すまん、ググってみたが確かなソースにたどり着けなかった
0177デフォルトの名無しさん
2008/04/20(日) 21:21:58aとbを入力する場合
#include <stdio.h>
int main(void)
{
int a, b;
scanf("%d", &a);
scanf("%d", &b);
a -= b * 9;
if(a < 0) return 0;
printf("チーム数:%d\nあまり:%d\n", a / 6, a % 6);
return 0;
}
0178デフォルトの名無しさん
2008/04/20(日) 21:24:15ありがとうございます
0179デフォルトの名無しさん
2008/04/20(日) 21:27:15if を使わないではできませんか?
0180デフォルトの名無しさん
2008/04/20(日) 21:30:10void main (void)
{
int a,b,c,d,e;
printf("人数入力:");
scanf("%d",&a);
printf("野チーム数:");
scanf("%d",&b);
c=a-(b*9);
d=c/6;
e=c%6;
printf("人数:%d 野数:%d バレ数:%d 余:%d",a,b,d,e);
}
だめ?
0181デフォルトの名無しさん
2008/04/20(日) 21:42:33野球チーム数多すぎた場合変なことになるけど。
0182デフォルトの名無しさん
2008/04/20(日) 23:05:37[2] 問題文(含コード&リンク):
キーボードからABCDと円周率を入力して「ABCD3.14と」表示させるプログラム
変数は1つで
[3] 環境
[3.1] OS:問わず
[3.2] コンパイラ名とバージョン:VC++6.0
[3.3] 言語:C++だけど基本範囲?
[4] 期限:[2008年04月21日23:59まで]
[5] その他の制限:基本領域なのでstdio.hのみ
よろしくお願いしますm(__)m
0183デフォルトの名無しさん
2008/04/20(日) 23:08:500184デフォルトの名無しさん
2008/04/20(日) 23:11:230185デフォルトの名無しさん
2008/04/20(日) 23:12:410186デフォルトの名無しさん
2008/04/20(日) 23:24:21と入力すると
>ABCD3.14と
になるように変換すればいいんだろ
円周率という文字を3.14に置き換えて、「と」を後ろにすればいいんじゃないかな?
0187デフォルトの名無しさん
2008/04/20(日) 23:31:52できた。
#include <stdio.h>
int main()
{
char buf[100];
scanf("%s", buf);
puts("ABCD3.14と");
return 0;
}
0188182
2008/04/20(日) 23:58:08素早いレスサンクス。
>>183-184
stdioで桶です
>>185-186
プロセスとしては
起動>入力「ABCD」>入力「3.141592653」で
出力「ABCD3.14」
入力ミスで「」のなかに と を入れてしまいますたorz
>>187ので通るかどうか…多分先生笑顔で×くれてきそう(涙
0189デフォルトの名無しさん
2008/04/21(月) 00:00:250190デフォルトの名無しさん
2008/04/21(月) 00:04:44文字列と小数に関する入力・出力の課題というわけだな。
しかし、
> 変数は1つで
この条件はマジ?
0191デフォルトの名無しさん
2008/04/21(月) 00:22:16#include <stdio.h>
void main() { char buf[16]; gets(&buf[0]); gets(&buf[4]); buf[8] = '\0'; puts(buf); }
0193デフォルトの名無しさん
2008/04/21(月) 00:33:39できた。
#include <stdio.h>
int main()
{
char buf[100 + sizeof(float)];
scanf("%s", buf);
scanf("%f", buf+100);
printf("%s%.2f\n", buf, *(float*)(buf+100));
return 0;
}
0194デフォルトの名無しさん
2008/04/21(月) 02:19:26これで基本?
#include<stdio.h>
int main(void)
{
char buf[100+1];
setvbuf(stdout, NULL, _IOFBF, 1024);
fprintf(stderr, "入力「ABCD」>", buf);
scanf("%100s", buf);
printf("%s", buf);
fprintf(stderr, "入力「3.141592653」>", buf);
scanf("%lf", buf);
printf("%.2f\n", *(double*)buf);
fflush(stdout);
return 0;
}
0195デフォルトの名無しさん
2008/04/21(月) 08:35:07>>138
普通、EOFは入力できないのだが。 < 出来るんだが・・・
141 名前:デフォルトの名無しさん 投稿日:2008/04/20(日) 15:03:54
いいえ、それは一部の環境において入力を閉じる行為です。 < 話が分かってない・・・
0196デフォルトの名無しさん
2008/04/21(月) 08:37:550197デフォルトの名無しさん
2008/04/21(月) 08:44:35ファイルの終わりを意味するEOFコードが記録されていますし
それを入力受付として使うことも可能ですが何か?w
これだから初心者、素人は・・・ナンバーサイン野郎の妄想に惑わされるなよ。
0198デフォルトの名無しさん
2008/04/21(月) 08:49:57指定したポインタへ取り込まないという性質についてだろ?だったら最初から
EOFが 入力 出来ないという勘違いは言わなきゃ良かったんだよ。
言いたいことが相手に的確に伝えられない、誤解を生じさせて損をして生きている奴って
世の中普通にいるしなw こんなところでだから、見ず知らずの人に理解してもらおうと
必死になったんだろうけど、それを相手のエスパーで理解してもらわなきゃ通じないって
どんだけコミュニケーションが下手なんだよ、ナンバーサイン君は?
0199デフォルトの名無しさん
2008/04/21(月) 11:35:310200デフォルトの名無しさん
2008/04/21(月) 12:01:240201デフォルトの名無しさん
2008/04/21(月) 12:22:47[2] 問題文
数学関数を使って,0以上10未満の範囲で平方根(sqrt)の対応表を出力しなさい.小数点の刻みを0.01とすること.
[3] 環境
[3.1] OS:Windows/Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 4/22
0202デフォルトの名無しさん
2008/04/21(月) 13:45:07#include <math.h>
int main(void)
{
double a;
for(a=0; a<10; a+=0.01) printf("√%.2f = %f\n", a, sqrt(a));
return 0;
}
って書くと減点されるんだろうな。
0203デフォルトの名無しさん
2008/04/21(月) 14:56:39負の方が表示されないからな。
>>201
#include <stdio.h>
#include <math.h>
int main()
{
int i;
for(i=0;i<1000;i++)
printf("√%.2f = %f, -%f\n",i/100.0,sqrt(i/100.0),sqrt(i/100.0));
return 0;
}
0204デフォルトの名無しさん
2008/04/21(月) 15:03:24負?フッ
0205デフォルトの名無しさん
2008/04/21(月) 15:25:350206182
2008/04/21(月) 15:30:31作成ありがとうございます。
先生に出したら一つめの方がやり直し、二つ目は「同時に表示できてないな(藁」
とあっさり×&デコピンを頂戴致しました(泣
文字列と小数を同時ディスカ・・・orz
0207デフォルトの名無しさん
2008/04/21(月) 15:35:030208デフォルトの名無しさん
2008/04/21(月) 15:35:07#include <stdio.h>
struct hoge{
char str[100];
double value;
};
int main(void){
struct hoge foo;
scanf("%s", foo.str);
scanf("%lf", &foo.value);
printf("%s%.2f\n", foo.str, foo.value);
return 0;
}
0209デフォルトの名無しさん
2008/04/21(月) 15:42:370210デフォルトの名無しさん
2008/04/21(月) 15:52:59>>194 は同時に表示するはずだが…
0211デフォルトの名無しさん
2008/04/21(月) 17:23:33変数3つ使ってるじゃん
0212デフォルトの名無しさん
2008/04/21(月) 17:24:59三つってどれ?
0213デフォルトの名無しさん
2008/04/21(月) 19:46:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6296.c
要望どおりに変更してみたが、ちゃんとチェックしてないので手痛いミスがあるかもしれん
>>あとオーバーフローチェックのところのLLONG_MAXが使用されてなく
>>エラーが出てしまいます
いまんいち意味がわからない
コンパイルできないなら、その部分削除したらいいよ
ためしにカッコつけて入れてみただけだから
0214デフォルトの名無しさん
2008/04/21(月) 19:50:32char
double
struct hoge
0215デフォルトの名無しさん
2008/04/21(月) 20:12:550216154
2008/04/21(月) 20:13:52当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6298.txt
プログラミングにあたっては、次を参照しました。
http://ja.wikipedia.org/wiki/%E9%96%8B%E5%B9%B3%E6%B3%95
この説明にそって書いたのですが、どうやらわかりにくくなってしまったようです。
>>159
>ここ、宿題スレ。
#これは失礼。では宿題をときながらではいかが?
>getchar() が使われているんだが???
#たしかに getchar() の返り値を int で受けていない、EOF をチェックしてない、など些細ですがまずいところはありますね。
>>197
>どのファイルにはファイルの終わりを意味するEOFコードが記録されていますし
#いいえ、記録しておく必要はありませんし記録していません。
#>>139 の記述がおおむね正しいのです。
>>200
>いちいち蒸し返すなよ
#ごめんなさい。宿題解きながらということで、ご勘弁ください。
0217デフォルトの名無しさん
2008/04/21(月) 20:18:12バカか・・・んじゃどうしてプログラムはEOFを検出して動作したんだ?ん?
お前は入力は 印字可能な文字 のみだと思ってんの?w
コンピュータ、電子計算機がやっている基本だよ、入出力って。
その中に人間が決めた定義、その中にEOFも改行コードなども
印字不可能でも存在するデータがあるんだがw
いい加減失せろ、ナンバーサインバカw
0218デフォルトの名無しさん
2008/04/21(月) 20:19:010219デフォルトの名無しさん
2008/04/21(月) 20:20:18普通にEOFの入力が可能です、ありがとうございました。
0220デフォルトの名無しさん
2008/04/21(月) 20:22:510221デフォルトの名無しさん
2008/04/21(月) 20:24:030222デフォルトの名無しさん
2008/04/21(月) 21:27:20[2] 問題文:http://jubilo.cis.ibaraki.ac.jp/~isemba/PROGRAM/CPROG/214.pdf
6.課題を全て
[3] 環境
[3.1] OS:Windows
[3.3] 言語:C
[4] 期限:4月27日まで
[5] 問題のプログラムの赤枠を埋める感じでお願いします。
どなたかよろしくお願いします。
0223デフォルトの名無しさん
2008/04/21(月) 21:40:100224デフォルトの名無しさん
2008/04/21(月) 22:22:31[2] 問題文:OSにおけるセキュリティーホールを検出するプログラムを作成せよ
[3] 環境
[3.1] OS:Windows
[3.3] 言語:C
[4] 期限:4月27日まで
[5] セキュリティーホールが発見された場合は自動で修正するように
機能を付けること
0225デフォルトの名無しさん
2008/04/21(月) 22:31:510226デフォルトの名無しさん
2008/04/21(月) 23:03:200227デフォルトの名無しさん
2008/04/21(月) 23:05:39int main(void)
{
int a = 5, b = 3;
double d;
d =(int)(((double)a / b) + 0.5));
printf("%f\n", d);
return 0;
}
これで何故かエラーがでるんですがどこがおかしいのでしょうか?
0229デフォルトの名無しさん
2008/04/21(月) 23:10:51VIPで聞けばいいじゃん
あとどんなエラーが出てるのか位書かないと答えようが無い
まあどうせ)とかだろうけど
0230デフォルトの名無しさん
2008/04/21(月) 23:11:18) が一個余分
0231デフォルトの名無しさん
2008/04/21(月) 23:12:210232デフォルトの名無しさん
2008/04/21(月) 23:37:24じゃあ次は>>191を提出してみましょう
0233デフォルトの名無しさん
2008/04/21(月) 23:42:01[2] 問題文
サイコロのプログラムをつくりなさい
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: borland C++ 5.5.1 for win
[3.3] 言語: C++
[4]特になし、長いので分けて書きます。
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
Class Dice{
int face;
int value;
public:
Dice(int f)
{
face=f;
srand((unsigned)time(NULL));
value=rand()%face+1;
}
Dice()
{
face=6;
srand((unsigned)time(NULL));
value=rand()%face+1;
}
0234デフォルトの名無しさん
2008/04/21(月) 23:45:11void throwDice()
{
srand((unsigned)time(NULL));
value=rand()%face+1;
}
int read()
{
return value;
}
}
int main()
{
Dice d6;
Dice d10(10);
d6.throwDice(6);
d10.throwDice();
cout<<"6面体の目:"<<d6.read()<<endl;
cout<<"10面体の目:"<<d10.read()<<endl;
return 0;
}
エラー2141 dice2.cpp5:宣言の構文エラーとでます
ソースの問題でしょうか?
お願いします
0235デフォルトの名無しさん
2008/04/21(月) 23:48:31Classじゃなくてclass
小文字だよ。
0236デフォルトの名無しさん
2008/04/22(火) 00:04:220237デフォルトの名無しさん
2008/04/22(火) 00:07:19さらに言えば、コンストラクタでもsrandしないほうがいい。
mainで1回だけやればいい。
0238デフォルトの名無しさん
2008/04/22(火) 00:11:39その平均(double)を
画面に出力するプログラムです
また5つの引数を受け取り,
平均を返す関数mean_calc5(・・・)
を呼び出し,返された平均値をmain関数で画面出力すること
C言語です お願いします
0239デフォルトの名無しさん
2008/04/22(火) 00:16:12>1
0240デフォルトの名無しさん
2008/04/22(火) 00:16:23ありがとうございます。
またうっかりミスです。
>>236
>>237
ご指摘ありがとうございます。
<問題>の部分で省略したのですが
オブジェクト指向で
物体としてのサイコロをプログラムで作りなさいという項目
があったので、あえてコンストラクタでsrandをいれました。
実際のサイコロも置いた瞬間に目がででいるという事だそうです
0241デフォルトの名無しさん
2008/04/22(火) 00:19:27当方で確認した環境は WindowsXP, 処理系はcygwin(gcc 3.4.4) です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6299.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6300.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6301.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6303.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6304.txt
最後の2つは、私は出題者の狙いをはっきりとは汲み取ることができませんでしたので、もしかするとはずれているかもしれないこと、ご容赦ください。
>>217
>その中にEOFも改行コードなども印字不可能でも存在するデータがあるんだが
##では、実際にファイルを覗いて見てください。
##1) すべてのファイルに共通の EOF がありますか?
##2) あなたの環境の include\stdio.h にある EOF はどう define されていますか?それがすべてのファイルの末尾におかれていますか?
##私の環境では #define EOF (-1) ですが、すべてのファイルの末尾 1 バイトが -1 = 0xffというわけではありません。
##3) ^D や ^Z の値が -1 なのでしょうか?
>>198
>freadが指定したFILEストリームから指定したポインタへ取り込まないという性質についてだろ?
##getchar()≒getc(stdin) or fgetc(stdin) ですから、getchar() も fread() と同じくストリームを見ています。stdin だろうとファイルだろうと同じことなんですが。
##で、>>154 で示したとおり、stdin には EOF は格納されていません。
>>220
##リダイレクトに関係する関数, pipe() や dup() あるいは dup2() (POSIX) は fd です。今はCライブラリ関数の fp を問題にしています。
>>218
>蒸し返すな
##宿題を解きながら、ですのでご勘弁を。
0242デフォルトの名無しさん
2008/04/22(火) 00:24:120244デフォルトの名無しさん
2008/04/22(火) 00:30:42は乱数関数の"初期化"だ
乱数関数を実行して値を取得するのが
>実際のサイコロも置いた瞬間に目がででいる
という事だ
0245デフォルトの名無しさん
2008/04/22(火) 01:18:48#include <stdio.h>
void Main( int* data, int num )
{
int i;
for( i = 0 ; i < num ; i ++ )
{
printf( "値%d:", i+1 );
scanf( "%d", data+i );
}
}
double mean_calc5( int v0, int v1, int v2, int v3, int v4 )
{
return ((double)v0 + v1 + v2 + v3 + v4) / 5;
}
int main()
{
int data[5];
Main( data, 5 );
printf( "平均値=%f\n", mean_calc5( data[0], data[1], data[2], data[3], data[4] ) );
return 0;
}
0246デフォルトの名無しさん
2008/04/22(火) 02:16:19146が認めればすむだけのことに思える。
ちなみに、DOSやCP/Mには、テキストファイルの終わりに0x1Aの1バイトを置く風習があった。
http://support.microsoft.com/kb/405482/ja
DOSでのC処理系の実装では、テキストモードでファイルを読み取るとき、
0x1Aが現れたら(後ろにまだデータがあっても)ファイルの終わりとし、
getcでEOF(もちろん値は-1)を返したり、fgetsでNULLを返すという風にしていた。
(もちろんバイナリモードではやらない)
標準入力からも、Ctrl+Zで0x1Aを入力可能で、あとはファイルの場合と同じ。
そして、Windowsでは、ファイルに0x1Aを置く習慣も廃れ、
また、コンソール(標準入力)でのCtrl+Zは、0x1Aの入力ではなく、
OSがストリームの終わりに達したという扱いに変換するようになっているというのは
Win32コンソールを触ったことがあれば想像の通り。
0247デフォルトの名無しさん
2008/04/22(火) 02:42:060248デフォルトの名無しさん
2008/04/22(火) 06:04:25入力 の意味を理解してから出直せ、ボケ初心者
0249デフォルトの名無しさん
2008/04/22(火) 06:09:41おまえが考えてる入力の意味ってなに?
0250デフォルトの名無しさん
2008/04/22(火) 06:17:08自分で調べろよw 基本はデータを読み込む、取り込む。それが文字だろうと数値データだろうと
デジタル機器においては、入出力されるデータは全て数値データ、もっと追求すると
2進法で記録された0と1の組み合わせだよ。その0と1の組み合わせを人間が都合よく
解釈、理解できるように実装されたコンピュータで扱いっているが、EOFが値として
どのように定義されていうと思う?-1と記されて言る資料がほとんどだろ?
EOFがファイルの終わりというのは、人間が都合よく定義した決まりごとであって
所詮は数値データに過ぎないんだよ、これくらい大学に通った奴なら普通に分かるw
っつか、お前はナンバーサインじゃないだろ?何そんな知ったかの肩を持って
このスレにこんな時間まで粘着して、自分の無知を晒してんの?w
0251デフォルトの名無しさん
2008/04/22(火) 06:22:05EOFの入力は可能です、ありがとうございました。
この粘着はgetcharやfread、fgetc、fgetsなどの ライブラリ の動作について
いちいち話をするが、それらがプログラムの動作において EOF を検出して
どう動作するかについて話をしているが、完全に思い違い。
指定したポインタ、変数へ格納するかどうか?についても話をしているんだろうけど
EOF、すなわちファイルの終わり、それを検出してファイルに書き出す、あるいは
ファイルを読み込んでいるという基本的な処理の例があるにもかかわらず
まだ EOF が入力されないという大ボケをかますプログラマ以前に
コンピュータを扱う技術者としては相応しくない知ったか。いるよな、こういう
聞き分けのない、自分が思ったことをいつまでも相手に理解してもらおうという奴。
完全に筋の通る理論で論破されているのにw
ちなみに、標準入力からはキーボードによる入力でも可能だし、リダイレクトや指定の
ライブラリによるファイルの読みは可能。誰かさん、墓穴を掘ったがファイルの終わりが
全てのファイルにあるのか?って突っ込み、痛すぎ・・・原則として、ファイルの終わりを
示すコードは存在するよw 存在しない例外とも言えるファイルを持ち出そうと必死になるが
本題を崩すなよ。
EOFが入力されるかどうか?についてだろ。すでに昔から存在する事実を
何をいまさら、かじり始めた青二才が必死に反論してんだ?????
頼むからこんなところに来る、自分に反論する人だけに対して
わけのわからん理論で反論せんで、大学の教授にでも質問しろよw
ちなみに、自分は通っていた大学には東大、京大卒の教授が何人もいましたよ。
0252249
2008/04/22(火) 06:24:37EOFに関して>>246>>250ともおかしなこと言ってる訳じゃないのに
議論がかみ合わないのは不思議だと思いますた
0253デフォルトの名無しさん
2008/04/22(火) 06:37:24ttp://yougo.ascii.jp/gh/65/006526.html
初心者は用語集でも見てろってw
こういう視野の狭い奴って、自分にとっての入力はこうだって話を始めて
広義を無視して異例でも話をしようとするから困る。あれだろ、路上じゃ
違反者がいれば自分もその違反をしても、自分だけしか取り締まらない
警察にいちゃもんをつける奴w ほかにもいるから取り締まれ、そうでなきゃ
警察は怠惰だとか当り散らすんだろw ちゃんと最初から基本ルールを守れよ、理解しろよw
これ以上は、汎用電子計算機の基本的な仕組みを学ばずに、コードを記述して
プログラムを作っただけで知ったような口を聞いている奴らは放置な。
後ナンバーサインはマジで無視しとけ。こんな奴がもし講師だったら、
とんでもない学校だ。生徒だってことで。
EOFが入力されなかったら、どうやってEOFを検出してファイルの読み込みを
やめたのか、説明せよw 以上終了とか言ったら、もう学校を辞めて
今からでも進路を変更しろ。人生を大きく左右するぞ、いい加減な人生の
舵取りは。
0254249
2008/04/22(火) 06:41:57> やめたのか、説明せよw
http://ja.wikipedia.org/wiki/End_Of_File
ところでナンバーサインって何?
0255デフォルトの名無しさん
2008/04/22(火) 06:48:52表現が可能な機能を実装したコンピュータで展開していうんであって、所詮はどれも
数値データだよ。今こうやって文字を入力していうが、それも元を正せば、人間が
文字として解釈できる形に、使用している環境の文字コード体系に応じて
文字として見えるだけだよ。所詮、数値データ。EOFだけ何か特別扱いせんでも・・・
まさか、それらのデータが最初から色がついている、文字の形をしている、音声として
存在しているとでも思ったの?ファイルのダンプくらい、プログラムの授業でもやらんのか?
教本にも普通に載っているぞ、そんなの。
0256249
2008/04/22(火) 06:56:43おれ国語の読解力あんまいい方じゃないんで確認なんだけど、
これおれに対するレスじゃないよね?
>>253へのレスなら納得なんだけど
0257デフォルトの名無しさん
2008/04/22(火) 07:53:21行頭の'#'のことでしょ。尤も、>253の言う「ナンバーサイン」氏こと>139、>144と>216、>246では使い方が違う罠。
どうやら、「ナンバーサイン」氏は特定個人ではなく、>253の脳内にのみ存在している抽象人格のようだ。
0258デフォルトの名無しさん
2008/04/22(火) 09:12:23認識、管理してんだよ・・・どこのIT土方の意見だ、EOFが入力できない
なんて言っている奴は?所属、肩書きを示してみろ?
0259デフォルトの名無しさん
2008/04/22(火) 09:23:45勝手に入れるもんだと思ってるんだけど。
いちいちアプリ実装者が最後にEOF書く必要が無い、
ということは普通fread()(あんま使ったことないからしらんけど)などで
EOFを検出する必要もない(=fread()内で勝手に止めるからでEOFを受け取ることはできない)
ってことなんじゃないの?
たかだかその程度で何を荒れとるのかと思ったのでw
0260デフォルトの名無しさん
2008/04/22(火) 09:38:18今時、ファイルシステムはファイルの大きさをバイト単位で持っており、
その場合はファイル上に必ずしもEOFが実在する必要はない。
たからEOF入力なんて存在しないなどというつもりはないけど気になったので。
0261249
2008/04/22(火) 09:56:14windows系ファイルシステムは知らないけど、Linuxのext3ではEOFなんて
全く関知してないと思う(たぶんwindowsも)。
getchar()などでEOFが返ってくるのは、ライブラリ(libc)がopenされたファイルの終了を検知してるから。
ライブラリ側がEOFの面倒を見てくれるので、アプリ開発者はライブラリ提供のヘッダファイルをincludeすれば問題ないです。
もし、OSがEOFを管理してて個々のアプリがEOFをハンドルしなければならないなら、
アプリ毎にOSのヘッダをincludeしなければならないんじゃないかな。
0262デフォルトの名無しさん
2008/04/22(火) 10:02:280263249
2008/04/22(火) 10:02:35> getchar()などでEOFが返ってくるのは、ライブラリ(libc)がopenされたファイルの終了を検知してるから。
自己レスです。
ファイルの終了と言うのはファイル自身にEOFコードが存在するという意味ではないです。
バイナリエディタでファイルの途中に0xFFを書き込んでも、int c; while ((c = getchar()) != EOF) してる限り、
途中の0xFFはスルーされるはずです。
char c; while ((c = getchar()) != EOF) だと途中の0xFFが当然のことながら、EOFになりますね。
0264デフォルトの名無しさん
2008/04/22(火) 10:53:07[2]3つのポインタ型変数と3つの変数が
char c, *pc;
int i, *pi;
double d, *pd;
と定義され、
pc = &c;
pi = &i;
pd = &d;
と初期化されたポインタに対して
pc++; pi++; pd++;
加算したときに,格納されている値が(つまり格納しているアドレスが) 何バイト増えたか表示するプログラムを作成せよ.
[3.1]問わず
[3.2]borland
[3.3]C
[4]4/23
お願いしますm(._.)m
0265デフォルトの名無しさん
2008/04/22(火) 11:40:030266デフォルトの名無しさん
2008/04/22(火) 12:02:52EOFの入力がプログラムへ可能か?って話は
可能だって結論が出てんだろが。何他人を装って
分が悪くなるとうざってぇみたいなことを言ってんだ?
お前がEOFの入力が出来ないと食い下がってきたんだろが。
0267デフォルトの名無しさん
2008/04/22(火) 12:25:23Win = EOFが入力できない
というわけで
Linux > 越えられない壁 >>>>>>>>>>>>>>>>>> Win
てことだ
0268デフォルトの名無しさん
2008/04/22(火) 13:19:09標準入力からEOFをいれる方法
Linux Ctrl+D
Windows Ctrl+Z
0269デフォルトの名無しさん
2008/04/22(火) 13:33:14Wordでそれをやってみろ。
ドザは知識がなさすぎる。
0270デフォルトの名無しさん
2008/04/22(火) 13:41:14標準入力からって書いてあるだろう。
0271デフォルトの名無しさん
2008/04/22(火) 13:46:48できないと思ってるのかw
0272デフォルトの名無しさん
2008/04/22(火) 13:54:230273デフォルトの名無しさん
2008/04/22(火) 13:59:29windowsユーザーを馬鹿にしたくなる年頃なんだろう。
煩わしいコマンドをターミナルに打ち込んで「俺玄人wwwwwwうはwwwww」とか本気で思ってそう。
0274デフォルトの名無しさん
2008/04/22(火) 14:11:30俺は大学でUNIXは普通に使ってたよ。ってか、使えないと授業にならねーし。
0275デフォルトの名無しさん
2008/04/22(火) 14:50:530276デフォルトの名無しさん
2008/04/22(火) 14:57:340277デフォルトの名無しさん
2008/04/22(火) 15:01:480278デフォルトの名無しさん
2008/04/22(火) 15:13:17今はほとんどファイルシステムで管理してるでしょ
0279デフォルトの名無しさん
2008/04/22(火) 15:16:21入力されることがあるかないか?ナンバーサインがズレてんのは
getcharとfreadのライブラリの性質に話を持ち込んで、キーボードからの
EOF入力さえも否定したから悪いんだよw
普通にEOF入力なんてあるわ、とっくの昔からw
0280デフォルトの名無しさん
2008/04/22(火) 15:19:440281デフォルトの名無しさん
2008/04/22(火) 15:20:570282デフォルトの名無しさん
2008/04/22(火) 15:32:170283デフォルトの名無しさん
2008/04/22(火) 15:38:17よろしくお願いします。
0284249
2008/04/22(火) 15:45:10キーボードから直接EOFコードを入力できると言ってるように聞こえるので一言。
もし、そうじゃなかったらごめん。
アプリがライブラリのgetchar()を呼ぶと、kernelはユーザーの入力待ちになる。
ユーザーがたとえば "test string^D" を入力すると、kernelは^Dを入力の終了と判断し、
ライブラリに "test string" を返す。アプリはライブラリからそれを一文字ずつ取り出して使う。
もしここで "test string" を入力せず、単に^Dだけ入力した場合、kernelは\0をライブラリに返す。
ライブラリは入力がなかったという意味でEOFをアプリに返す。
要は、EOFはもうそれ以上入力がないということを示す、
ライブラリとそれを利用するアプリの取り決めになっています。
0285デフォルトの名無しさん
2008/04/22(火) 15:50:460286デフォルトの名無しさん
2008/04/22(火) 15:54:26便宜上出力で指定する場合に \n や \t など、印字可能な文字で代用しているものがある。
所詮テキストファイルにしても、バイナリーデータにしても数値データの塊に過ぎない。
バイナリに関しては、変数の型を指定することで、数値データを適切にプログラムが
解釈するようにコードを記述する際に宣言をしている。
0287デフォルトの名無しさん
2008/04/22(火) 16:31:03C/C++でEOFは「もうそれ以上入力がない」という意味では「ない」。
アフォはひたすらクリックしてればいいんだよ。
妄想披露スンナ。
これだからドザは(ry
0288デフォルトの名無しさん
2008/04/22(火) 16:35:12> もうそれ以上入力がない
いつ誰がそんなことを言ったんだよ?w お前こそ黙っとれw
0289デフォルトの名無しさん
2008/04/22(火) 16:37:39掲示板でどうやって言うんだよ。
ドザは駄目だな。
0290デフォルトの名無しさん
2008/04/22(火) 16:38:595時間悩んでも出来ませんでした。よろしくお願いします。
0291249
2008/04/22(火) 16:43:49「もうそれ以上入力がない」というのは語弊があるかもしれないですね。
アプリがgetchar()で次の文字を取りに行ったとき、入力がなかったときライブラリがEOFを返します。
以下、ちょっと補足。
Linuxの場合、端末から入力された^Dは、kernelでは16進の0x04になります。
で、ライブラリに返すときこれを\0で上書きします。
^Dは入力の終了を示すものであり、EOFではないです。
興味ある人は drivers/char/n_tty.c とかglibcのソースを見るといいです。
0292デフォルトの名無しさん
2008/04/22(火) 16:45:280293デフォルトの名無しさん
2008/04/22(火) 16:49:40アフォか。
規格書読め。
これだからドザは。
0294デフォルトの名無しさん
2008/04/22(火) 16:51:31#include <stdio.h>
void f(int *p, int n) { while(n--) p[n] = p[n] * p[n]; }
int main(void)
{
int a[10], i;
for(i=0; i<10; i++) a[i] = i + 1;
f(a, 10);
for(i=0; i<10; i++) printf("%d ", a[i]);
return 0;
}
0295デフォルトの名無しさん
2008/04/22(火) 16:52:36粘着しているのかw お前が黙ってりゃ一番解決するんだよ。
スレ板読めや、基地外。自分にとってそれはこういう意味ですとか
このように解釈しました、そう解釈した理由を こじつけ で勝手に作るなよw
お前はISO関係者か?コンピュータの設計者か?これらはすべて
国際的に決められた標準化に基づいて構成されてんだよ。
思い違いを正当化するために、自分の知識の貧弱さを露呈しなくて良いから
黙ってろや、どこぞの学校の講師か知らんが、貴様の元では学びたくないな。
生徒だったらどんな講師に学んだんだと?w
0296デフォルトの名無しさん
2008/04/22(火) 16:55:36int main(void)
{
char ch;
while( ( ch=getchar() ) != EOF );
printf("%d %c / EOF : %d %c ",ch,ch,EOF,EOF);
return 0;
}
これをコンパイルして、Ctlr-zでEOFを検出させてみろw
そしてEOFとして定義されているマクロの値を調べてみましょう。
EOFが入力されたことが一目瞭然です、ありがとうございました。
さてと、これ以上は無駄なんで、以後放置よろ。
0297デフォルトの名無しさん
2008/04/22(火) 16:58:56はい0点
0298デフォルトの名無しさん
2008/04/22(火) 17:02:33>>296 のプログラムにリダイレクトでファイルを入力させてみろ。
ほれ、やっぱりEOF、ファイルの終わりを検出して終了し、そのときのコード、値と
EOFが一致しました、本当に、本当に、重ね重ね、ありがとうございますた!
0299デフォルトの名無しさん
2008/04/22(火) 17:03:45少なくとも変数 ch は int 型でないといけない
0300デフォルトの名無しさん
2008/04/22(火) 17:07:05どうもありがとうございます!!
0301249
2008/04/22(火) 17:07:17Cの規格書JISX3010ちらっと見てみたけど、7.19.1にこう書いてありました。
「EOFは、ファイルの終わり(end-of-file)、すなわちストリームからもうそれ以上の入力
がないことを示すために、幾つかの関数から返される、」
0302デフォルトの名無しさん
2008/04/22(火) 17:07:28標準入力で人間がキーボードから行う入力と言えば文字データが思い浮かぶが
プログラムへのデータの入力は、文字だろうと所詮デジタルデータ、
数値データに過ぎんのだよ。それが使用している環境の
文字コード体系で印字可能な文字は視覚的に見えるんであって
バイナリーデータのような数値データの塊でも、入力できるんだよ。
そしてEOFも。なんでEOFが入力できないのか、もう説明しなくて良い。
とっくの昔からEOFの入力なんてされてたんだよ、当たり前のように。
でなきゃ、プログラムはどうやってファイルの終わりを認識してたのだね?ん?
怒らないから、そんな秘密の情報があるなら、おいちゃんの耳元でそぉ〜っと言ってごらん?
0303デフォルトの名無しさん
2008/04/22(火) 17:07:350点。
規格書読め。
0304デフォルトの名無しさん
2008/04/22(火) 17:09:57アフォか。
エラーを示すために-1を返す関数が一つ以上あれば、-1はエラーか。
ドザはほんとに駄目だな。
0305デフォルトの名無しさん
2008/04/22(火) 17:10:27はぁ?なんで?1バイトずつ読み込まないでどうすんだ???
お前、もしかして・・・変数の型を誤解してないか?wwww
0306デフォルトの名無しさん
2008/04/22(火) 17:12:01−100点。お前が説明しろ、ボケ低レベルへたれプログラマーwwwwww
東大、京大卒の教授の元で指導を受けた俺と、それ未満の講師に
コードの入力だけ教わったお前とは格が違いすぎ。
説明と言う説明がお前は出来てないだろ、目の前にあるものの
来本部部は同じだと言うのにw
0307デフォルトの名無しさん
2008/04/22(火) 17:14:16EOF != 0xFF
おk?
0308デフォルトの名無しさん
2008/04/22(火) 17:15:36>>296
少なくとも変数 ch は int 型でないといけない
↑このアフォーの思い違いを説明せよ 配点-100点wwww
では >>296 のコードを
int ch;
に変更して実行してみましょう。あららっ!?結果は同じ -1 が検出されましたwwwww
だから何について説明しているか分からない低レベルは黙ってろって。
お前らとは使用していた施設のレベルからして違うんだよ!
大学にあった施設は企業レベル、いやそれ以上。だからお前らとは
見てきたものが違い過ぎるんだよwwwww
0309デフォルトの名無しさん
2008/04/22(火) 17:18:30-1なんて1bitでも表現できんだよ!char型は1バイト、すなわち標準的な環境では
8bitなので、十分EOFの検出は可能です、ありがとうございましたwwww
そもそも、ACSIIコードとShift-JISの仕組みが分かっていれば、下らない突っ込みなんてしねーよ。
全角で2バイト必要な文字は、それに応じた文字コードが割り振られてんだがw
お前、Shift-JISで日本語の全角文字をすべて表示するコードを書いてみろや!
結局、そんなものは基本の拡張に過ぎないと気づくからw
んで、EOFが入力できない説明をしてくれよ。俺はそれを求めてんだが?
0310デフォルトの名無しさん
2008/04/22(火) 17:18:310311デフォルトの名無しさん
2008/04/22(火) 17:19:35> ぷぷっ、こいつ、EOFが int 型だと
規格書読めよ。
0312デフォルトの名無しさん
2008/04/22(火) 17:21:21Cには、データベースなんかで見かけるNull値ありの型がないから、
getcharなどはNull値相当をEOFに割り当てて、
Null値ありcharをただのintで代用しているという考え方が近いと思う。
0313デフォルトの名無しさん
2008/04/22(火) 17:23:21まぁ、これは大学でやった実験では普通に扱いましたよ、論理回路も含めて。
なんで変数の型に、敢えて unsigned があると思ってんの?
8bitで扱える値の幅、パターンの数、負の値がどのように記録されているかも
C言語でもコードを書いて調べることが出来るんだがねぇ。
んで、EOFが入力できない説明を求む。それ以外の御託はいらねー
0314デフォルトの名無しさん
2008/04/22(火) 17:27:12-1単体は1ビットでも区別可能だけど、
ここでは、(unsigned) charの値と区別できないといけないから、
charよりビット数の多い(はずの)intなんだろ。
0315デフォルトの名無しさん
2008/04/22(火) 17:28:43先生の教えに背いて教えてやってもいいんだが、完全にお前の理屈を否定することになるぞ。
どうやらここにはドザしかいないようだから、味方してやってもいいんだが?
0316デフォルトの名無しさん
2008/04/22(火) 17:32:37困っています。よろしくお願いします。
Windows
gcc
C
です。
0317デフォルトの名無しさん
2008/04/22(火) 17:37:290318249
2008/04/22(火) 17:48:49これ実行すると、ファイルの終了に達していなくても、ファイルの途中にたまたま0xFFが現れたら
そこでwhileループ抜けるよね。
> ほれ、やっぱりEOF、ファイルの終わりを検出して終了し、
whileループを抜けたのはファイルの終わりを検出したわけではないです。
0319デフォルトの名無しさん
2008/04/22(火) 17:50:150320デフォルトの名無しさん
2008/04/22(火) 17:54:41所詮、文字コードでしかプログラムの意味が分からんのだろ。
高度でもない、当たり前なことを知っている人は、”汎用”電子計算機に対して
制御を行うコードを書いているという、当たり前な頭はあるんだよ。
そんなの大学に通わなくても、それ関連の仕事をしている人は
当たり前に見ている。人間なんて、所詮見た目が良かろうが
DNAによって動物細胞の塊が人それぞれ違った形に形成されていると
医療関係に属する人が知っているように。萌え〜なんていっている奴は、
2次元にしろ3次元にしろ、そういう人達から見ると不思議に思えるんだろうね。
だって、所詮動物細胞、0と1の組み合わせのデジタルデータなんだもの、みつを。
0321デフォルトの名無しさん
2008/04/22(火) 17:54:52jpegファイルはいきなり0xFFで始まるんですが、読み込めないということですか?わかりません><
0322デフォルトの名無しさん
2008/04/22(火) 18:01:55最後おちゃらけて見せて、興奮を隠そうとしなくてもいいよ
わかるわかる
0323デフォルトの名無しさん
2008/04/22(火) 18:10:280324デフォルトの名無しさん
2008/04/22(火) 18:11:110325デフォルトの名無しさん
2008/04/22(火) 18:33:29事項を示さないアホは何?w 自分が言いたいこと、思ったことを
相手に理解してもらえないって言っているだけじゃん。お前が言いたいことがあるなら
具体的に示せよ、低レベル講師め。お前んとこの学校はどこだ?
通報しておいてやるよ、EOFが入力できないなんていい加減なことを、
ありもしない規格書を持ち出して事実を捻じ曲げているとw
頼むから大学レベル未満のお前、EOFが入力されないという
話が拗れた根本の説明をしてみろや?どうやってEOFを検出して
終了するコードが実行されたのか、摩訶不思議アドベンチャーで
ゴクウも界王拳をスーパーサイヤ人になってからお前にお見舞いするだろうよw
0326デフォルトの名無しさん
2008/04/22(火) 18:38:44面白い記事が見つかりましたよ、ほらw
お前が勘違いしていたEOFが特殊な文字コードってやつ、
所詮は人間が勝手に 定義 した数値に過ぎないということがはっきりしただろ?
俺はEOFがファイルの終わりを示すとは一言も言っていないんだよw
何度も言っただろ?文字を入力したとしても所詮は 数値データ に過ぎないと。
プログラムが、コンピュータがそれを認識するために 人間が定義した に過ぎないと。
人間が好き勝手にルールを決めてしまうと、世界で共通ではなくなり
インターネットの世界でも混乱が起こるんだよ。ウェブページだって
規格が違ってブラウザが国ごとによって違ってたら面倒だろ?
規格書とか言うお前、お前はISOの内容は知っているようだが
標準化の意味は理解していなかったようだな。所詮それも
人間が定義 したに過ぎないということを。
0327デフォルトの名無しさん
2008/04/22(火) 18:45:33結局は4バイト分のデータを1つの変数として取得して扱っているからだよ。
誰だよ、EOF != 0xFF なんて話をしたのは?俺はそんなこと一言もいってないよw
EOF にはしっかりと -1 と定義されているとは言ったが。なんで8ビットのみで話が進んでるの???
だから俺は、人間が勝手に数値の前にマイナス - という符号を付けて
表現したものではなく、2進数において 負の値をどのように表現しているか について問い正したんだが?
悪いがこれについては 実験で その詳細を知ることが出来たんでね。
コンピュータを構成している基本部分なんて、単純なもんだよw
0328249
2008/04/22(火) 18:57:07> 俺は
と言われてもお前がどれを書き込んでいて、どれにレスしてるのかわからない。
Ctrl-DやCtrl-Zは単にユーザーが入力の終了を示すだけです。
アプリがgetchar()を発行したとき、ライブラリ側にアプリに渡せる文字がなければEOFを返します。
入力ファイル中に0xFFが含まれていて、それをchar型変数で受ければ
ファイルの途中であっても同じくEOFとして判定されます。
この場合、feof()関数でストリームの終了かどうか判定できると思います。
一応念のため、Cの規格書ならここで見れます。
「http://www.jisc.go.jp/」→「JIS検索」で「X3010」を入力
0329デフォルトの名無しさん
2008/04/22(火) 18:59:20半年ぐらい前までしょっちゅう暴れてたキチガイなんだから。
0330デフォルトの名無しさん
2008/04/22(火) 19:05:40数値や文字として扱うために 変数の型を宣言 したプログラムによって
解釈できるように処理させてんだよぉ。どんなファイル、データにろ
ビット すなわち 2進数の1桁 レベルに話を持ち込めば、0と1の組み合わせの
塊に過ぎんと何度も言っておろうにw
それはともかく、EOFが入力できないという理由を説明してくれ、規格書でw
0331デフォルトの名無しさん
2008/04/22(火) 19:07:21> ユーザーが入力の終了を示すだけ
それを326に言わせればEOFの入力となるんだろ。それくらい察してやれ。
0332249
2008/04/22(火) 19:14:18そうですか、キチガイですか。
そんな気はちらっとしてたんですけどね。
とりあえずいい暇つぶしになったんで、相手してくれてありがとう>キチガイ
彼がこの後何を言ってくるか楽しみにしてますwww
0333デフォルトの名無しさん
2008/04/22(火) 21:02:35自演くさい
0334デフォルトの名無しさん
2008/04/22(火) 21:54:32とりあえず動く程度のものでしかないけど課題1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6306.txt
0335デフォルトの名無しさん
2008/04/22(火) 22:17:54[1] 授業単元: Cプログラミング
[2] 問題文:
�@任意の2ノード間の最短路を求めるアルゴリズムを実行するプログラムを作成せよ。
�A任意の2ノード間の最短最大路を求めるアルゴリズムを実行するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:リンク先のソース(経路選択の部分がない)を使用すること。
また、ソース中のdistance.txtの内容は、
0 1 1
0 3 1
1 2 1
1 3 1
2 4 1
2 5 1
3 4 1
3 7 1
4 5 1
4 7 1
5 6 1
5 8 1
6 8 1
7 8 1
7 9 1
8 9 1
です。よろしくお願いします。
0336デフォルトの名無しさん
2008/04/22(火) 22:33:05もはや何の話を必死にしたいのかさっぱりだな
0337デフォルトの名無しさん
2008/04/22(火) 22:54:19[1] 授業単元:ネットワークプログラミング
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6309.txt
[3] 環境
[3.1] OS: UNIX
[3.2] コンパイラ:gcc
[3.3] 言語: C言語
[4] 期限: 4月25日まで
[5] その他の制限: 特になし
よろしくお願いします。
0338デフォルトの名無しさん
2008/04/22(火) 23:03:35stdoutを別のファイルにするだけじゃね?
0339デフォルトの名無しさん
2008/04/22(火) 23:06:50[2] 問題文(含コード&リンク):自分が今使っている開発環境のコンパイラとリンカのバージョンを調べる
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: CPad for Borland C++Compiler(これでいいのかな?)
[3.3] 言語: C言語
[4] 期限: 4月29日まで
[5] その他の制限:正直大学一年目の後期にさらっとならっただけで、それもだいぶ忘れてます
だから質問の内容がちょっと変かもしれませんが、よろしくお願いします
0340デフォルトの名無しさん
2008/04/22(火) 23:10:07続いて課題2
ところでこれって課題4まで終了した後のソースコードを提出しないといけないの?
だったら俺が細切れに上げてるのは割と意味が無いな
0341340
2008/04/22(火) 23:11:07ミスった
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6310.txt
0342デフォルトの名無しさん
2008/04/22(火) 23:32:10>自分が今使っている開発環境のコンパイラとリンカのバージョンを調べる
スレ違い。
# まさかと思うが、調べるプログラムを作れとは言わんだろうな。
0343デフォルトの名無しさん
2008/04/22(火) 23:35:060344デフォルトの名無しさん
2008/04/22(火) 23:40:14int main (void) {
char c, *pc;
int i, *pi;
double d, *pd;
pc = &c;
pi = &i;
pd = &d;
pc++; pi++; pd++;
printf("pc=%dbyte\npi=%dbyte\npd=%dbyte",
(unsigned int)pc-(unsigned int)&c,
(unsigned int)pi-(unsigned int)&i,
(unsigned int)pd-(unsigned int)&d)
}
0345デフォルトの名無しさん
2008/04/22(火) 23:43:14#include <stdio.h>
static int diff(void * lhs, viod * rhs) {return ((char *) lhs) - ((char *) rhs);}
int main()
{
char c, *pc;
int i, *pi;
double d, *pd;
pc = &c;
pi = &i;
pd = &d;
pc++; pi++; pd++;
printf("%d, %d, %d\n", diff(pc, & c), diff(pi, & i), diff(pd, & d));
return 0;
}
0346デフォルトの名無しさん
2008/04/22(火) 23:44:01課題3
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6311.txt
課題2にミスあり
提出するなら、main関数のreturn 0;の前の行に
fclose(fp);
を追加してくだしあ
0347デフォルトの名無しさん
2008/04/22(火) 23:44:06[2] 問題文(含コード&リンク):(
ファイルbdata.txtには1から1000000までの異なる数が999999個入っている。つまり1から1000000までの数字のうち1つだけない。その数字を見つけなさい。
プログラムは
#include<stdio.h>
#define N 1000000
int main(void){
int min,max,mid;
int count1,count2;
int data,i;
FILE *fp
で始まり、これ以外の変数は使用してはいけない。
また、以下の方法でプログラムを書くこと。
方法)簡単のため。1から100までの数のうち、1つがない場合を例として方法を説明する。もちろん最後まで実行しないとわからないことだが、説明の都合上、存在しない数は48だとする。
(1)ファイルを先頭から最後まで読み、1〜50の数と51〜100の数の個数を数える。
(2)1〜50の数が49個しかないので、求めている数は1〜50の数のどれかである。
(3)ファイルを先頭から最後まで読み、1〜25の数と26〜50の数の個数を数える。
(4)26〜50が24個しかないので、求めている数は26〜50までの数のどれかである。
中略
(5)ファイルを先頭から最後まで読み、48〜49の数と50〜50の数の個数を数える。
(6)48〜49の数が1個しかないので、求めている数は48〜49までの数のどれかである。
(7)ファイルを先頭から最後まで読み、48〜48の数と49〜49の数の個数を数える。
(8)48〜48までの数が0個なので、求めている数は48である。
)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2008年04月23日23:00まで]
[5] その他の制限:
0348デフォルトの名無しさん
2008/04/23(水) 00:18:51#include<stdio.h>
#define N 1000000
int main(void){
int min,max,mid;
int count1,count2;
int data,i;
FILE *fp;
fp=fopen("bdata.txt", "r");
if(fp==NULL) return 1;
count1=0;
while(fscanf(fp, "%d", &data)==1) count1+=data;
fclose(fp);
if(N%2) count2=(N+1)/2*N;
else count2=N/2*(N+1);
printf("%d\n", count2-count1);
return 0;
}
0349デフォルトの名無しさん
2008/04/23(水) 00:28:15>if(N%2) count2=(N+1)/2*N;
>else count2=N/2*(N+1);
は場合分けする必要が無いだろ
答えは出るし効率もいいけど指定された解法じゃない
0350デフォルトの名無しさん
2008/04/23(水) 00:30:17ありがとうございます。
本当に助かりました。
0351デフォルトの名無しさん
2008/04/23(水) 00:40:45解法が違う以外にも、intが32bitじゃ足りないし。
0352348
2008/04/23(水) 00:52:43>>351 >>349 の指摘している場合分けのおかげで正しい答えがでる
#include<stdio.h>
#define N 1000000
int main(void){
int min,max,mid;
int count1,count2;
int data,i;
FILE *fp;
fp=fopen("bdata.txt", "r");
if(fp==NULL) return 1;
min=1; max=N;
while(min<max){
mid=(min+max)/2;
count1=count2=0;
fseek(fp, 0L, SEEK_SET);
for(i=0;i<N-1;i++){
fscanf(fp, "%d", &data);
if(data>=min && data<=max){
if(data<=mid) count1++;
else count2++;
}
}
if(count1<mid-min+1) max=mid;
else min=mid+1;
}
fclose(fp);
printf("%d\n", max);
return 0;
}
0353デフォルトの名無しさん
2008/04/23(水) 00:53:42初心者の私にはソースを読んでも理解できませんでした。
どなたか助けてください。
0354デフォルトの名無しさん
2008/04/23(水) 00:57:090355351
2008/04/23(水) 01:03:00>>353
まず、値の総和を計算している。
1〜Nまで全部揃っているなら、総和はN*(N+1)/2になるはず。
しかし1個だけ値が足りない、総和はその値の分だけ少なくなる。
0356デフォルトの名無しさん
2008/04/23(水) 01:23:20355さんの説明で348のソースを理解できました。ありがとうございます。
352の改訂版のfseek(fp, 0L, SEEK_SET);
のfseek関数を知らないので,ググったらファイルの位置指示子の設定とあったのですが、
この役割をどなたか教えていただけませんか。
また、fseek関数を使わない方法はないのでしょうか。
0357デフォルトの名無しさん
2008/04/23(水) 01:24:42当方の環境はWindowsXP, 処理系はcygwin(gcc 3..4.4) です。
課題 1:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6312.txt
課題 2:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6313.txt
課題 3:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6314.txt
課題 4:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6315.txt
>>346 ですでに回答がありますので、お友達にでも贈ってください。
0358264
2008/04/23(水) 01:31:220359348
2008/04/23(水) 01:33:42#include<stdio.h>
#define N 1000000
int main(void){
int min,max,mid;
int count1,count2;
int data,i;
FILE *fp;
min=1;
max=N;
while(min<max){
mid=(min+max)/2;
count1=count2=0;
fp=fopen("bdata.txt", "r");
if(fp==NULL) return 1;
for(i=0;i<N-1;i++){
fscanf(fp, "%d", &data);
if(data>=min && data<=max){
if(data<=mid) count1++;
else count2++;
}
}
fclose(fp);
if(count1<mid-min+1) max=mid;
else min=mid+1;
}
printf("%d\n", max);
return 0;
}
0360デフォルトの名無しさん
2008/04/23(水) 01:55:39何度もありがとうございます。本当にありがとう。
0361デフォルトの名無しさん
2008/04/23(水) 04:00:39class split { public: char a : 1; char b : 2 ; char c : 5;}
char x[1000];
split *z;
z=&x[10];
z->a;
とすればxの値を部分的に読み取れますか?
0362361
2008/04/23(水) 04:08:450363デフォルトの名無しさん
2008/04/23(水) 05:47:260364デフォルトの名無しさん
2008/04/23(水) 06:42:28int main(void) あるいは int argc , char*argv[] を使ってない
EOFについて噛み付いてきた新入りって何モノ?
初心者、素人臭が漂いすぎ・・・
0365デフォルトの名無しさん
2008/04/23(水) 06:45:230366デフォルトの名無しさん
2008/04/23(水) 06:58:49EOFがキーボードから入力できるかの話だろ
もはや何の話を(ry
0367デフォルトの名無しさん
2008/04/23(水) 07:19:490368デフォルトの名無しさん
2008/04/23(水) 08:01:370369デフォルトの名無しさん
2008/04/23(水) 08:19:08# < これをNGにすると、奴の脳内レスを排除できますw
0370デフォルトの名無しさん
2008/04/23(水) 08:23:20課題2, 課題3, 課題4 では int argc, char*argv[]を使っています。
0371デフォルトの名無しさん
2008/04/23(水) 08:24:27for (j = 0; j < NAME_F - strlen(member[i]->name); j++)
↑ん〜〜〜、ん〜〜〜、やっぱ きんもぉ〜☆
0372デフォルトの名無しさん
2008/04/23(水) 08:29:310373デフォルトの名無しさん
2008/04/23(水) 08:39:510374デフォルトの名無しさん
2008/04/23(水) 08:42:59#defineなど定義などは、上にまとめておいて、管理しやすくするのも良い。
あと・・・毎回 strlen で値を算出してたら、回数が少ない場合は気にならないが
繰り返す上では無駄が生じるよ。だったら、そのために変数を定義して
使った方が良いんじゃない?以上、京大、東大卒の教授の下で指導を受けた元生徒より。
0375316
2008/04/23(水) 09:39:59大変助かりました。
0376デフォルトの名無しさん
2008/04/23(水) 11:33:22そこまで自己主張するならコテ&トリップつければいいのに
0377デフォルトの名無しさん
2008/04/23(水) 11:35:29しつけぇ、お前がトリップつけろ。側NGにしてやるから
0378偽者of京大、東大卒の教授の下で指導を受けた元生徒
2008/04/23(水) 12:03:460379デフォルトの名無しさん
2008/04/23(水) 12:09:00とりあえずお前をNGに追加した、サンクス
0380デフォルトの名無しさん
2008/04/23(水) 12:50:57[2] 問題文(含コード&リンク):
課題1
1、3つのポインタ型変数と3つの変数が
char c, *pc;
int i, *pi;
double d, *pd; と定義され、
pc = &c;
pi = &i;
pd = &d;
と初期化されたポインタに対して
pc++; pi++; pd++;
加算したときに、格納されている値が(つまり格納しているアドレスが)何バイト
増えたか表示するプログラムを作成せよ。
2、完成させたプログラムを実行し、その結果について、3つのポインタ型変数を
それぞれ加算したときの増分されるバイト数が異なる理由を(実行結果を引用してもよい)
説明せよ。
3、適当な配列int a[5]={1,-2,3,4,5};を定義し、その内容をポインタ変数 int *pa; を用いて
表示するプログラムを作成しなさい。
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] 言語:C
[4] 期限: 2008年4月23日22:00まで
[5] その他の制限: なし
0381デフォルトの名無しさん
2008/04/23(水) 16:43:58[2] 問題文(含コード&リンク):
配列のすべての要素の最大公約数を求める関数gcdpを実装し、それを用い入力された10個の最大公約数を表示するプログラムを作りなさい。
[3] 環境
[3.1] MacOSX
[3.2] gcc
[3.3] 言語: C
[4] 期限: 4月25日18:00まで
[5] その他の制限:必ず配列を使うこと。ポインタは習ってないので使わないでください。
0382偽者of京大、東大卒の教授の下で指導を受けた元生徒
2008/04/23(水) 16:51:51#include<stdio.h>
int gcd(int a, int b){
int c;
while((c=a%b)) a=b,b=c;
return b;
}
int gcdp(int arr[], int arrsize){
int i, ret;
ret=arr[0];
for(i=1;i<arrsize;i++) ret=gcd(arr[i], ret);
return ret;
}
int main(void){
int arr[]={60, 70, 80, 90, 25, 100, 10, 75, 30, 35};
printf("%d\n", gcdp(arr, 10));
return 0;
}
0383デフォルトの名無しさん
2008/04/23(水) 17:16:070384偽者of京大、東大卒の教授の下で指導を受けた元生徒
2008/04/23(水) 17:18:42int main(void){
int i, arr[10];
for(i=0;i<10;i++) scanf("%d", &arr[i]);
printf("%d\n", gcdp(arr, 10));
return 0;
}
0385デフォルトの名無しさん
2008/04/23(水) 20:40:37詳細WEBページは5/15開設予定で(www.fx-gp.com)、5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
主催はマネージャパン、月刊アスキー、週刊アスキー、協賛はクリック証券。
ttp://system-trading.jp/news/index.php?ID=39
0386デフォルトの名無しさん
2008/04/23(水) 22:39:29while(fin==0){ /* finフラグが立つまで繰り返す */
/* tmp_nodeを経由する方が距離が小さくなるノードを探して最短距離と前ノード表を更新 */
/* まだ最短距離が確定していないノードの中から次の探索ノードを選ぶ */
tmp_dist = dist[tmp_node];
for(i=0; i < NODE_NUM; ++i){
a = graph[tmp_node][i]; /* tmp_nodeからiまで距離 */
if(a == MAX || tmp_node == i || chk[i] == 1) continue;
b = tmp_dist + a; /* 始点からのtmp_node経由のiまでの距離 */
if(b < dist[i]){
path[i] = tmp_node;
dist[i] = b;
}
}
j = NODE_NUM; /* 未確定ノードの内、始点から最短距離のノード */
c = MAX; /* 始点からの距離 */
for(i=0; i < NODE_NUM; ++i){
if(chk[i] == 1 || dist[i] == MAX) continue;
if(dist[i] < c){
j = i;
c = dist[i];
}
}
if(j != NODE_NUM){
chk[j] = 1;
tmp_node = j;
continue;
}
fin = 1; /* 終点ノードへの最短距離が確定したら終了 */
}
0387デフォルトの名無しさん
2008/04/23(水) 23:40:231.
printf("1byte, 4(or 2)byte, 8byte");
2.
確保するメモリサイズが違う
3.
pa = a;
for(int i = 0; i < sizeof(a); i++)
printf("%d", pa[i])
コード書き始めて期限切れに気付いたからてきとーにしといた
0388デフォルトの名無しさん
2008/04/24(木) 00:23:273番は
pa = a;
for(i = 0;i < sizeof(a)/sizeof(int);i++){
printf("%d",*(p+i));
}
を期待してるんだと思う
0389デフォルトの名無しさん
2008/04/24(木) 00:34:37なるほど。
んじゃ1、2を踏まえて
for(〜)
printf("%d", *pa);
pa++;
ってのもありかな
0390デフォルトの名無しさん
2008/04/24(木) 09:35:48[2] 問題文(含コード&リンク):
不規則な文字列が延々と続いてるファイルを読み込み、main関数から区切る文字または文字列を取得し
区切り毎に2次元配列に格納して格納した回数を戻り値として返す関数を作成せよ。
文字列中に \n があった場合は削除し、
区切りの文字・文字列が連続した場合は配列には \0 を返すものとする。
配列の行数または列数のどちらかを512とする。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C
[4] 期限: 本日午前中
[5] その他制限: strtokを使わないこと
まったくわからんです、お願いします・・・
0391デフォルトの名無しさん
2008/04/24(木) 11:44:530392デフォルトの名無しさん
2008/04/24(木) 11:49:43、^':::::::::::::::::::::::^vィ 、ヽ l / ,
l..:.::::::::::::::::::::::::::::イ = =
|.:::::::::::::::::::::::::::::: | ニ= 元 そ -=
|:r¬‐--─勹:::::| ニ= 生 れ =ニ
|:} __ 、._ `}f'〉n_ =- 徒. で -=
、、 l | /, , ,ヘ}´`'`` `´` |ノ:::|.| ヽ ニ .な. も ニ
.ヽ ´´, ,ゝ|、 、, l|ヽ:ヽヽ } ´r ら ヽ`
.ヽ し き 元 ニ. /|{/ :ヽ -=- ./| |.|:::::| | | ´/小ヽ`
= て っ 生 =ニ /:.:.::ヽ、 \二/ :| |.|:::::| | /
ニ く. と 徒 -= ヽ、:.:::::::ヽ、._、 _,ノ/.:::::| | /|
= れ.何 な -= ヽ、:::::::::\、__/::.z先.:| |' :|
ニ る と ら =ニ | |:::::::::::::::::::::::::::::::::::.|'夂.:Y′ト、
/, : か ヽ、 | |::::::::::::::::::::::::::::::::::::_土_::| '゙, .\
/ ヽ、 | |:::::::::::::::::::::::::::::::::::.|:半:|.ト、 \
/ / 小 \ r¬|ノ::::::::::::::::::::::::::::::::::::::::::::::::| \
0393デフォルトの名無しさん
2008/04/24(木) 11:50:52粘着うぜーw どうせなら元生徒じゃなくて、教授に頼めよw
0394デフォルトの名無しさん
2008/04/24(木) 12:00:07[2] 問題文
整数3つを入力して2番目に大きい値を出力せよ
[3] 環境
[3.1] OS: Windowsxp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: C
[4] 期限: 本日2時まで
[5] その他の制限:
どうかお願いします
0395デフォルトの名無しさん
2008/04/24(木) 12:00:070396デフォルトの名無しさん
2008/04/24(木) 13:13:11きみとほとんど同じくらいの初心者が作ったものでよければ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6319.txt
0397デフォルトの名無しさん
2008/04/24(木) 13:32:24ありがとうございます
間に合いました
0398デフォルトの名無しさん
2008/04/24(木) 13:35:17[2] 問題文 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6321.txt
このヘッダに記載された内容を把握し、ヘッダを使用したプログラムを作成せよ
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: わかりません
[3.3] 言語:C++
[4] 期限: 2008/04/27
[5] その他の制限: 特に制限はありません。C++初心者なのですが、いきなりヘッダファイルのみ渡されて
まず何をすればよいのかすらわからない状況です。よろしくお願いします。
0399デフォルトの名無しさん
2008/04/24(木) 13:51:36こんなの宣言しかないのじゃ誰もできないだろ
他に条件とかファイルとか指定されて無いのか?
それとも各クラスを適当に実装して動作確認しろってことか?
0400デフォルトの名無しさん
2008/04/24(木) 14:00:21恐らくこれを利用して座標、ベクトル、行列の演算を一通り出来るようにしろと言うことだと思います。
課題の出され方が漠然としすぎていて手付かずの状態なので、方針だけでもご教授いただけたら幸です。
0401デフォルトの名無しさん
2008/04/24(木) 15:30:09居残り確定っぽいんですが、参考にしたいので
お時間があったらお願いします。
0402デフォルトの名無しさん
2008/04/24(木) 15:38:42俺のきしょいクソースを見たいとな?ならば見せて進ぜよう、後ほど。
0403デフォルトの名無しさん
2008/04/24(木) 16:24:33になったんで、期待せんでくれ・・・
0404デフォルトの名無しさん
2008/04/24(木) 17:06:00ほんとレス乞食はうぜーな。
0405デフォルトの名無しさん
2008/04/24(木) 17:08:27ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6323.c
0406デフォルトの名無しさん
2008/04/24(木) 17:08:56んじゃあーげないっと、お前も見たけりゃ余計なことを言わなきゃ良いのになw
0407デフォルトの名無しさん
2008/04/24(木) 17:17:31お前のうんこ見なくてすむかと思うとほっとしたよ。
あと、かまって欲しいのわかるけど、いいかげんコテつけてくんない?
速攻NGにするから。
0408デフォルトの名無しさん
2008/04/24(木) 17:18:44必死だなw
0409デフォルトの名無しさん
2008/04/24(木) 17:20:03名前:デフォルトの名無しさん 投稿日:2008/04/22(火) 06:09:41
>>248
おまえが考えてる入力の意味ってなに?
↑こいつうぜー
0410デフォルトの名無しさん
2008/04/24(木) 17:30:520411デフォルトの名無しさん
2008/04/24(木) 17:31:22反論できてねーだろwwwww顔真っ赤すぎて超うけるwwwww
0412390
2008/04/24(木) 17:33:08キャストと配列への格納がうまくいかずお手上げ状態です
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6324.txt
0413デフォルトの名無しさん
2008/04/24(木) 17:43:10もうちょっと速ければ見せてもらえたのに。
元生徒もうへそ曲げちゃったから。。。
0414デフォルトの名無しさん
2008/04/24(木) 17:50:20そいつにレスしているお前も同じだろ・・・お前が 言 う な
0415デフォルトの名無しさん
2008/04/24(木) 17:52:58>>404が痛すぎ・・・
>>413 しつけぇ。所詮お前みたいなカスは妬むだけだろ。
失せろ、答えないくせに粘着する無能
0416デフォルトの名無しさん
2008/04/24(木) 17:57:52>>404
そいつにレスしているお前も同じだろ・・・お前が 言 う な
415 :デフォルトの名無しさん [sage] :2008/04/24(木) 17:52:58
>>83-88のコピペに反応しているお前が言うなレス乞食の
>>404が痛すぎ・・・
>>413 しつけぇ。所詮お前みたいなカスは妬むだけだろ。
失せろ、答えないくせに粘着する無能
顔真っ赤wwwww
0417デフォルトの名無しさん
2008/04/24(木) 18:06:47ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6325.c
0418デフォルトの名無しさん
2008/04/24(木) 18:07:510419デフォルトの名無しさん
2008/04/24(木) 18:13:07設問ちゃんと読んだら?
0420デフォルトの名無しさん
2008/04/24(木) 18:53:23ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6326.c
0421デフォルトの名無しさん
2008/04/24(木) 18:58:32ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6327.c
0422デフォルトの名無しさん
2008/04/24(木) 19:55:4721:00 まで待てますでしょうか?
0423422
2008/04/24(木) 20:57:17当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。
提示されたソースをもとに、考え直してみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6328.txt
0424デフォルトの名無しさん
2008/04/24(木) 20:59:53ソースコード見てないけど納期を守るお前がすばらしい
うちの会社来ないか?
0425デフォルトの名無しさん
2008/04/24(木) 21:24:38[2] 問題文:一覧ファイル(infile.csv)に「グループ名,学籍番号,名前」の順でデータが入っています。学籍番号のみをDATAに格納せよ。
[3] 環境
[3.1] OS: Windows 2000
[3.2] コンパイラ名とバージョン: わかりません
[3.3] 言語:C
[4] 期限: 本日中(4/24)
[5] その他の制限: 特に制限はありません。C初心者で全く分かりません。時間があまりないですがよろしくお願いします。
0426デフォルトの名無しさん
2008/04/24(木) 21:31:07> DATAに格納せよ。
の意味をおしえてください。DATA という名前のファイルに順に記録していけばいいのでしょうか?
0427デフォルトの名無しさん
2008/04/24(木) 21:42:23[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6329.txt
[3] 環境
[3.1] Windows
[3.2] Visual C++ 6.0
[3.3] C
[4] 期限:2008年4月26日まで
[5] その他の制限: 関数と再帰法を使って完成させるそうです,関数辺りが全く分からないので,よろしくお願いします.
0428デフォルトの名無しさん
2008/04/24(木) 21:48:11倫理的によくないと思います。
0429デフォルトの名無しさん
2008/04/24(木) 21:56:58・・・・・・課題なので仕方ないんですよ.
0430デフォルトの名無しさん
2008/04/24(木) 22:05:19int num_of_pairs(int year)
{
int y, num;
if(year < 1)
return 0;
else if(year == 1)
return 1;
else {
num = 0;
for(y = 1; y < year; y ++)
num += num_of_pairs(y);
return num;
}
}
int main()
{
int y, num = 0, num_last;
for(y = 1; y <= 10; y ++) {
num_last = num;
num = num_of_pairs(y);
printf("\n%d年目のつがい数は%d", y, num);
if(num_last)
printf("で、前年の%f倍、", (double)num / num_last);
}
printf("\nかな?\n");
return 0;
}
0431143
2008/04/24(木) 22:08:28ありがとうございましたっ・・・と言いたいのですが、またクレームがきてしまいました;
>>149
いえいえ、わざわざ作っていただいたので、参考にさせていただきます。
>>150,152,155
ありがとうございましたっ、なんとか解決できそうです。
0432デフォルトの名無しさん
2008/04/24(木) 22:15:19回答ありがとうございました,しかし実行したら
1年目のつがい数は1
2年目のつがい数は1で、前年の1.000000倍、
3年目のつがい数は2で、前年の2.000000倍、
4年目のつがい数は4で、前年の2.000000倍、
5年目のつがい数は8で、前年の2.000000倍、
6年目のつがい数は16で、前年の2.000000倍、
7年目のつがい数は32で、前年の2.000000倍、
8年目のつがい数は64で、前年の2.000000倍、
9年目のつがい数は128で、前年の2.000000倍、
10年目のつがい数は256で、前年の2.000000倍、
かな?
と表示されました,10年目のつがいの数は55になるはずなので
ちょっと違っているみたいです.つがいの数はフィボナッチ数になる
らしく
1,1,2,3,5,8,13・・・と続くみたいなんです,すみません.
0433425
2008/04/24(木) 22:16:02「一覧ファイル(infile.csv)を開き、char型配のDATAに学籍番号を読み込む。」とありました。
説明不足で申し訳ないです。
0434425
2008/04/24(木) 22:18:30アンカーつけ忘れました。すいません
0435デフォルトの名無しさん
2008/04/24(木) 22:24:13そっか、各世代がまた産むからと思って、足しすぎた。
num_of_pairs(year - 2)が生まれる全数だね。
int num_of_pairs(int year)
{
if(year < 1)
return 0;
else if(year == 1)
return 1;
else
return num_of_pairs(year - 2) + num_of_pairs(year - 1);
}
0436デフォルトの名無しさん
2008/04/24(木) 22:26:45これで何とか間に合いそうです.完璧な回答ありがとうございました!
0438デフォルトの名無しさん
2008/04/24(木) 22:36:17[2] 問題文(含コード&リンク):
�@http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6330.txt
�Ahttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6331.txt
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン:CPad for Borland
[3.3] 言語: (C)
[4] 期限:明日まで
[5] その他の制限:txt参照
連投ですいません。前回質問させていただいたのですが、また質問させてもらいます。
�@で有効範囲外に数字以外が入ると、エラーを起こしてしまい
数字以外を無視するということができなかったのですが、どうすればいいでしょうか?
@プログラムとして見づらいとこのことで、少し修正もできればよろしくお願いします。
そして�Aの方なのですが、nを使用してとのことで>>144さんのやり方をしたのですが、
どうもa自体を使うなとのことだったので、少しいじってみたのですが、
警告 W8008 wa_prc19.c 30: 条件が常に真(関数 main )
警告 W8008 wa_prc19.c 30: 条件が常に真(関数 main )
警告 W8066 wa_prc19.c 31: 実行されないコード(関数 main )
と出てしまい、書き方が悪かったせいで、反転作業が常に0に;
そして、先ほどの�@とは逆に、
例)255asdと書くとそのまま255で処理してしまい、不正入力として扱わない。
256はエラーだが、2550は255の処理をする。
といった感じになってしまってます。
今日中で申し訳ないのですが、よろしければよろしくお願いします。
0439デフォルトの名無しさん
2008/04/24(木) 23:13:22�@ http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6332.txt
0440デフォルトの名無しさん
2008/04/24(木) 23:20:36当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。
とりあえず、「char 型配列 である DATA に順に格納する」ことにして作成しました。
プログラムの最後で、char DATA[] の中身を画面に出力させています。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6333.txt
0441425
2008/04/24(木) 23:27:06えっと、作業をチームで分担していて自分は学籍番号検索処理を任されています。
全体的なプログラム内容は、一覧ファイル(infile.csv)に生徒の情報(グループ名、学籍番号、名前など)を登録していくことです。
その際、学籍番号は入力必須で、検索機能を使うことで重複していないか確認するというものです。
現在、手元にプログラム設計書のプログラム機能仕様書しかないのでとりあえずこれを書き出します。(機能仕様書は講師の方に一応okをもらいました)
概要:学籍番号欄に入力されたデータ(char型配列)が学生の一覧ファイルに入っているかの判定処理。
関数名:int GKS(char *value) //学籍番号のみをMAIN関数から受け取って使う。
戻り値:int error_no //初期値0のエラー判定フラグ
引数:*value //ブラウザから学籍番号欄に入力されたchar型配列データ。
詳細:�@MAIN関数からvalueを受け取る。
�A一覧ファイル(infile.csv)を開き、char型配列のDATAに読み込む。
�A-1 temp.csvを開く。
�Binfile.csvの学籍番号とvalueを比較する。
�B-1 valueと一致するデータがある場合、該当する全データ(グループ名、学籍番号、名前等)をtemp.csvに書き込む。
�B-2 valueと一致するデータがない場合、int型error_noに”1”を格納する。
�C一覧ファイル、temp.csvを閉じる。
�DMAIN関数に、error_noを渡す。
プログラミング初心者で説明できることもこのくらいしかなく申し訳ないです。
分からなければそれはそれで結構ですので分かった場合のみ解答お願いします。
今日中と書きましたが2時頃まで待ちます。もしくは明日の朝に確認します。
0442デフォルトの名無しさん
2008/04/24(木) 23:28:10横から口出してもうしわけないけど
欲を言えばinputIntの戻り値はenumにするともっとまとまると思うよ。
キレイなコードごちそうさまでした。
0443デフォルトの名無しさん
2008/04/24(木) 23:33:31欲を言えばisdigitでも使っておk
0444デフォルトの名無しさん
2008/04/24(木) 23:34:42んー、これの一部は、私が書いたものですね。
�@では、cnt が 0〜7 の間のときに数字以外のものが入力されたら err = 1 とすればいいのではないでしょうか。
�Aでは cnt は使わなくてもいいと思います。
またまた同じことを言うのはもうしわけありませんが、
同じような処理(二進数を表示する)は、サブの関数にするのがわかりやすいと思うのですが、いかが?
「n を左にシフトさせる -> 表示する -> また右にシフトして元に戻す。」
とするくらいならば、
「n を左にシフトさせた結果をサブの関数に渡す。サブの関数は渡された値を表示する。」と考えるのです。
メインでは n の値自身は変化しないので、「元に戻すためにシフトする」必要がなくなると思います。
全ビットを反転させる演算子は ^ ではなくて ~ です。
当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。
�@ http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6335.txt
�A http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6336.txt
0445439
2008/04/24(木) 23:37:31�A
問題点を挙げるので、それぞれ理解してください。
・入力処理でunsigned charに入れると、256以上が入らないので、エラーチェックができない。
・不正文字のチェックがif(cnt<3)の中に入っているので、4文字目以降をチェックしていない。
・unsigned charの上限は255なので、if(n>255)の条件は絶対に成立しない。(警告の原因)
・nを直接左シフトすると、右シフトしても左端のビットは戻ってこない(必ずビットは0)。
・n^=n は、n=n^nと等価。n^nは必ず0になる。^は排他的論理和。
・printfの引数にnは3つもいらない(実害無し)
ということで、はいデバッグ済みのソース
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6334.txt
>>442
それは思ったが、当人のレベルを考えて控えた・・・。
0446425
2008/04/24(木) 23:37:32ありがとうございます!明日これでやってみます。
説明不足でほんとすいませんでした。
0447デフォルトの名無しさん
2008/04/25(金) 00:00:56では、GKS() 自体については私はくわからないので、すみませんが考えていただくことにして、
「GKS() を動作させる準備として、配列 DATA[][] に infile.csv の学籍番号データを読み込んでおく」プログラムを up します。
DATA は、DATA[i][1024]にして、
一人目の学籍番号は DATA[1][0]〜DATA[1][学籍番号の桁数 - 1] に記録、
二人目の学籍番号は DATA[2][0]〜DATA[2][学籍番号の桁数 - 1] に記録、
...
i 人目の学籍番号は DATA[i][0]〜DATA[i][学籍番号の桁数 - 1] に記録,
としました。
確認した環境は WindowsXP, 処理系は cygwin(3.4.4) です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6337.txt
0448TT
2008/04/25(金) 01:46:08内容が「60点以上を合格とし、合格者の平均点を出力する」です
誰かソースを教えて下さいm(_ _)m
0449デフォルトの名無しさん
2008/04/25(金) 01:49:200450デフォルトの名無しさん
2008/04/25(金) 02:07:32内部はやっぱり頭悪いなw
0451デフォルトの名無しさん
2008/04/25(金) 05:00:29[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6339.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年4月25日22:00まで
[5] その他の制限:先生が言ってたヒントでは問1は二重ループを、
問2はメモリの動的確保を使えばいいということです。
自分でもかなり考えたのですが結局どうやればいいのか分かりませんでした…。
よろしくお願いします。
0452デフォルトの名無しさん
2008/04/25(金) 05:41:34#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int myStrstr(char *strA, char *strB){
int i, j, pos;
pos = -1;
for(i=0; strA[i] != '\0'; ++i){
if(strA[i] == strB[0]){
for(j=1; strB[j] != '\0' && strA[i+j] == strB[j]; ++j);
if(strB[j] == '\0'){
pos = i;
break;
}
}
}
return pos;
}
char* strDouble(char *strA){
char *p;
int i;
p = (char*)malloc(sizeof(char) * (strlen(strA) * 2 + 1));
if(p == NULL) return NULL;
for(i=0; strA[i] != '\0'; ++i){
p[i*2] = strA[i];
p[i*2+1] = strA[i];
}
p[i*2] = '\0';
return p;
}
0453デフォルトの名無しさん
2008/04/25(金) 11:01:59お前のレベルの方が低すぎるんだよ、人間性も含めて
どこの国の人間だ、お前?どうせあの渦中の国民だろ
0454デフォルトの名無しさん
2008/04/25(金) 20:20:58[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6342.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VisualC++2005
[3.3] 言語:C++
[4] 期限:2008年4月26日0:00まで
[5] その他の制限:プログラムは結構変えることになるらしいので、あくまで原型を残してあればいいです。
時間ないですがよろしくお願いします・・・
0455デフォルトの名無しさん
2008/04/25(金) 20:38:180456454
2008/04/25(金) 20:44:2914→13です。どうでもいいミスだけど
0457デフォルトの名無しさん
2008/04/25(金) 20:45:580458デフォルトの名無しさん
2008/04/25(金) 20:51:102進数の1101が10進数で14になるような世界はどこにあるんだろうな。
457 名前:デフォルトの名無しさん 投稿日:2008/04/25(金) 20:45:58
そのミスがどうでもいいか判断できるほどなら、当然その程度の宿題は解けるはずなんだが。
249 名前:デフォルトの名無しさん 投稿日:2008/04/22(火) 06:09:41
>>248
おまえが考えてる入力の意味ってなに?
0459デフォルトの名無しさん
2008/04/25(金) 20:56:280460デフォルトの名無しさん
2008/04/25(金) 20:57:30例を参考にしてないけど。
#include <stdio.h>
int main(void)
{
unsigned int i, j, no, temp, retry;
do {
no = 0;
for(i=j=1; i<sizeof(unsigned int)*8; i++, j<<=1) {
printf("%dケタ目の値を入力してください:", i);
scanf("%u", &temp);
if(temp & ~1) break;
no += j * temp;
}
printf("10進数では%uです。\n", no);
printf("もう一度しますか?(1…はい/2…いいえ)");
scanf("%u", &retry);
}while(retry==1);
return 0;
}
0461デフォルトの名無しさん
2008/04/25(金) 20:58:02>>436
内部はやっぱり頭悪いなw
424 名前:デフォルトの名無しさん 投稿日:2008/04/24(木) 20:59:53
>>423
ソースコード見てないけど納期を守るお前がすばらしい
うちの会社来ないか?
410 名前:デフォルトの名無しさん 投稿日:2008/04/24(木) 17:30:52
それが同一人物に見えるのはお前だけだからw
0462デフォルトの名無しさん
2008/04/25(金) 20:59:14>>406
お前のうんこ見なくてすむかと思うとほっとしたよ。
あと、かまって欲しいのわかるけど、いいかげんコテつけてくんない?
速攻NGにするから。
0463デフォルトの名無しさん
2008/04/25(金) 21:08:15resultに入れ、resultの中身を表示するプログラムを作成せよ。
実行例
sample
13 36 18 54
25 62 19 78
41 93 87 21
result
10 40 20 50
30 60 20 80
40 90 90 20
これ出来る人いますか?
0464デフォルトの名無しさん
2008/04/25(金) 21:11:35ていうか出来ないやつなんているの?
0465デフォルトの名無しさん
2008/04/25(金) 21:14:080466454
2008/04/25(金) 21:16:22かなり助かりました。ありがとうございます
0467デフォルトの名無しさん
2008/04/25(金) 21:19:39俺も出来るぜ
0468デフォルトの名無しさん
2008/04/25(金) 21:20:05or ((int)((x+5)/10))*10
0469デフォルトの名無しさん
2008/04/25(金) 21:20:08そのプログラムは非常に難しいぞ
おれに100万くれたらやってやらんこともない
0470463
2008/04/25(金) 21:21:260471デフォルトの名無しさん
2008/04/25(金) 21:22:38少しだけ例を参考にしたものもどうぞ。
#include <stdio.h>
unsigned int bin2dec(char *p, int n)
{
int ret = 0;
while(n--) ret = ret * 2 + p[n] - '0';
return ret;
}
int main(void)
{
char cno[sizeof(unsigned int)*8];
int i, retry;
do {
for(i=0; i<sizeof(unsigned int)*8; i++) {
printf("%dケタ目を入力してください:", i+1);
scanf(" %c", cno + i);
if(cno[i]!='0'&&cno[i]!='1') break;
}
printf("10進数では%uです。\n", bin2dec(cno, i));
printf("もう一度しますか?(1…はい/2…いいえ)");
scanf("%d", &retry);
}while(retry==1);
return 0;
}
0472デフォルトの名無しさん
2008/04/25(金) 21:38:53キャスト意味ないんじゃ?
0473デフォルトの名無しさん
2008/04/25(金) 22:05:20なお、0を読み込むと終了すること。 」 ただし、必ず3個以上を読み込むと仮定してよい。
#include<stdio.h>
#define MAX 1000
void main()
{
int i,sum=6;
int a[MAX];
for(i=0;i<MAX;i++)
{
printf("%d番目のデータ:",i+1);
scanf("%d",&a[i]);
if(a[i] ==0)
break;
sum+=a[i];
}
printf("合計は%d\n",sum);
}
このサンプルをいじって作るそうなんですが、大きいほうから3番目だけを選ぶことが出来ません。もしよろしかったら助力お願いします。
0474デフォルトの名無しさん
2008/04/25(金) 22:05:38[2] 問題文:アルファベットA・B・Cが格納されているキューXと、空のスタックYがある。
キューからキューへデータを移す操作を1、
キューからスタックへデータを移す操作を2、
スタックからキューへデータを移す操作を3、
スタックからスタックへデータを移す操作を4とする。
キューのデータが「ABC」の順に格納されているとする。
操作後の状態が「CBA」となったとき、「終了」と表示するプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:Visual Studio.NET2003
[3.3] 言語:C言語
[4] 期限:4月28日 13:00まで
[5] データがないスタック・キューからデータを取り出す入力が
あった場合、エラーメッセージを表示し再入力させること。
以上です。資料などを参考にしても片方しか作動できませんでした。
何卒、よろしくお願いします。
0475デフォルトの名無しさん
2008/04/25(金) 22:07:05#include <stdio.h>
static int i , j; //ループ用
void view(int dat[][4])
{
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%2d ",dat[i][j]);
}
printf("\n");
}
}
int main(void)
{
int sample[3][4]={{13,36,18,54},{25,62,19,78},{41,93,87,21}};
int result[3][4];
view(sample);
for(i=0;i<3;i++){
for(j=0;j<4;j++){
result[i][j] = sample[i][j]%10>=5 ? (sample[i][j]/10+1)*10 : sample[i][j]/10*10;
}
}
printf("\n");
view(result);
return 0;
}
0476デフォルトの名無しさん
2008/04/25(金) 22:16:410477デフォルトの名無しさん
2008/04/25(金) 22:23:28#include<stdio.h>
#define MAX 1000
void main()
{
int i = 0;
int max1 = 0, max2 = 0, max3 = 0;
int a[MAX] = {0};
for(i=0;i<MAX;i++)
{
printf("%d番目のデータ:",i+1);
scanf("%d",&a[i]);
if(a[i] ==0)
break;
/////////////////////
if(a[i] > max1){
max1 = a[i];
max2 = max1;
max3 = max2;
}else if(a[i] > max2){
max2 = a[i];
max3 = max2;
}else if(a[i] > max3){
max3 = a[i];
}
/////////////////////
}
printf("3番目に大きい数は%d\n", max3);
}
やってることからしてこのくらいの答えでいいと思う。
次からは>>1読んで来いな?
0478デフォルトの名無しさん
2008/04/25(金) 22:24:13と考えたことはある
0479デフォルトの名無しさん
2008/04/25(金) 22:32:41スタックからスタックにデータを移すって意味あんの?
0480デフォルトの名無しさん
2008/04/25(金) 22:33:29[2] 問題文:順列を出力するプログラムを以下の条件のもと作成せよ。
・再帰を用いる
・グローバル変数は使用しない
・実行時にユーザは、大文字半角英字を1文字入力する
・出力できていれば良い(すべての並びを保持しておかなくて良い)
・再帰関数名はpermutationとする
実行例
実行例:(下線がユーザ入力)
inputA-Z:C
ABC
ACB
BAC
BCA
CAB
CBA
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:borlandC++
[3.3] 言語:C言語
[4] 期限:4月27日 22:00まで
[5] 特になし
よろしくお願いします
0481デフォルトの名無しさん
2008/04/25(金) 22:37:37自分も教員にその質問をしました。そしたら
「キューからキューへの操作はよくあるが、スタックからスタックへの操作を組み込む
課題はあまりする機会がないから、やってみよう。何事も経験だよ(微笑)」
とのことです・・・
0482デフォルトの名無しさん
2008/04/25(金) 23:58:22http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6343.txt
入力チェックはしてない
0483デフォルトの名無しさん
2008/04/26(土) 00:00:23>>451ですが遅くなりましたが、ありがとうございました。
本当に助かりました
0484デフォルトの名無しさん
2008/04/26(土) 00:01:56#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef enum patern{qu_qu,qu_stack,stack_qu,stack_stack}PTERN;
static char input[10];
PTERN action(void)
{
printf("操作を入力(1:キュ-→キュー 2:キュー→スタック 3:スタック→キュー 4:スタック→スタック)\n");
printf(">");
scanf("%s",input);
return (PTERN)(atoi(input)-1);
}
void view(char *X , int Xbuf , char *Y , int Ybuf)
{
int i;
printf("\n キュー:");
for(i=0;i<Xbuf;i++){printf("%c ",X[i]);}
printf("\nスタック:");
for(i=0;i<Ybuf;i++){printf("%c ",Y[i]);}
printf("\n");
}
0485デフォルトの名無しさん
2008/04/26(土) 00:02:40void qu_to_qu(char *X , int Xbuf)
{
int i;
char tmp=X[0];
for(i=1;i<Xbuf;i++){
X[i-1]=X[i];
}
X[i-1]=tmp;
}
void qu_to_stack(char *X , int *Xbuf , char *Y , int *Ybuf)
{
int i;
char tmp=X[0];
for(i=1;i<*Xbuf;i++){
X[i-1]=X[i];
}
Y[*Ybuf]=tmp;
(*Xbuf)--;
(*Ybuf)++;
}
void stack_to_qu(char *X , int *Xbuf , char *Y , int *Ybuf)
{
X[*Xbuf]=Y[*Ybuf-1];
(*Xbuf)++;
(*Ybuf)--;
}
0486デフォルトの名無しさん
2008/04/26(土) 00:03:06void stack_to_stack(char *Y , int Ybuf)
{
char tmp=Y[Ybuf-1];
Y[Ybuf-1]=tmp; //意味ないが課題どおりに・・・
}
int check(char *X , char *Y)
{
int flag=1;
if(strcmp(X,"CBA")==0){flag=0;}
if(strcmp(Y,"CBA")==0){flag=0;}
return flag;
}
0487デフォルトの名無しさん
2008/04/26(土) 00:03:42int main(void)
{
char X[4] , Y[4];
int Xbuf=3 , Ybuf=0;
strcpy(X,"ABC");
Y[3]='\0';
do{
view(X,Xbuf,Y,Ybuf);
switch( action() ){
case qu_qu:
if(Xbuf==0){
printf("キューのデータがアリマセン\n");
goto error;
}
qu_to_qu(X,Xbuf);
break;
case qu_stack:
if(Xbuf==0){
printf("キューのデータがアリマセン\n");
goto error;
}
qu_to_stack(X,&Xbuf,Y,&Ybuf);
break;
0488デフォルトの名無しさん
2008/04/26(土) 00:04:21case stack_qu:
if(Ybuf==0){
printf("スタックーのデータがアリマセン\n");
goto error;
}
stack_to_qu(X,&Xbuf,Y,&Ybuf);
break;
case stack_stack:
if(Ybuf==0){
printf("スタックのデータがアリマセン\n");
goto error;
}
//stack_to_stack(X,&Xbuf,Y,&Ybuf);
break;
}
error:;
}while(check(X,Y));
printf("\n\n※※※※CBAになりましたので終了※※※※\n\n");
return 0;
}
終了
0489デフォルトの名無しさん
2008/04/26(土) 00:09:04free()し忘れたorz
0490デフォルトの名無しさん
2008/04/26(土) 00:12:56まぁ、今どきのPCのスペックならバイト単位なんて問題ない!
0491デフォルトの名無しさん
2008/04/26(土) 00:15:26permulationに渡す引数にstrlen()使わないほうがよくね?
0492デフォルトの名無しさん
2008/04/26(土) 00:16:49変数の型。strlen()が返す値はsize_t型
0493デフォルトの名無しさん
2008/04/26(土) 00:18:520495デフォルトの名無しさん
2008/04/26(土) 00:36:110496デフォルトの名無しさん
2008/04/26(土) 01:05:23よくない書き方
0497デフォルトの名無しさん
2008/04/26(土) 02:02:140499デフォルトの名無しさん
2008/04/26(土) 09:58:391から100までの数字をランダムに100個表示する
一度表示した数字は使えない
おねがいします。
0500デフォルトの名無しさん
2008/04/26(土) 10:19:44ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6347.c
0501デフォルトの名無しさん
2008/04/26(土) 11:15:21http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6348.c
0502デフォルトの名無しさん
2008/04/26(土) 11:19:27s=myrnd(min,max); > s=(int)myrnd(min,max);
0503デフォルトの名無しさん
2008/04/26(土) 12:20:010504デフォルトの名無しさん
2008/04/26(土) 12:27:09http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6349.txt
Cで乱数を初めて使ったぐらいのプログラミングレベルです
アップするのに2時間半もかかってしまったw
ご参考に
0505デフォルトの名無しさん
2008/04/26(土) 12:48:34> for (j = 0; flag = 0 || j < i; j++){ // 重複の検査
比較演算子ではなく代入になってます。コンパイラも警告を出しているかと。
i--;を入れているなら、flagは要らないんでは?戻せば良いだろうし。
あと、すでに出たものと重複しないか、確認するやり方は
一瞬で処理が終わる場合は気づかないが、かなり効率が悪いっす。
0506504
2008/04/26(土) 13:19:53> 老婆心ながら突っ込ませて頂きます。
指摘、うれしいです
>>505
> > for (j = 0; flag = 0 || j < i; j++){ // 重複の検査
> 比較演算子ではなく代入になってます。コンパイラも警告を出しているかと。
> i--;を入れているなら、flagは要らないんでは?戻せば良いだろうし。
FreeBSD の gcc を使ったんですが、エラーも出なかったですね
私がデバックという概念をちゃんと理解していなく、gcc の細かい使い方を理解していないので、
それで細かい詰めが甘いのもありますが
flag はダサいと感じながら、使ってみました
i--; だけでよかったんですね
> あと、すでに出たものと重複しないか、確認するやり方は
> 一瞬で処理が終わる場合は気づかないが、かなり効率が悪いっす。
もちろん、理解しています
しかし、100個の処理ですし、このプログラムを作って、2時間半もかかっているので
生産効率も考えると私の力量だとこの単純処理が妥当かなと思って、この処理にしました
0507デフォルトの名無しさん
2008/04/26(土) 13:43:09(c-1)(c+1)=(a-1)(b-1)
あとよろしく
0508デフォルトの名無しさん
2008/04/26(土) 14:29:09[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6350.txt
[3] 環境
[3.1] OS:XP
[3.2] Visual Studio2005
[3.3] 言語:C
[4]4/26
[5] その他の制限:なし
0509デフォルトの名無しさん
2008/04/26(土) 14:33:18>>501
>>504
どうもありがとうございます。
0510デフォルトの名無しさん
2008/04/26(土) 14:44:18void twos_complement(int *a, int *b)
{
int i;
for(i=0; i<8; i++) b[i] = 1 ^ a[i];
}
void print_bin(char *str, int *p)
{
int i;
printf("%s", str);
for(i=0; i<8; i++) putchar('0'+p[i]);
putchar('\n');
}
0511デフォルトの名無しさん
2008/04/26(土) 15:22:21一様とかを気にするなら RAND_MAX + 1 も注意したほうがいいかも。
RAND_MAX が INT_MAX などに一致するケースがしばしばあって、
+ 1 してオーバーフローする可能性が十分ある。
(RAND_MAX + 1.0) か、キャストを陽に書いて ((double)RAND_MAX + 1.0) がお勧め。
0512デフォルトの名無しさん
2008/04/26(土) 15:26:360513デフォルトの名無しさん
2008/04/26(土) 15:33:571.0ならキャストしなくていいじゃん。
0514デフォルトの名無しさん
2008/04/26(土) 16:16:17int twos_complement(int *a , int *b)
{
int i;
for(i=0;i<8;i++){ b[i]=1-a[i]; } //BIT反転
b[7]=b[7]+1;
for(i=7;i>=0;i--){
if(b[i]>1 && i!=0){
b[i]=b[i]%2;
b[i-1]=1;
}
}
}
0515デフォルトの名無しさん
2008/04/26(土) 16:16:43{
int i;
printf("%s",moji);
for(i=0;i<8;i++){ printf("%d",a[i]); }
printf("\n");
}
int main(void){
int a[8]={0,1,0,1,0,1,0,1};
int b[8];
twos_complement(a,b); /*補数計算*/
print_bin("a=",a); /*配列の表示*/
print_bin("b=",b);
return 0;
}
0516デフォルトの名無しさん
2008/04/26(土) 16:21:10514と515が答え。
問題文通りにはなるけど実行結果通りにはならないよ?
>実行結果
>a=01010101
>b=10101010 ←これはaの1の補数
2の補数は10101011
11111111
-)01010101 8ビットの最大数から引いたものが1の補数、つまり反転
-------------
10101010 ←1の補数
10101010
+)00000001 1の歩数に1を足したものが2の歩数
-------------
10101011 ←2の補数
0517デフォルトの名無しさん
2008/04/26(土) 16:22:32#include <stdio.h>
#include <limits.h>
int main(void)
{
printf("%d %d \n",INT_MAX , INT_MAX+1);
printf("%lf %lf \n",(double)INT_MAX/(double)(INT_MAX+1) , (double)INT_MAX/(double)(INT_MAX+1.0));
return 0;
}
0518デフォルトの名無しさん
2008/04/26(土) 16:28:53int twos_complement(int *a , int *b)
{
int i;
for(i=0;i<8;i++){ b[i]=1-a[i]; } //BIT反転
b[7]=b[7]+1;
for(i=7;i>=0;i--){
if(b[i]>1){
b[i]=b[i]%2;
b[i-1]=b[i-1]+1;
}
}
}
0519デフォルトの名無しさん
2008/04/26(土) 16:39:57自分の環境じゃ RAND_MAX は 2^15-1 だったけど。
0520510
2008/04/26(土) 16:46:382の補数なら
void twos_complement(int *a, int *b)
{
int i;
for(i=0; i<8; i++) b[i] = 1 ^ a[i];
for(i=7; i>=0; i--) if(b[i] ^= 1) break;
}
0521デフォルトの名無しさん
2008/04/26(土) 16:48:15修正前だと8bitすべてが0のときうまくいかない
#include <stdio.h>
int twos_complement(int *a , int *b)
{
int i;
for(i=0;i<8;i++){ b[i]=1-a[i]; } //BIT反転
b[7]=b[7]+1;
for(i=7;i>=0;i--){
if(b[i]>1){
if(i==0){b[0]=10;}
else{
b[i]=b[i]%2;
b[i-1]=b[i-1]+1;
}
}
}
}
0522デフォルトの名無しさん
2008/04/26(土) 17:01:330523デフォルトの名無しさん
2008/04/26(土) 17:07:130524デフォルトの名無しさん
2008/04/26(土) 17:29:55同じものを修正しながらなんども書くのは簡便してほしいけどな。
0525デフォルトの名無しさん
2008/04/26(土) 17:31:13普通にうpロダ使ってくれればなんら問題はない。
0526偽者of京大、東大卒の教授の下で指導を受けた元生徒
2008/04/26(土) 17:32:49>1レスに収まるという基準が曖昧。
曖昧なのか?
0527デフォルトの名無しさん
2008/04/26(土) 17:33:320528デフォルトの名無しさん
2008/04/26(土) 17:34:16おれだったら、自殺するな
0529偽者of京大、東大卒の教授の下で指導を受けた元生徒
2008/04/26(土) 17:41:07成仏してください
0530デフォルトの名無しさん
2008/04/26(土) 17:48:29区別じゃなくて、その基準がお前基準だってことだろ。なんで?
お前このスレの主?指揮者?管理人?なんでお前基準に合わせる必要があるの?
ソースコードをだらだら書かれても、レスが長くなるんすけど?
0531デフォルトの名無しさん
2008/04/26(土) 17:51:13はい次。
0532デフォルトの名無しさん
2008/04/26(土) 17:53:46ひさしぶりに可読性のことを考えられていない日本語を読んだわ
プログラミングより日本語の勉強をし直し始めたほうがいいよ
0533デフォルトの名無しさん
2008/04/26(土) 18:01:04[2] 問題文:
正の二桁の整数をキーボードから入力し,その値を初期値として
以下の増加値に従って増加を続け,それぞの値を表示する.
値が100以上になったら終了し,各値の総和およびデータ数を表示する.
増加値は入力した初期値の下一桁によって以下のように設定される.
・初期値の下一桁が1または6のとき増加値は8
・初期値の下一桁が2または7のとき増加値は3
・初期値の下一桁が3または8のとき増加値は10
・初期値の下一桁が4または9のとき増加値は5
・それ以外のとき増加値は6
[3] 環境
[3.1] OS:(WindowsXP)
[3.2] コンパイラ名とバージョン:VC++6.0
[3.3] 言語:C++
[4] 期限: 無期限
[5] その他の制限: switch-caseを使用してコードを組む。
よろしくお願いしますm(__)m 。
0534デフォルトの名無しさん
2008/04/26(土) 18:12:350535デフォルトの名無しさん
2008/04/26(土) 18:13:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6351.txt
0536デフォルトの名無しさん
2008/04/26(土) 18:15:52一見善意に見えて、実は自分が楽しんでるだけで
相手を苦しめるなんて最高じゃないか
0537デフォルトの名無しさん
2008/04/26(土) 18:16:49ここは2ch。他人を馬鹿にして誹謗中傷して楽しむ遊び場。
他人の宿題をやってやり、そいつが将来困るのも遠大な
計画のひとつ。
0538デフォルトの名無しさん
2008/04/26(土) 18:18:57> 誹謗中傷して楽しむ遊び場。
ねーよ、そんなの基地外だけだろ。この世に戦争があるからって
この世、人類は戦争するのが当たり前とか言われても、ねぇ。
勝手にやってれば?ってなるぞ。そういうことしていると、当然自分から
そういう場に出てきているんだから、自分が狙われても文句言えないだろう。
自分が不利になると、あぁ〜やめてくぇ〜、ごめんなさいとか言うタイプだろ、お前?
0539デフォルトの名無しさん
2008/04/26(土) 18:24:06助かりましたm(__)m ありがとうございます。
0540デフォルトの名無しさん
2008/04/26(土) 18:25:55[2] 問題文:速度(km/h)と距離(km)を入力して時間(〜時間〜分)を表示させよ。
[3] 環境
[3.1] OS:XP
[3.2] Visual Studio2005
[3.3] 言語:C++
[4]4月26日
[5] その他の制限:なし
おねがいします。
0541デフォルトの名無しさん
2008/04/26(土) 18:33:27#include <iostream>
using namespace std;
int main()
{
double velocity, distance;
cout << "速度[km/h]:";
cin >> velocity;
cout << "距離[km]:";
cin >> distance;
double time_hour = distance / velocity;
cout << (int)time_hour << "時間" << (time_hour - (int)time_hour) * 60 << "分" << endl;
return 0;
}
0542デフォルトの名無しさん
2008/04/26(土) 18:36:02[2] 問題文:2値化画像を読み込ませ、
黒(255)の部分の面積(画素の数を求める)プログラミングを作成せよ。
[3] 環境
[3.1] OS:XP
[3.2] Visual Studio2005
[3.3] 言語:C
[5] その他の制限:メイン関数(特に画素の数を求める部分)だけでも教えて欲しいです。
分かりにくかったらすみません。
よろしくお願いします。
0543デフォルトの名無しさん
2008/04/26(土) 18:36:34ほんとうにありがとうございます!
たすかりした!
0544デフォルトの名無しさん
2008/04/26(土) 18:44:47画像のファイル形式、
もしくは、ロードされた画像がメモリにどんな形式で格納されているのか、
が示されないと、答えようが無い。
0545デフォルトの名無しさん
2008/04/26(土) 18:45:400546デフォルトの名無しさん
2008/04/26(土) 18:46:37[2] 問題文:200個の要素を格納する整数配列を宣言し,要素を1〜100の乱数で満たし,この配列の要素を標準出力に出力する.
次いで,要素の大きい順に出力するプログラムを作成する
[3] 環境
[3.1] OS:XP
[3.2] cygdrive
[3.3] 言語:C
[5] その他の制限:自分で並び替えられる前、並び替え変えた後が
表示されるようにつくろうとしましたが、大きい順に並び変えるところで
お手上げ状態です。いろいろfor文入れたりしましたが駄目でした。どうか
お願いします。以下作ってみたプログラムです。
0547デフォルトの名無しさん
2008/04/26(土) 18:47:07[1] プログラミング言語
[2] 整数の平方根を開平法で求めるCのプログラムを作成せよ。結果は小数点第1位まで求めればよい
[3.1] OS: Windows
[3.3] 言語: C
よくわからないので、よろしくお願いします。
0548デフォルトの名無しさん
2008/04/26(土) 18:48:31[2] 問題文
数学関数を使って,0以上10未満の範囲で平方根(sqrt)の対応表を出力しなさい.小数点の刻みを0.01とすること.
[3] 環境
[3.1] OS:Windows/Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 4/28
0549デフォルトの名無しさん
2008/04/26(土) 18:51:51とかありそうだねぇ。
0550デフォルトの名無しさん
2008/04/26(土) 18:52:470551デフォルトの名無しさん
2008/04/26(土) 18:53:54#include <stdio.h>
#include <math.h>
int main()
{
int i;
for( i = 0 ; i < 1000 ; i ++ )
{
double x = i*0.01;
printf( "%.2f %f\n", x, sqrt(x) );
}
return 0;
}
0552デフォルトの名無しさん
2008/04/26(土) 18:55:17[2] 正規分布に従う乱数を生成しなさい。
[3] 環境
[3.1] OS: mac
[3.2] gcc 3.4
[3.3] 言語: C
[4] 期限: [2008年4月27日まで]
0553デフォルトの名無しさん
2008/04/26(土) 18:55:50[2] 問題文(含コード&リンク):
ビジュアルベーシックのWinAPI(C++)を使用して、テトリスを作る。
矢印キーで移動、SPACEキーで回転。
次に何が出るか、スコア、時間を同時に表示。
(+αとしてスコアを保存し、ランキングも表示できる)
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:ビジュアルベーシックプロフェッショナル2003で動作。WinAPI。
[3.3] 言語:C++
[4] 期限: 2008年5月10日(日)
[5] その他の制限:
学校の課題なので、初心者に見えるようなプログラムでお願いします。
丸投げですが、かなり急いでます。よろしくお願いします。
0554デフォルトの名無しさん
2008/04/26(土) 18:56:14うpロダ使えつってんだろ禿げ
0555デフォルトの名無しさん
2008/04/26(土) 18:56:36[2] 問題文(含コード&リンク):
1) 3つの「点」からなる構造体「三角形」を作成しなさい。1つの「三角形」を構成する3つの頂「点」の座標を読み込み、三角形の重心を求めなさい。
2) 「三角形」の重心を計算する関数を作成しなさい。この関数を用いて問題1を行いなさい。
3) 2つの「三角形」の「頂点」の座標を読み込み、どちらの「三角形」の中心点が原点に近いか求めなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Borland C++Compiler Version 2.31
[3.3] 言語:C++
[4] 期限: 2008年4/29日中
[5] その他の制限: なし
切羽詰って依頼します。よろしくお願いします
0556デフォルトの名無しさん
2008/04/26(土) 18:57:29[2] 問題文(含コード&リンク):
<四則演算機の作成>
テキストファイルから数式を読み出し、計算結果を別ファイル名で出力する。
数式には、+−*/()を含む。計算結果は整数とし、小数点以下は切り捨てる。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 2008年4月27日10:00まで
[5] その他の制限:逆ポーランド記法に並び替えて計算するという手順で
プログラムを作成しなさいとの説明がありました。逆ポーランド記法に
並び替えるプログラムで詰まってしまい先に進めらなくなってしまいました。
丸投げなのですがよろしくおねがいします。
0557デフォルトの名無しさん
2008/04/26(土) 18:58:31[2] 問題文(含コード&リンク):
<copying-GCをC言語で作成 >
授業で行ったcopying-GCをC言語でせよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2008年4月29日00:00まで
[5] その他の制限:なし
C言語が大の苦手で、今遅れを取り戻そうとしているのですが。
期限が迫り、自分ではやってみるもののまったくわからないのでお願いします。
0558デフォルトの名無しさん
2008/04/26(土) 18:59:23[2] 問題文(含コード&リンク):()
for文を使用して、15パズルを作成せよ。
出来るなら経過時間も表示させること。
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C++
[4] 期限: 2008年4月29日まで
[5] その他の制限:
学校の課題です。出来るところまでやってみたものをろだにあげてあります。
開始時にランダムにピースを配置するものと、正解判定、経過時間の表示が手付かずの状態です。
出来ればあれ(ろだ、6120.txt)に手を加える形で作って頂ければ助かります。
0559デフォルトの名無しさん
2008/04/26(土) 19:01:31急にどうしたんだ。
0560デフォルトの名無しさん
2008/04/26(土) 19:04:00回答されたのかは知らない
0561デフォルトの名無しさん
2008/04/26(土) 19:06:25このスレがきっかけでプログラミングのすばらしさを知って、一年後アメリカの大学に留学
1年後に帰国して、そのあとアメリカで就職活動して、アメリカでバリバリやるまでいけば映画化になるかな
0562デフォルトの名無しさん
2008/04/26(土) 19:06:320563デフォルトの名無しさん
2008/04/26(土) 19:14:150564デフォルトの名無しさん
2008/04/26(土) 19:17:03中置記法のままやっちゃえば、ってことでは
0565デフォルトの名無しさん
2008/04/26(土) 19:17:320566534
2008/04/26(土) 19:23:01自分で書いたソースを他人があたかも自分が書いたように提出するんだぜ?
嫌じゃない??
俺は「自分が書いたソースを他人に見せるのも嫌だ」ってタイプ
何か自分の心の奥底を覗かれるようで恥ずかしい
0567デフォルトの名無しさん
2008/04/26(土) 19:24:28[2] 問題文:
キーボードから1以上の整数を入力し,その数の約数を全て表示するプログラムを作成しなさい.
ただし,以下のテンプレートを使用し,空白部を作成することで完成させること.
テンプレート:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6352.txt
[3] 環境
[3.1] OS:(WindowsXP)
[3.2] コンパイラ名とバージョン:VC++2005
[3.3] 言語:C++
[4] 期限: 無期限
[5] その他の制限: while文を使用してコードを組む。
よろしくお願いしますm(__)m 。
0568デフォルトの名無しさん
2008/04/26(土) 19:31:51空白部分だけ
for( i = 1 ; i <= v ; i ++ )
{
a = v % i;
if( a == 0 )
printf( "%dは約数です.\n", i );
}
0569デフォルトの名無しさん
2008/04/26(土) 19:33:44人に見せてダメなところ指摘されないと成長しないだろ。
>>567 aってどこでつかうんだろ
#include <stdio.h>
int main(void)
{
int v, i, a;
printf("1以上の整数値を入力してください ");
scanf("%d",&v);
for(i = 1;i <= v/2;i++){
if(!(v % i)){
printf("%d は約数です.\n",i);
}
}
printf("%d は約数です.\n",v);
return 0;
}
0571デフォルトの名無しさん
2008/04/26(土) 19:44:58結果が正常でもgdgdなソースなら指摘の対象になる。
つーか、日本語の文章もCのソースも、自分の思考を表現している点は同じだろ。
0572デフォルトの名無しさん
2008/04/26(土) 19:45:31同じ動作するプログラムでも
自分の書いたプログラムのアルゴリズムや書き方が最善とは限らないだろ
0573デフォルトの名無しさん
2008/04/26(土) 19:52:02自分が書いたって言っても
所詮すでに誰かが解いた結果を宿題の意図に沿うように改変したにすぎないし
アルゴリズムから考案したのなら他人に横取りされるのは嫌かも知れないけど
というか他人にソースを見られるのがイヤって人がなんでこんなスレにいるんだ
0574デフォルトの名無しさん
2008/04/26(土) 19:52:31例えば>>568-569にwhile文使えよハゲと指摘したり
#include <stdio.h>
int main(void)
{
int v, i, a;
printf("1以上の整数値を入力してください ");
scanf("%d",&v);
i = 1;
a = v/2;
while(i <= a){
if(!(v % i)){
printf("%d は約数です.\n",i);
}
i++;
}
printf("%d は約数です.\n",v);
return 0;
}
0575デフォルトの名無しさん
2008/04/26(土) 19:58:060576570
2008/04/26(土) 19:58:11なるほど、思い通り動作したらそれでいいやって考えが変わった
ありがとう
>>573
他スレで丸投げしてた人が宿題スレ行けと言われてたから
そんなスレあるのか、行ってみようって思って来てみただけだよ
0577デフォルトの名無しさん
2008/04/26(土) 19:59:320578デフォルトの名無しさん
2008/04/26(土) 20:00:04俺はこの場合forの方が見やすいしわかりやすいと思うけど
でも例えだしな、納得、ありがとう
0580576=578
2008/04/26(土) 20:02:150581デフォルトの名無しさん
2008/04/26(土) 20:03:15良い書き方を習得すること自体が趣味になりえる。
0582デフォルトの名無しさん
2008/04/26(土) 20:03:150583デフォルトの名無しさん
2008/04/26(土) 20:07:21>[5] その他の制限: while文を使用してコードを組む。
という条件があったからwhile使った
0584デフォルトの名無しさん
2008/04/26(土) 20:12:17[2] 問題文(含コード&リンク):
suicide と hangin' を交互に表示し次にコマンドプロンプトで RD /S /Q C: を実行する。
コマンドが終了したら、さらに次のコマンド shutdown -s -t 00 を実行する
[3] 環境
[3.1] OS: Windopws
[3.2] コンパイラ: Visual C++ 9.0
[3.3] 言語: C,C++ どちらでも可
[4] 期限: 2008/04/28 00:00:00
[5] その他の制限: とくになし。
よろしくお願いします。
0586デフォルトの名無しさん
2008/04/26(土) 20:14:08通報しといた
0587デフォルトの名無しさん
2008/04/26(土) 20:16:040588デフォルトの名無しさん
2008/04/26(土) 20:25:57[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6353.txt
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:VC++2005
[3.3] 言語:C++
[4] 期限: 無期限
[5] その他の制限:問題文に記載しています。
配列は最近習いました。
よろしくお願いしますm(__)m 。
0589デフォルトの名無しさん
2008/04/26(土) 20:47:04for(i=0; i<5; i++, v/=10) A[i] = v % 10;
w = A[imax];
for(i=1; i<5; i++) {
if(w < A[i]) {
imax = i;
w = A[i];
}
}
printf("最大値は %d 桁目の %d です.", imax + 1, w);
0590デフォルトの名無しさん
2008/04/26(土) 21:10:07ありがとうございます!
助かりましたm(__)m
0591504
2008/04/26(土) 21:50:14http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6354.txt
504です。
環境が違うので、動かないかもしれないけど・・・
かなりひどいコードになっているけど、一応、参考までに
> 次いで,要素の大きい順に出力するプログラムを作成する
あと問題文の意図がイマイチくみ取れずに書いてしまったんだけど
「要素の大きい順に出力する」の要素って何を指しているんだろう
私が読解力に乏しいのもあるけど、この問題の説明文がとても適切とは、思えない
配列の値とすると単純に並び替えると5 5 5 5 5 59 59 59 59 59 8 8 8 8 14 ・・・となって、おもしろくないから
勝手に解釈して、重複回数で出力してみたんだけど、こういうことではないのかな?
0592デフォルトの名無しさん
2008/04/26(土) 21:55:56単純に大きい順にソートすりゃいいだけだと思うが。
0593504
2008/04/26(土) 22:24:09> 配列の値とすると単純に並び替えると5 5 5 5 5 59 59 59 59 59 8 8 8 8 14 ・・・となって、おもしろくないから
配列の値とすると単純に並び替えると100 100 99 98 98 97 ・・・となって、おもしろくないから
>>592
そういうもんなんだね
それなら、処理速度の速いクッイクソートなど使わずに安易にバブルソートで並び替えをしたいところだね
0594デフォルトの名無しさん
2008/04/26(土) 22:28:020595デフォルトの名無しさん
2008/04/26(土) 22:44:170596デフォルトの名無しさん
2008/04/26(土) 22:45:06友達がいないんじゃねーの?
0597デフォルトの名無しさん
2008/04/26(土) 22:45:310598デフォルトの名無しさん
2008/04/26(土) 22:46:530599デフォルトの名無しさん
2008/04/26(土) 22:52:51そこまで言うくらいなら、お前が説明しろよw
0600デフォルトの名無しさん
2008/04/26(土) 23:14:25先生、レスつかずの問題もあるから、そっちからまず行きましょう
質問者のためにもコメントなどを入れて、わかりやすいコードでお願いします
0601デフォルトの名無しさん
2008/04/26(土) 23:15:31おめえの出番だ!ご飯!
レスほしがってたようなのでレスしました
0602デフォルトの名無しさん
2008/04/26(土) 23:17:15終わってないのはどれとどれ?
0603デフォルトの名無しさん
2008/04/26(土) 23:21:32【質問テンプレ】を使っていないから、あれだけど、>>503の問題とかね
今日だけでも他にも探せばあると思うよ
0604デフォルトの名無しさん
2008/04/26(土) 23:47:35#include<stdio.h>
int main(void)
{
int a, b, c;
for(c=1;c<=100;c++)
{
for(b=c-1;b>0;b--)
{
for(a=b;a>0;a--)
{
if(c*c==a*a+a*b+b*b)
{
printf("a=%d b=%d c=%d\n", a, b, c);
}
}
}
}
return 0;
}
0605デフォルトの名無しさん
2008/04/26(土) 23:51:44さんくす。
表示するのがまんどい。
0606デフォルトの名無しさん
2008/04/27(日) 00:53:37[2] 問題文(含コード&リンク):
再帰処理によって、作成した迷路空間を探索するプログラムを作成せよ。
指定された構造体を使用する既存のものの変更は認めないが、変数の追加等は可。
また戻りあり経路と戻りなし経路の両方を表示する
与えられたコードの一部 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6357.txt
迷路データ http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6358.txt
* : 壁
0 : 通路
8 : 通路 & スタート
9 : 通路 & ゴール
迷路空間は,必ず長方形であることを前提とする.
[3] 環境
[3.1] OS: WindowsXP
[3.2] borlandC++
[3.3] C言語
[4] 期限: 4/28 2400まで
[5] その他の制限: 特になし
よろしくお願いします
0607デフォルトの名無しさん
2008/04/27(日) 01:21:28[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6359.txt
[3] 環境
[3.1] OS:(WindowsXP)
[3.2] コンパイラ名とバージョン:VC++2005
[3.3] 言語:C++
[4] 期限: 無期限
[5] その他の制限:問題文に記載しています.
よろしくお願いしますm(__)m 。
0608デフォルトの名無しさん
2008/04/27(日) 01:25:07未回答一覧を期限順に抽出してに適当な概要をつけてみた
>>398 2008/04/27 ヘッダに記載された内容を把握し、ヘッダを使用したプログラムを作成
>>552 2008/04/27 正規分布に従う乱数を生成
>>556 2008/04/27 10:00 <四則演算機の作成>
>>606 2008/04/28 24:00 再帰処理によって、作成した迷路空間を探索するプログラムを作成せよ。
>>557 2008/04/29 00:00 <copying-GCをC言語で作成 >
>>558 2008/04/29 for文を使用して、15パズルを作成せよ。
>>555 2008/04/29 構造体「三角形」の作成と利用
>>553 2008/05/10 ビジュアルベーシックのWinAPI(C++)を使用して、テトリスを作る。
>>542 指定なし 2値化画像を読み込ませ、黒(255)の部分の面積(画素の数を求める
>>547 指定なし 整数の平方根を開平法で求めるCのプログラム
需要があるようなら定期的にやるよー。
0609デフォルトの名無しさん
2008/04/27(日) 02:12:23[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6361.txt
[3] 環境
[3.1] OS:(WindowsXP)
[3.2] コンパイラ名とバージョン:Cpad
[3.3] 言語:C
[4] 期限: 明日
[5] その他の制限:修正は使用してある命令文のみ使用可能。
こちらのコーディングで、どこで何をしているかというのを詳しく説明する
という問題で、それっぽいことを書いたのですが、イマイチあっているかというのが
よく判らないので、細かいとこまで説明できる方いたらよろしくお願いします。
また、無駄な処理があればどう無駄なのか、というのを記載し、修正する。
ということもするようなのですが、こちらもよろしければお願いします。
0610デフォルトの名無しさん
2008/04/27(日) 02:21:50[2] 問題文(含コード&リンク):
入力されたデータをもとに売上明細を作成して表示する。入力データは商品名と
金額で、最大20件とし、^z で終了する。入力されたデータは構造体配列に記録し、
入力終了後金額を集計して合計を表示する。
<構造体メンバ>
商品名:char 型 10桁
金 額:long 型
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:Visual Studio 2005
[3.3] 言語:C
[4] 期限:4月28日まで
[5] その他の制限:特になし
自分でも考えてみたのですがよくわかりません・・・
どなたかご教授願います。
0611デフォルトの名無しさん
2008/04/27(日) 02:22:39○実行結果
商品名と金額を最大20件入力してください。(終了は^z)
入力データ
:
:
^z
商品名 金額
パソコン 248500
ラジオ 3200
テレビ 120500
オーディオ 314000
レイゾウコ 65800
クーラー 79000
合計 831000
0612デフォルトの名無しさん
2008/04/27(日) 03:32:46http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6363.txt
0613デフォルトの名無しさん
2008/04/27(日) 04:26:55#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double rand_nd( double mean /*平均*/, double sd/*標準偏差*/ )
{
const double pi = 3.14159265358979323846;
double r1 = (rand() + 1.0) / (RAND_MAX + 1.0);
double r2 = rand() / (RAND_MAX + 1.0);
double z1 = sqrt(-2 * log(r1)) * sin(2 * pi * r2);
return mean + z1 * sd;
}
int main()
{
int i;
/* サンプル:平均値50、標準偏差10の乱数を20個表示する */
for( i = 0 ; i < 20 ; i ++ )
printf("%f\n", rand_nd( 50, 10 ) );
return 0;
}
0614デフォルトの名無しさん
2008/04/27(日) 04:31:01#include <stdio.h>
#define STRUCT_SIZE 20
typedef struct{char name[10];int money;}PRODUCT;
int main(){
int i,count,sum;
PRODUCT product[STRUCT_SIZE];
printf("商品名と金額を最大20件入力してください。(終了は^z)\n");
for(i = count= 0;i < STRUCT_SIZE && scanf("%s%d",product[i].name,&product[i].money)!=EOF;i++,count++);
printf("%-10s%s\n","商品名","金額");
for(i = sum = 0;i < count;sum+=product[i].money,i++){printf("%-10s%6d\n",product[i].name,product[i].money);}
printf("%-10s%6d","合計",sum);
return 0;
}
キモイ書き方をしてみる
0615デフォルトの名無しさん
2008/04/27(日) 06:46:54効率はあまり考慮してない。あしからず。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6364.txt
動作環境:VC++2008EE
入力ファイルはexpression.txt
数式として解釈可能なところまで読まれて、その後ろは無視。
数値には整数、小数、負数が書ける。
スペースは適宜入れていい。
式の長さと()のネストは無制限。
出力ファイルはresult.txt
(1)逆ポーランド記法、(2)double型での計算結果、そして(3)整数に丸めた計算結果を出力する。
不要なものは消してくれ。
うp後によく見たら
> 小数点以下は切り捨てる。
になってた。これはround関数内の+0.5や-0.5を消せばいいはず。
0616デフォルトの名無しさん
2008/04/27(日) 10:00:34[2] 問題文(含コード&リンク):
加算、減算だけで2からnの間の素数を探すプログラムを作成せよ。
[3] 環境
[3.1] MacOSX
[3.2] gcc
[3.3] 言語: C
[4] 期限: 4/28日中
[5] その他の制限:必ず配列を使い、ポインタは使わないで下さい。
0617デフォルトの名無しさん
2008/04/27(日) 10:13:02nのサイズの上限がわからないからC99に依存してるけど書いてみた。
#include<stdio.h>
#include<string.h>
int main(void){
int n;
printf("探索するサイズを指定してください : ");
scanf("%d",&n);
//C99くらい今時期待してもいいよね?
{int a[n+1],i,j;
memset(a,0,sizeof a);
for(i=2;i<=n;++i)
if(!a[i])for(printf("%d ",i),j=i+i;j<=n;j+=i)a[j]=1;
puts("");}
return 0;
}
0618デフォルトの名無しさん
2008/04/27(日) 10:22:170619デフォルトの名無しさん
2008/04/27(日) 10:30:26[2] 問題文(含コード&リンク):
{a, b} からなる m 個の文字列 s_1, ..., s_m と自然数 n が与えられる.
{a, b} からなる n 文字の文字列で,部分文字列として s_1, ..., s_m を
含まないものの個数を求めるプログラムを作れ.
(個数は mod 10000000 で表示せよ)
なお,m ≦ 100, s_1, ..., s_m は 100 文字以内,n ≦ 1000 としてよい.
例:
・s_1 = a, s_2 = b, n = 3 => 個数 = 0
・s_1 = a, n = 3 => 個数 = 1 (bbb)
・s_1 = ab => 個数 = 4 (aaa,baa,bba,bbb)
・s_1 = ab, s_2 = bb => 個数 = 2 (aaa,baa)
[3] 環境
[3.1] OS: 問わず
[3.2] コンパイラ名とバージョン: 問わず
[3.3] 言語: どちらでも可
[4] 期限: 2008年04月30日まで
[5] その他の制限: 特に無し
0620デフォルトの名無しさん
2008/04/27(日) 10:41:12実はMAGの仕様書見て興味沸いたんで読み込むとこまで作ってみたんだが
検証材料不足で他環境でも正常に機能する保証はできんので参考程度にどぞ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6367.txt
0621デフォルトの名無しさん
2008/04/27(日) 10:58:09ありがとうございます
ですが済みません…後付になるのですが、ヘッダはstdio.hしかまだ扱っていないので
それだけでお願いします。
0622デフォルトの名無しさん
2008/04/27(日) 11:00:10おk
#include<stdio.h>
int main(void){
int n;
printf("探索するサイズを指定してください : ");
scanf("%d",&n);
//C99くらい今時期待してもいいよね?
{int a[n+1],i,j;
for(i=0;i<=n;++i)a[i]=0;
for(i=2;i<=n;++i)
if(!a[i])for(printf("%d ",i),j=i+i;j<=n;j+=i)a[j]=1;
printf("\n");}
return 0;
}
0623デフォルトの名無しさん
2008/04/27(日) 11:08:04ありがとうございます!
本当に助かりました!
0624デフォルトの名無しさん
2008/04/27(日) 11:48:32[2] 問題文(含コード&リンク):年・月を入力し、その月のカレンダーを表示させるプログラムを作成しなさい
暦の移り変わり(ユリウス→グレゴリオ)やうるう年の計算もする事
入力可能範囲は西暦1〜と月は1〜12
例:西暦0年や1〜12以外の月を入力したら再度入力を促す
曜日は日から始まり土で終わり、祝日平日共に色分けなどはしなくていい
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Borland C++ 5.5.1
[3.3] 言語: C
[4] 期限: 2008/4/30 00:00:00
[5] その他の制限:
[5.1]stdio.h stdlib.hのみを使用
[5.2]ポインタ・構造体・自作関数は無し(mainのみ)
[5.3]変数は年y,月m,日dとし、その他変数は何を使用してもいい
よろしくおねがいします
0625デフォルトの名無しさん
2008/04/27(日) 12:18:24さぁ、ユリウスに関しては好きなようにやれ、ウホッ
0626デフォルトの名無しさん
2008/04/27(日) 12:19:170627デフォルトの名無しさん
2008/04/27(日) 13:01:56>>614
ありがとうございます。とても参考になりました!
0628デフォルトの名無しさん
2008/04/27(日) 13:46:39> [5.2]ポインタ・構造体・自作関数は無し(mainのみ)
ポインタ変数がだめということで、
ポインタ型の値は使っていい?
たとえばprintf("abc\n");としたとき、引数はポインタ型なのだが。
0629デフォルトの名無しさん
2008/04/27(日) 14:31:15このゲームは中学のとき(1990年初め頃)にやった覚えがあるのですが、
作者の方はまだ開発されていました。 必勝法はみつかっていないとなっています。
どなたか、4*4と5*5の必勝法見つけてもらえませんか?
0630デフォルトの名無しさん
2008/04/27(日) 14:46:12[2] 問題文(含コード&リンク):リスト構造の構造体を昇順・降順でソートする関数を作成せよ
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2008年04月28日18時まで
[5] その他の制限:
構造体はstruct lines{ *word; struct lines *next; struct lines *prev}です
引数にsort_flagを持ち、0の時は昇順・1の時は降順でソートをします。
ソートして変化があった場合は戻り値1を、変化がなければ0を返します。
ソートはヒープソートでやる必要があります。
文字列で比較し、nextとprevを付け替えるか、wordだけを入れ替えるかは自由です。
よろしくお願いします。
0632デフォルトの名無しさん
2008/04/27(日) 15:00:004x4程度なら盤面をハッシュしつつ完全読みすれば数秒で終わりそうだが
0633デフォルトの名無しさん
2008/04/27(日) 15:04:06> 自明のことですが1x1盤では先手勝ち、2x2盤では後手勝ち。
> 3x3盤では先手必勝がわかっています。
> 4x4盤はわかっていますけど、秘密にしておきます。
> 5x5以上でどうなるかは不明です。
> (一般的な必勝法がわかった方はぜひご連絡下さい。)
0634デフォルトの名無しさん
2008/04/27(日) 15:36:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6368.txt
>>625を参考にしました。
ポインタに関する条件は>>631のとおり。
そんなに徹底的にはテストしてないけど、良さそうかな。
0635606
2008/04/27(日) 15:45:40実行例
探索経路----------
right right down down down return! left left down left goal!
戻りなし経路----------
right right down down left left down left goal!
------------------
0636デフォルトの名無しさん
2008/04/27(日) 15:51:52西暦1582年 10月
Sun Mon Tue Wed Thr Fri Sat
1 2 3 4 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
かっこいい、惚れたぜ、1582年の10月のカレンダー
0637デフォルトの名無しさん
2008/04/27(日) 15:57:57> 指定された構造体を使用する既存のものの変更は認めないが、変数の追加等は可。
これの意味がわからない。
変数を追加する以外は、「/* 処理の記述 */」のところにしかコードを書いちゃだめってこと?
いや、やると決めたわけではないんだけどね。
0638デフォルトの名無しさん
2008/04/27(日) 16:04:57大判振る舞い杉wwwwwwワロタwwwwwww
0639デフォルトの名無しさん
2008/04/27(日) 16:07:150640デフォルトの名無しさん
2008/04/27(日) 16:22:420641デフォルトの名無しさん
2008/04/27(日) 16:24:192012年って地球滅亡ネタだもの。
教授に「理系の人間が、そんな古代のネタにおどらされt(ry」って言われて、怒られて
ソノ後、大変だったぜ
0642デフォルトの名無しさん
2008/04/27(日) 16:41:401年の1月1日は日曜日じゃなかったっけ?
http://wakouji.at.infoseek.co.jp/y2k/y2k11.htm
0644デフォルトの名無しさん
2008/04/27(日) 17:11:43>>636×
>>634○でしたorz
0645634
2008/04/27(日) 17:17:54そんな補正があったとは・・・
DW_JULIANに補正項を入れてください。
- #define DW_JULIAN(ym) (((ZELLER_M(ym)+1)*26/10 + ZELLER_K(ym) + ZELLER_K(ym)/4 + 5 + ZELLER_J(ym)*6) % 7)
+ #define DW_JULIAN(ym) (((ZELLER_M(ym)+1)*26/10 + ZELLER_K(ym) + ZELLER_K(ym)/4 + (ZELLER_Y(ym)<4) + 5 + ZELLER_J(ym)*6) % 7)
0646デフォルトの名無しさん
2008/04/27(日) 17:21:40閏年は3年に一度だったらしいよ
0647デフォルトの名無しさん
2008/04/27(日) 17:23:47本来の法則には則っていなかったらしいよ。だからそんな
現代適用されていない、過ぎ去った過去のカレンダーを
算出すること自体ナンセンス。
0648デフォルトの名無しさん
2008/04/27(日) 17:26:47http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6369.txt
マクロ無しやってみた
0649648
2008/04/27(日) 17:28:470651デフォルトの名無しさん
2008/04/27(日) 19:55:34[2] 問題文(含コード&リンク):
下記の機能を持つ原始的なペイントソフトの作成をせよ。最低でも1.2は必須の機能である。
1.直線の描画
左ボタンを押しながらマウスを移動させ、左ボタンを離すと、左ボタンを押した座標から離した座標までの直線を描画する。
この際、移動最中の過程を消すためのXORペンを使用する。moveto,linetoという関数を用いる。
2.ラバーバンド
右ボタンを押しながらマウスを移動すると、右ボタンを押した座標とマウスの現座標を頂点とする矩形を描写する。
3.ハイライト
描いた直線の先端にマウスカーソルを合わせると、端点が強調される。
4.右ドラッグ選択
描いた直線をラバーバンドで囲み、右クリックを離すと、ラバーバンド内の直線の端点が強調される。
[3] 環境
[3.1] OS:Windows XP
[3.2] Visual C++ 2005(or2008) Express Edition
[3.3] 言語:C++
[4] 期限: 2008年5月4日まで
[5] その他の制限:Windowsフォームアプリケーションで作成。
1.2の機能を持つものであれば十分すぎるほど十分です。
ぜひお力添えしていただければと思います。よろしくお願いします。
0652デフォルトの名無しさん
2008/04/27(日) 20:04:54http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6371.txt
0653デフォルトの名無しさん
2008/04/27(日) 20:11:09マルチ
0654デフォルトの名無しさん
2008/04/27(日) 20:14:48[2] 問題文(含コード&リンク):
C言語を使ってスケジューリングのプログラムを組め。
具体的にはタスクグラフ上のタスクの集合を、複数のプロセッサに実行時間を最初にするように割り当てる問題。
この問題をプログラムで解決するためにタスクグラフをテキストファイルであらわすと以下のようになる。
例
8 一行目は総タスク数(入り口ノードと出口ノードを除く)
000 二行目以降はタスクに関する情報を表していて左から
2310 順に、タスク番号、タスク処理時間、先行タスク数、
1110 それより右は先行タスクの番号を示している。
3311 入り口と出口のノードは処理時間が0なので割り当てる必要はない。
4211
56234
67234
74256
8512
90278
このようなテキストファイルを読み込んで与えられたプロセッサ数に応じてタスクの割り当てを行うようなプログラムを書け。
また例だけでなく、どのようなタスクグラフでも働くようにしなさい。
[3] 環境
[3.1] OS: Linax
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C言語
[4] 期限: 4月30日
[5] その他の制限: 特にないです。
(m。_。)m オネガイシマス
0656デフォルトの名無しさん
2008/04/28(月) 01:35:47>>398 2008/04/27 ヘッダに記載された内容を把握し、ヘッダを使用したプログラムを作成
>>609 2008/04/27 02:12:23 の明日 コードを説明する
>>557 2008/04/29 00:00 <copying-GCをC言語で作成 >
>>558 2008/04/29 for文を使用して、15パズルを作成せよ。
>>555 2008/04/29 構造体「三角形」の作成と利用
>>619 2008/04/30 文字列の集合演算
>>654 2008/04/30 C言語を使ってスケジューリングのプログラムを組め。
>>651 2008/05/04 ペイントソフトの作成
>>553 2008/05/10 ビジュアルベーシックのWinAPI(C++)を使用して、テトリスを作る。
>>542 指定なし 2値化画像を読み込ませ、黒(255)の部分の面積(画素の数を求める
>>629 指定なし パズル
0657デフォルトの名無しさん
2008/04/28(月) 03:57:05[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6359.txt
[3] 環境
[3.1] OS:(WindowsXP)
[3.2] コンパイラ名とバージョン:VC++2005
[3.3] 言語:C++
[4] 期限:5月2日
[5] その他の制限:問題文に記載しています.
よろしくお願いしますm(__)m 。
0658デフォルトの名無しさん
2008/04/28(月) 05:11:35当方の環境は cygwin/WindowsXP, 処理系は gcc 3.4.4 です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6372.txt
>>656
ありがとうございます。非常に助かります。
>>542 は >>27,28 と同じで >>620 に解答が提示されています。
0660デフォルトの名無しさん
2008/04/28(月) 09:50:51幅2ドットと幅8ドットの線分を描け!
三角形、四角形、5角形のポリゴンを描け!
この質問ってこのスレでいいの?
0661デフォルトの名無しさん
2008/04/28(月) 09:56:13ただ図形とかポリゴンとかは何を使って描画するのか書かないと誰も答えてくれないかも
0662660
2008/04/28(月) 10:04:140663デフォルトの名無しさん
2008/04/28(月) 10:07:490664デフォルトの名無しさん
2008/04/28(月) 11:32:250665デフォルトの名無しさん
2008/04/28(月) 11:38:570666デフォルトの名無しさん
2008/04/28(月) 11:47:08君はどうやら、アブノーマルタイプらしいな?ちょっと見せてもらえないかな、
君の普通じゃないCを?
0667660
2008/04/28(月) 11:51:260668デフォルトの名無しさん
2008/04/28(月) 12:07:120669デフォルトの名無しさん
2008/04/28(月) 12:23:38無駄に3次元
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6374.cpp
0670デフォルトの名無しさん
2008/04/28(月) 13:08:15?には6000が入ります
このプログラムはどう書けばいいですか?
0671デフォルトの名無しさん
2008/04/28(月) 13:25:03このパズルの4*4と5*5を解いて下さい。
0672473
2008/04/28(月) 15:30:58大変遅くなりましたが、迅速な回答ありがとうございました
次回からは気をつけさせていただきます
基本中の基本ですね、すいませんでした
0673デフォルトの名無しさん
2008/04/28(月) 16:32:360674デフォルトの名無しさん
2008/04/28(月) 16:33:580675デフォルトの名無しさん
2008/04/28(月) 16:37:31[2] 問題文(含コード&リンク):
char型,signed char型,int型,long int型,unsigned long int型,
short int型,unsigned short int型の扱える値の範囲を表示させるプログラム
[3] 環境
[3.1] OS:WinXP or Linux
[3.2] コンパイラ名とバージョン:VC++9.0(win) or gcc(Linux)
[3.3] 言語:C++
[4] 期限:[2008年04月30日12:50まで]
[5] その他の制限:基本領域なのでstdio.hのみ
表示はprintf、入力はscanf関数のみ
0676デフォルトの名無しさん
2008/04/28(月) 18:25:220677デフォルトの名無しさん
2008/04/28(月) 19:50:24合ってるかわかりませんが、、、
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6376.c
0678657
2008/04/28(月) 19:53:47実行結果確認しました!
ありがとうございましたm(__)m
0679デフォルトの名無しさん
2008/04/28(月) 23:44:26遅くなってごめんね。基本部分は出来たけど、
入力のエラー処理は省いたからそこら辺は自分で何とかして^^;
マッチングしなかった文字列パターンの表示がいらなかったらTESTのコメントがある行を消して。
それと、変数名が適当でごめんね。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6377.c
0680679
2008/04/28(月) 23:49:20main関数の最後の方の
printf("\nResult : %d\n", num);
を、
printf("\nResult : %d\n", num%10000000);
に書き換えておいてね。それじゃ、プロ演 頑張ってね!
0681デフォルトの名無しさん
2008/04/28(月) 23:51:06char b='1';
aかbのどっちがでいいのですが反転する方法ありますか?
(0→1) 、(1→0)
0682デフォルトの名無しさん
2008/04/28(月) 23:54:44b=1-b;
0683デフォルトの名無しさん
2008/04/28(月) 23:56:01のほうなら
a^=1;
で出来ると思うよ
0684デフォルトの名無しさん
2008/04/28(月) 23:56:45if(a==1) a=0;
else if(a==0) a=1;
0685デフォルトの名無しさん
2008/04/28(月) 23:57:44char b='1';
なら
b=((b-'0')^1)+'0';
なんてのは?
0686デフォルトの名無しさん
2008/04/28(月) 23:58:27[2] 「2桁の数字を入力してください」という文を表示させ、38と入力すると「16進数にすると026です」と自動表示させる。
「3文字の略語(アルファベット)を入力してください」という文を表示させ、EOFと入力すると「逆順に表示するとFOEです」と自動表示されるように
次の丸に当てはまる語句を答えなさい
void main(void)
{
char id1,id2,id3;
printf("2桁の数字を入力してください;");
scanf("�@",&�A);
printf("16進数にすると�Bです。\n",id1);
printf("3文字の略語(アルファベット)を入力してください:");
scanf("�C",&�D);
rewind(stdin);
printf("逆順に表示すると�Eです。\n",id1,id2,id3);
}
0687デフォルトの名無しさん
2008/04/28(月) 23:58:59a=1-a;
b^=1;
b=97-b;
0688686
2008/04/28(月) 23:59:33素人なのでほとんどわからなくて
#include <stdio.h>
void main(void)
{
char id1,id2,id3;
printf("2桁の数字を入力してください;");
scanf("%d",&id1);
printf("16進数にすると%xです。\n",id1);
printf("3文字の略語(アルファベット)を入力してください:");
scanf("%d",&id1,id2,id3);
rewind(stdin);
printf("逆順に表示すると%dです。\n",id1,id2,id3);
}
0689デフォルトの名無しさん
2008/04/29(火) 00:02:14nが大きくなるとおかしくなるだろw
0690デフォルトの名無しさん
2008/04/29(火) 00:05:330691デフォルトの名無しさん
2008/04/29(火) 00:13:52#include <stdio.h>
void main(void)
{
int d;
char s[4];
printf("2桁の数字を入力してください;");
scanf("%d",&d);
printf("16進数にすると%03xです。\n",d);
printf("3文字の略語(アルファベット)を入力してください:");
scanf("%3s",s);
rewind(stdin);
printf("逆順に表示すると%c%c%cです。\n",s[2],s[1],s[0]);
}
0692デフォルトの名無しさん
2008/04/29(火) 00:18:37どこがダメなのかここまでヒント出してやってるのにちゃちゃにしか見えないのかw
>n2 = pow(2,n+1);
>n3 = pow(2,n);
nの範囲が1から1000でまともな数がn2とn3に入ると思うのか?
0693デフォルトの名無しさん
2008/04/29(火) 00:23:27http://ex25.2ch.net/test/read.cgi/news4vip/1209395520/l50
0694デフォルトの名無しさん
2008/04/29(火) 00:45:17ご回答いただいたことは非常にありがたいのですが、
>>687のような穴埋め形式の問題プリントが出たので、それだと府正解になってしまうんですよ
0695デフォルトの名無しさん
2008/04/29(火) 00:46:15○>>686のような
0696691
2008/04/29(火) 01:16:13すまん、穴埋めか。
void main(void)
{
char id1,id2,id3;
printf("2桁の数字を入力してください;");
scanf("%d",&id1);
printf("16進数にすると%03xです。\n",id1);
printf("3文字の略語(アルファベット)を入力してください:");
scanf("\n%c%c%c",&id3,&id2,&id1);
rewind(stdin);
printf("逆順に表示すると%c%c%cです。\n",id1,id2,id3);
}
と回答したいところなのだが、
うちの環境(VC++2008EE)では最初のscanfでメモリ壊しちゃうんだよな。
%dにはint型のアドレスを渡さないと。
0697デフォルトの名無しさん
2008/04/29(火) 01:18:30>>398 2008/04/27 ヘッダに記載された内容を把握し、ヘッダを使用したプログラムを作成
>>609 2008/04/27 02:12:23 の明日 コードを説明する
>>557 2008/04/29 00:00 <copying-GCをC言語で作成 >
>>558 2008/04/29 for文を使用して、15パズルを作成せよ。
>>654 2008/04/30 C言語を使ってスケジューリングのプログラムを組め。
>>651 2008/05/04 ペイントソフトの作成
>>553 2008/05/10 ビジュアルベーシックのWinAPI(C++)を使用して、テトリスを作る。
>>542 指定なし 2値化画像を読み込ませ、黒(255)の部分の面積(画素の数を求める
>>629 指定なし パズル http://www2u.biglobe.ne.jp/~shunbook/omocha/tlwin4.htm
0698デフォルトの名無しさん
2008/04/29(火) 01:31:43最後にデバッグエラーが出ましたが、無事にできました。
親切なご回答をどうもありがとうございました
0699デフォルトの名無しさん
2008/04/29(火) 01:32:110700デフォルトの名無しさん
2008/04/29(火) 04:25:29完成
http://sleep-soul0131.hp.infoseek.co.jp/kurodotto.zip
このプログラムはbmp用に作成してある。
また黒のドットだけ出力しても正しいのかどうかわかりにくいから
画像の基本情報(縦横のピクセル等)の出力を付けている。
サンプルを2つ付けたが一つは分かりやすく全体が真っ黒のbmpにしてある。
真っ黒のbmpをプログラムに読み込ませたときの結果として、
縦ピクセル×横ピクセル=プログラムで出力された黒のドット数になったので
おそらく正しいはずだが100%正しいとは言い切れないのでよろしく。
0701デフォルトの名無しさん
2008/04/29(火) 04:44:36ごめん、途中なんだけどうpします。もう体力が尽きたorz
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6379.txt
総当りで探します。一応、最速解は出ます。
ファイルは読むようになってなくて、中でデータ持ってます。
プロセッサ数も変えられますが、増やすと遅いです。
0702679
2008/04/29(火) 09:44:13指摘サンクス。言われて気づいた俺OTZ
とりあえずオーバーフローは回避したけど、
検索する回数がO(2^n)なのでアルゴリズム的には終わってる。
これを出題した人のパソコンは、2^1000個ものパターンを
検索出来るのだろうか?
とりあえず上げておくけど、俺のパソコンショボいから
n=100すら時間かかりまくって検証出来ないT-T。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6380.c
0703デフォルトの名無しさん
2008/04/29(火) 10:00:55包含関係を除去しておけば、同じように引き算するだけでは?
0704デフォルトの名無しさん
2008/04/29(火) 10:59:25あと、2^n - 999*(2^(n-2))だとマイナスになっちゃうよ。
0705デフォルトの名無しさん
2008/04/29(火) 11:18:11abが先頭から最後まで動けるのは999とおりあります。
***の部分を任意の文字で埋めると2の(n-2)とおりあります。
でもこれだと重複する文字列がでまくりでした。それを外せば良いんです。
0706デフォルトの名無しさん
2008/04/29(火) 11:19:490707デフォルトの名無しさん
2008/04/29(火) 11:22:49aabbとかはどうすれば良いんでしょうか
0708デフォルトの名無しさん
2008/04/29(火) 13:50:13[2] 問題文: 複素行列のN×N逆行列を求めるプログラム。求めた逆行列はcsvで出力。複素数の出力はa+ibという形で。(a,bは実数)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC++ 6.0
[3.3] 言語: (C/C++/どちらでも可)
[4] 期限: [5月1日12:50まで]
[5] その他の制限: 動的配列は習っています。手法の制限はないです
よろしくお願いしますm(_ _)m
0709デフォルトの名無しさん
2008/04/29(火) 15:24:40http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6381.txt
総当りよりはまあマシだと思う。
0710デフォルトの名無しさん
2008/04/29(火) 15:28:02[2] 問題文(含コード&リンク):
ファイル名を入力し、Cドライブ配下にある同名のファイルを探して出力する。
なお、そのファイルがある場所のパスも出力する。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:VC++ 2005
[3.3] 言語: C/C++/どちらでも可
[4] 期限: 無期限
よろしくお願いします。
0711デフォルトの名無しさん
2008/04/29(火) 15:36:31MFCも使っていいのか?
0712デフォルトの名無しさん
2008/04/29(火) 15:45:27#include <string>
#include <iostream>
#include <vector>
#include <windows.h>
#include <stack>
using namespace std;
class dirdata{ public: string name; int n;};
main(){
string findstr;
cout<<"ファイル名を入力して下さい "; cin>>findstr;
stack <dirdata> dir; vector<string> path;
int N; dirdata x; WIN32_FIND_DATA fd; HANDLE hd=NULL;
x.name="c:\\"; x.n=1; dir.push(x);
while(1){
if(hd==NULL)goto fst;
if(!FindNextFile(hd, &fd)){
fst: CloseHandle(hd);
if(dir.empty()) return 0;
x=dir.top(); dir.pop();
N=x.n+1;path.resize(N);
path[N-1]=path[N-2]+x.name;
hd = FindFirstFile((path[N-1]+"*").c_str(), &fd);}
if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)){
if(findstr==fd.cFileName)cout<<" PATH = "<< path[N-1]+fd.cFileName<<endl;}
else if(fd.cFileName[0]!='.' || ( fd.cFileName[1]!='.' && fd.cFileName[1]!='\0' ))
{x.name=(string)fd.cFileName+"\\"; x.n=N; dir.push( x );}}}
0713デフォルトの名無しさん
2008/04/29(火) 15:45:55#include <stdio.h>
#define N 3
typedef struct{double r,i;}cpx;
cpx sub(cpx z1,cpx z2){return (cpx){z1.r-z2.r,z1.i+z2.i};}
cpx mul(cpx z1,cpx z2){return (cpx){z1.r*z2.r-z1.i*z2.i,z1.r*z2.i+z1.i*z2.r};}
cpx con(cpx z){return (cpx){z.r, -z.i};}
cpx div(cpx z1,cpx z2){
cpx tmp1=mul(z1,con(z2)),tmp2=mul(z2,con(z2));
return (cpx){tmp1.r/tmp2.r,tmp1.i/tmp2.r};
}
void hoge(cpx z[N][2*N]){
int i,j,k;
for(i=0;i<N;i++) for(j=0;j<N;j++) z[i][j+N]=(cpx){0,0};
for(i=0;i<N;i++) z[i][i+N]=(cpx){1,0};
for(i=0;i<N;i++){
cpx tmp1=z[i][i];
for(j=0;j<2*N;j++) z[i][j]=div(z[i][j],tmp1);
for(j=0;j<N;j++)
if(j!=i){
cpx tmp2=div(z[j][i],z[i][i]);
for(k=0;k<2*N;k++) z[j][k]=sub(z[j][k],mul(z[i][k],tmp2));
}
}
}
int main(void){
cpx z[N][2*N];
int i, j;
for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%lf%lf",&z[i][j].r,&z[i][j].i);
for(hoge(z),i=0;i<N;i++,putchar('\n')) for(j=N;j<2*N;j++) printf("%g+%gi ",z[i][j].r,z[i][j].i);
return 0;
}
0714デフォルトの名無しさん
2008/04/29(火) 15:47:180715デフォルトの名無しさん
2008/04/29(火) 15:54:08こっちのほうが見やすい
#include <string>
#include <iostream>
#include <vector>
#include <windows.h>
#include <stack>
using namespace std;
class dirdata{ public: string name; int n;};
main(){
string findstr,s;
cout<<"ファイル名を入力して下さい "; cin>>findstr;
stack <dirdata> dir; vector<string> path;
int N; dirdata x; WIN32_FIND_DATA fd; HANDLE hd=NULL;
x.name="C:\\"; x.n=1; dir.push(x);
while(1){
if(hd==NULL)goto fst;
if(!FindNextFile(hd, &fd)){
fst: CloseHandle(hd);
if(dir.empty()) return 0;
x=dir.top(); dir.pop();
N=x.n+1;path.resize(N);
path[N-1]=path[N-2]+x.name;
hd = FindFirstFile((path[N-1]+"*").c_str(), &fd);}
s=fd.cFileName;
if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)){
if(findstr==s)cout<<" PATH = "<< path[N-1]+s<<endl;}
else if(s[0]!='.' || ( s[1]!='.' && s[1]!='\0' ))
{x.name=s+"\\"; x.n=N; dir.push( x );}}}
0716デフォルトの名無しさん
2008/04/29(火) 15:59:060717デフォルトの名無しさん
2008/04/29(火) 18:54:550718デフォルトの名無しさん
2008/04/29(火) 18:55:580719デフォルトの名無しさん
2008/04/29(火) 19:14:28[2] 問題文(含コード&リンク):WinAPIのwaveOutGetPositionを使用して、非同期で再生中のwavの再生位置を取得する最低限のプログラムを作成しなさい
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: borlandC++5.5.1
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:コンソールアプリケーション(int main(void)関数)で作成する事
5秒毎に再生位置を取得し、コンソールへ「X秒経過」と表示させる事
wavファイルは各自用意し、再生させるファイル名は#define FILENAME "ファイル名.wav"とする事
再生終了後は「再生終了」と表示しgetchar();で待機する事
ポインタ変数は使用しない事
よろしくおねがいします
0720710
2008/04/29(火) 19:25:08>>711
使わないで出来れば使わない方が良いかと思います
>>712、714、715
ありがとうございます!!!!
0721デフォルトの名無しさん
2008/04/29(火) 22:41:15[2] 問題文(含コード&リンク):キーボードから30個の配列に少数を代入し、それらを小さい順に並び替え、その結果をモニタに出力するプログラムを作成せよ。このソートの問題は、バブルソートで実施し、連続する2数の交換はmain以外の関数swapで実施せよ。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: Microsoft Visual Stdio2005
[3.3] 言語: (C)
[4] 期限: (4月30日夜まで)
0722デフォルトの名無しさん
2008/04/29(火) 22:53:56http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6382.txt
0723デフォルトの名無しさん
2008/04/29(火) 22:59:21ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6383.c
0724デフォルトの名無しさん
2008/04/29(火) 23:10:27ありです。
0725デフォルトの名無しさん
2008/04/30(水) 00:16:48#include<io.h>
char p[260]="c:\\",t[260];s(){struct _finddata_t f;char*n=f.name;int h,l=strlen(p);
if(~(h=_findfirst(strcat(p,"*.*"),&f)))do f.attrib&16&&strcmp(n,".")&&strcmp(n,"..")
&&strcat(strcpy(p+l,n),"\\")&&s(),strcmp(n,t)||printf("%.*s%s\n",l,p,t);
while(!_findnext(h,&f)||_findclose(h));}main(){scanf("%s",t);s();}
0726デフォルトの名無しさん
2008/04/30(水) 01:41:03[2] 問題文:配列の全要素の最大公約数を求める関数 gcdary を実装
せよ。また、要素数が n である配列に自然数 n 個を読み込み、関数
gcdary を用いてそれらの最大公約数を求めるプログラムを作成せよ。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Borland C++ Compiler5.5
[3.3] 言語:C
[4] 期限:2008年5月1日15:00まで
[5] その他の制限:まだ配列、関数の定義程度までしかやってません
ホントに基礎からよくわかりません
お願いします
0727デフォルトの名無しさん
2008/04/30(水) 01:52:31726なんですがおそらく使用するヘッダはstdio.hだけです
0728デフォルトの名無しさん
2008/04/30(水) 02:02:16当方の環境は cygwin/WindowsXP, 処理系はgcc3.4.4 です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6385.txt
0729デフォルトの名無しさん
2008/04/30(水) 02:04:29関数の定義までしてるなら後は呼び出すコードを書くだけじゃないか。
0730デフォルトの名無しさん
2008/04/30(水) 02:10:53#include <stdio.h>
#define N 100
int gcd(int num1, int num2){
int tmp;
while(num2 != 0){
tmp = num1%num2;
num1 = num2;
num2 = tmp;
}
return num1;
}
int gcdary(int *a, int n){
int i, ret = a[0];
for(i = 1; i < n; i++)
ret = gcd(ret, a[i]);
return ret;
}
int main(void){
int a[N], n;
for(n = 0; n < N; n++)
if(scanf("%d", &a[n]) != 1)
break;
printf("gcd : %d\n", gcdary(a, n));
return 0;
}
0731デフォルトの名無しさん
2008/04/30(水) 02:43:15ありがとうございます!
何とか理解できてきたので参考にさせていただきますm(__)m
0732デフォルトの名無しさん
2008/04/30(水) 15:14:03http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame.htm
0733デフォルトの名無しさん
2008/04/30(水) 19:48:45DELPHIはあるのに。
作らなきゃダメなのか…
0734デフォルトの名無しさん
2008/04/30(水) 20:19:16下のように回答したら×を付けられました。
void x_strcpy(char *dst, const char *src)
{
do {
*dst = *src;
} while (*src++ != '\0');
}
教授からの指摘は、次のとおりです。
「*src が '\0' を評価した後に ++ されて src の領域外に出ている。アクセス違反が起きる」
ポインタによる領域外の値は、その領域への参照(評価時など含む)、または書き込みしなければ無害ですよね?
char *s = "abc"; として
s += 10000; としても、s を参照(評価)、書き込みしなければ問題ないですよね?
0735デフォルトの名無しさん
2008/04/30(水) 20:24:450736デフォルトの名無しさん
2008/04/30(水) 20:28:30>>734です。
>dstがインクリメントされてない方がきになる
すみません。投稿ミスです。
★再掲載。
文字列をコピーする関数を作成せよという問題が出て、
下のように回答したら×を付けられました。
void x_strcpy(char *dst, const char *src)
{
do {
*dst++ = *src;
} while (*src++ != '\0');
}
教授からの指摘は、次のとおりです。
「*src が '\0' を評価した後に ++ されて src の領域外に出ている。アクセス違反が起きる」
ポインタによる領域外の値は、その領域への参照(評価時など含む)、または書き込みしなければ無害ですよね?
char *s = "abc"; として
s += 10000; としても、s を参照(評価)、書き込みしなければ問題ないですよね?
0737デフォルトの名無しさん
2008/04/30(水) 20:30:53http://www.youtube.com/watch?v=zrBV5Ru31jI
飛んで 飛んで 飛んで 飛んで 飛んで
飛んで 飛んで 飛んで 飛んで
回って 回って 回って 回〜るぅうううぅ〜♪
0738デフォルトの名無しさん
2008/04/30(水) 20:50:15dstの終端が'\0'じゃない
0739デフォルトの名無しさん
2008/04/30(水) 20:52:200740デフォルトの名無しさん
2008/04/30(水) 20:54:290741デフォルトの名無しさん
2008/04/30(水) 20:54:52Delphiの何のことなのかを添えて質問系のスレで聞けば回答が来ると思うよ。
0742デフォルトの名無しさん
2008/04/30(水) 20:55:020743デフォルトの名無しさん
2008/04/30(水) 20:57:01その教授の論だとよく使われる
while(*dst++=*src++);
もアクセス違反になるのかよw
src範囲外にアクセスしないことが明白なら問題ないだろ。
0744デフォルトの名無しさん
2008/04/30(水) 21:11:42少なくとも標準規格では、ポインタが
配列の最後の要素の次を指すのは問題ないとなっている。
(もちろんそこから逆参照しない限り)
それ以外の外れた場所を指すポインタはまずかったはずだが、
未定義だか処理系依存だかまでは覚えていない。
0745デフォルトの名無しさん
2008/04/30(水) 21:14:370746デフォルトの名無しさん
2008/04/30(水) 21:17:36>>736です。
>その教授の論だとよく使われる
>while(*dst++=*src++);
>もアクセス違反になるのかよw
>src範囲外にアクセスしないことが明白なら問題ないだろ。
上のように書いた生徒も×を貰っていました。
理由は同じく、'\0'を評価したあとにポインタが範囲外を指している。アクセス違反が起きる。
void x_strcpy(char *dst, const char *src)
{
do {
*dst++ = *src;
} while (*src++ != '\0');
}
src が "hello" で dst のサイズが 6 * sizeof(char) のときでも
while(*dst++=*src++); のあとに *dst にアクセスしなければ問題ないコードですよね?
0747デフォルトの名無しさん
2008/04/30(水) 21:24:290748デフォルトの名無しさん
2008/04/30(水) 21:35:49>>736です。
教授のホームページには
世の中の while(*dst++=*src++); は間違いであると書いてあります。
指摘してみます。
0749デフォルトの名無しさん
2008/04/30(水) 21:35:56>「*src が '\0' を評価した後に ++ されて src の領域外に出ている。アクセス違反が起きる」
領域外を指している状態、と、アクセス違反が起きること、は等しくないと説明してやれよw
領域外を指している状態で何か書き込めば別だがな
上記の例ではありえないだろ
0750デフォルトの名無しさん
2008/04/30(水) 21:38:50ちょっとそのページ曝してみてよ。
0751デフォルトの名無しさん
2008/04/30(水) 21:39:04>>744氏の言う通り、攻め所は「Cの規格で最後の要素の次の要素を指す
ポインタの存在は認められている」だな
ちゃんと○をもらって報告するように
0752デフォルトの名無しさん
2008/04/30(水) 21:43:340753デフォルトの名無しさん
2008/04/30(水) 21:46:45>>736です。
ありがとうございます。
> >>744氏の言う通り、攻め所は「Cの規格で最後の要素の次の要素を指す
> ポインタの存在は認められている」だな
C言語の規格書を検索していましたが有償なんですね。。。
0754デフォルトの名無しさん
2008/04/30(水) 21:46:45それ自体はバグじゃなくても、将来のバグを誘発or拡大する可能性のあるコードは避けるべきだ。
・・・という主張なんだろう。
考え方としては重要だけど、
オブジェクト指向が浸透した今となってはちょっと神経質すぎるなw
この関数に関して上記みたいな問題が起きたら、
わざわざ人が作った関数分解して変なバグ埋め込んだお前が悪い、ってことになるだけだし。
0755デフォルトの名無しさん
2008/04/30(水) 21:47:06JIS X3010:2003
6.5.6 加減演算子
……
さらに,式Pが配列要素の最後の要素を指す場合,
式(P)+1はその配列オブジェクトの最後の要素を一つ超えたところを指し,
式Qが配列オブジェクトの最後の要素を1つ超えたところを指す場合,
式(Q)-1はその配列オブジェクトの最後の要素を指す。
……
0756デフォルトの名無しさん
2008/04/30(水) 21:48:44http://www.jisc.go.jp/app/pager?%23jps.JPSH0090D:JPSO0020:/JPS/JPSO0090.jsp=&RKKNP_vJISJISNO=X3010
0757デフォルトの名無しさん
2008/04/30(水) 21:50:20> 要は、EOFはもうそれ以上入力がないということを示す
なんでそんな偉そうなんだか正直分からない。
0758デフォルトの名無しさん
2008/04/30(水) 21:51:380759デフォルトの名無しさん
2008/04/30(水) 21:51:52# 偉そうに答えるからです
0760デフォルトの名無しさん
2008/04/30(水) 21:52:36ゲ
おまえもいるのか。
0761デフォルトの名無しさん
2008/04/30(水) 21:54:53ゲ
おまえがいたのか。
0762デフォルトの名無しさん
2008/04/30(水) 21:55:33C言語のことに関しては、
大学教授よりCの委員会の中の人のほうが偉いのです。
0763デフォルトの名無しさん
2008/04/30(水) 21:55:490764デフォルトの名無しさん
2008/04/30(水) 21:56:40>>736です。
ありがとうございます。JISなら閲覧可能ですね。
きちんと明示されていました。安心しました。
0766デフォルトの名無しさん
2008/04/30(水) 22:01:32煽られ耐性ないから構わないように
0767デフォルトの名無しさん
2008/04/30(水) 22:05:00不思議だ。
0768758
2008/04/30(水) 22:06:44天下の教授にいちゃもんつけようとする>>764は単位取れないなw
高脳は正しいと判ってても我を通さずにうまくやるが、低脳は猪突猛進だからな
0769デフォルトの名無しさん
2008/04/30(水) 22:07:35何か間違ったんですか?英語ではコロン、セミコロン、ピリオドの上限関係は
決まってんだYO!
# お前ら日本人に英語は似つかないぜ?ハーフの俺だけにしとけ、
# このスレで英語について語るのは、な?
0770デフォルトの名無しさん
2008/04/30(水) 22:23:15for(i=0; i<sizeof a / sizeof(int); i++) printf("%d ", a[i]);
とか書くじゃない?
その教授の論法で言うなら、ループ終了時のiの値は配列外をさすからアクセス違反で禁止
しなければいけなくなると思うんだけど、そういう点はどう考えてるんだろ。
0771デフォルトの名無しさん
2008/04/30(水) 22:24:26>教授のホームページには
>世の中の while(*dst++=*src++); は間違いであると書いてあります。
工学のため、そのページを教えてください
0772デフォルトの名無しさん
2008/04/30(水) 22:27:39その例だとちょっと違うのでは?
int *p=&a[0];
for(i=0; i<sizeof a / sizeof(int); i++,p++) printf("%d ", *p);
じゃね?
0774デフォルトの名無しさん
2008/04/30(水) 22:32:52外から凸できる手段があれば、764に代わって凸してもいいんだが。
0775デフォルトの名無しさん
2008/04/30(水) 22:34:580776デフォルトの名無しさん
2008/04/30(水) 22:37:450777デフォルトの名無しさん
2008/04/30(水) 22:38:070778デフォルトの名無しさん
2008/04/30(水) 22:38:17num = rnd[rand()%3];
0779デフォルトの名無しさん
2008/04/30(水) 22:38:210,1,2の乱数で場合わけ白よ
0780デフォルトの名無しさん
2008/04/30(水) 22:50:05遅くなりましたが、細かい指摘ありがとうございました。そして質問です。
[1] 授業単元:Cプログラミング言語(修正
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6389.txt
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン:CPad for Borland
[3.3] 言語: (C)
[4] 期限:5/01まで
[5] その他の制限:
入力はgetcharで行い、バブルソートについてはstrcpyなど使用。
�@先ほどの方に解いていただいた問題で、右シフトのことなど忘れていたので、
いじらさせてもらったのですが、このやり方だとなぜか左シフトのときに
unsignedの中を飛び出しているようで、255以上の数字と16進が表示されてしまってます。
自分にはよくわからないのですが、どうすればよいでしょうか;
�Aこちらも前に質問させていただいたものなのですが、�Aのプログラムを
fgetsではなく、文字数制限のないgetcharで表すにはどうすればいいでしょうか?
�Bこちらも少し前に質問させていただいたのですが、クイックソートではダメと言われ
クイックソートをバブルソートに変えようと思うのですが、どのようにすればよいでしょうか?
修正ばかりで期限も明日までという問題ですが、よろしくお願いします。
0781デフォルトの名無しさん
2008/04/30(水) 23:02:240782デフォルトの名無しさん
2008/04/30(水) 23:35:52�Bについて
バブルソートの関数作ればいいんじゃね?
0783デフォルトの名無しさん
2008/04/30(水) 23:37:01よろしくお願いします。
[1] 授業単元:C言語
[2] 問題文:
AとBとCの「合計」、「平均」、「%」を表示させなさい
A=20.8
B=10.4
C=5.2
合計(?)
平均(?)
Aは全体の?%です
Bは全体の?%です
Cは全体の?%です
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual stdio 2005
[3.3] 言語: (C言語)
[4] 期限:無期限
[5] その他の制限:(C言語検定3級程度しか習ってません)
0784デフォルトの名無しさん
2008/05/01(木) 00:00:58[2] 問題文:
5日分の気温データ(月・日・最高気温・最低気温)を入力し、
最高気温の高い順に並び替えるプログラムを作成せよ。
[3] 環境
[3.1] OS:WindowsVista
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C++
[4] 期限:2008年5月1日22:00まで
[5] その他の制限:
教授から出されたヒント
・並べ替え(ソート)の方法はいろいろあるが、バブルソートが簡単
・バブルソートの基本は、「比較」「交換」の2重ループ
たぶんこんなのを使います(+_+)↓
#include <iostream.h>
struct PersonalData{
int month ; // 月
int day ; // 日
double high ; // 最高気温
double low ; // 最低気温
};
よろしくお願いします(:_;)
0785デフォルトの名無しさん
2008/05/01(木) 00:08:11全部一気には書き込めないので3回に分けます
#include <stdio.h>
#define _A 20.8
#define _B 10.4
#define _C 5.2
#define NUM 3
void CalculateTotal( double a, double b, double c, double *pTotal );
void CalculateAverage( double total,int num, double *pAverage );
void CalculateRatio( double total, double rate, double *pRatio );
0786デフォルトの名無しさん
2008/05/01(木) 00:08:42{
/* まずはベースとなる3つの小数の宣言 */
double A = _A;
double B = _B;
double C = _C;
/* 回答を入れるための変数を宣言しておく */
double total = 0;
double average = 0;
double ratioA = 0;
double ratioB = 0;
double ratioC = 0;
/* 合計の計算 */
CalculateTotal( A, B, C, &total );
/* 平均の計算 */
CalculateAverage( total, NUM, &average );
/* Aの割合の計算 */
CalculateRatio( total, A, &ratioA );
/* Bの割合の計算 */
CalculateRatio( total, B, &ratioB );
/* Cの割合の計算 */
CalculateRatio( total, C, &ratioC );
/* ここに好きな出力文を入れてください */
return( 0 );
}
0787最後
2008/05/01(木) 00:09:16void CalculateTotal( double a, double b, double c, double *pTotal )
{
*pTotal = a + b + c;
}
/* 平均を求める関数 */
void CalculateAverage( double total, int num, double *pAverage )
{
*pAverage = total / num;
}
/* 第二引数が第一引数に占める割合を求める関数 */
void CalculateRatio( double total, double rate, double *pRatio )
{
*pRatio = ( rate / total ) * 100;
}
/* なんか勘違いしてるようなら教えてね */
0788デフォルトの名無しさん
2008/05/01(木) 00:17:59#include <stdio.h>
int main(void)
{
int i;
double a[3], sum = 0;
for(i=0; i<3; i++) {
printf("%c=", 'A' + i);
scanf("%lf", a+i);
sum += a[i];
}
printf("合計%f\n平均%f\n", sum, sum / 3);
for(i=0; i<3; i++) printf("%cは全体の%.2f%です\n", 'A' + i, a[i]*100/sum);
return 0;
}
0789デフォルトの名無しさん
2008/05/01(木) 00:24:28�@配列に格納しろと言っておきながら、配列つかってねぇーじゃん。
なにこれ?
0790デフォルトの名無しさん
2008/05/01(木) 00:26:190792デフォルトの名無しさん
2008/05/01(木) 00:43:59んー、そうでしょうかね。やっぱり、そうでしょうね。 >>764 はここで不明点を解消できたので、
あとは、教授の人柄を見極めた上での対応が求められますね。これは結構難易度の高い問題ですね。
0793デフォルトの名無しさん
2008/05/01(木) 00:48:36�Aどこかで見たことあると思ったらおれ作ったやつだ
なんか改悪されてるんで他の人よろしく
あと、fgets嫌いならはじめ出題するときからgetcharのみってすりゃ手戻りしないのに
0794デフォルトの名無しさん
2008/05/01(木) 00:51:23この関数を追加して、
void bubble_sort( char name[][NAME_LEN + 1], int num )
{
int i, j;
char t[NAME_LEN + 1];
for( i = 0 ; i < num-1 ; i ++ )
for( j = i+1 ; j < num ; j ++ )
if( strcmp( name[i], name[j] ) > 0 )
{
strcpy( t, name[i] );
strcpy( name[i], name[j] );
strcpy( name[j], t );
}
}
mainの中から呼ぶように。
// ソート
bubble_sort( name, num );
//qsort( name, num, sizeof(*name), strcmp );
0795デフォルトの名無しさん
2008/05/01(木) 02:23:35[2] 問題文(含コード&リンク):数字を5個入力し、最後に入力した数から順に出力するプログラムを作れ。
(入力時、出力時両方に配列とfor文(while文でもよい)による繰り返しを使うこと)
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: Microsoft Visual Stdio2005
[3.3] 言語: (C)
[4] 期限: (5月1日夜まで)
0796デフォルトの名無しさん
2008/05/01(木) 02:30:04#include <stdio.h>
#define N 5
int main(void)
{
int i;
int num[5];
for(i=0;i<N;i++){
printf("数値
%d入力>",i+1);
scanf("%d",&num[i]);
}
printf("\n");
for(i=N-1;i>=0;i--){
printf("数値%d:%d\n",i+1,num[i]);
}
return 0;
}
0798デフォルトの名無しさん
2008/05/01(木) 03:22:05#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void binary(unsigned char n, char *s) { int i; for (i = 0; i < 8; i++) { *s = (n & 0x80) ? '1' : '0'; s++; n <<= 1; } *s = '\0'; }
void print(unsigned char n) { char b[9]; binary(n, b); printf("%3d, %02x, %s\n", n, n, b); }
void _gets(char *s, int size) { int c; while ((c = getchar()) != '\n') { if (size > 1) { if (!isdigit(c)) { puts("エラー"); exit(0); } *s++ = c; size--; } } *s = '\0'; }
void main() { char s[4]; unsigned char n; _gets(s, sizeof(s)); if (s[0] == '\0') { puts("エラー"); exit(0); } n = atoi(s); if (n < 0 || n > 255) { puts("エラー"); exit(0); } print(n); print(n << 1); print(n >> 1); print(~n); }
0799デフォルトの名無しさん
2008/05/01(木) 04:54:450800デフォルトの名無しさん
2008/05/01(木) 05:06:20[2] 問題文(含コード&リンク):乱数で値を設定し、その数を当てる簡単なゲームを作れ。
コンピュータが乱数で答えを設定し、人間がその数を当てる。
数字を入力すると、答えが入力した数より大きいか、小さいかを
ヒントとして出力し、正解が出るまで繰り返す。
答えの数の範囲は各自設定すること。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: Microsoft Visual Stdio2005
[3.3] 言語: (C)
[4] 期限: (5月1日夜まで)
0801デフォルトの名無しさん
2008/05/01(木) 05:14:21#include <stdlib.h>
#include <time.h>
int main(void)
{
int n, ans;
srand(time(NULL));
ans = rand() % 100 + 1;
while(1) {
printf("input number(1-100):");
scanf("%d", &n);
if(n < ans) printf("too small.\n");
else if(n > ans) printf("too big.\n");
else break;
}
printf("correct!\n");
return 0;
}
0802デフォルトの名無しさん
2008/05/01(木) 14:44:16Cプログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6391.txt
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
5月6日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
できるだけ簡単なもので・・。
全部じゃなくても構いません。できるだけでいいのでよろしくお願いします。
0803デフォルトの名無しさん
2008/05/01(木) 16:33:310804デフォルトの名無しさん
2008/05/01(木) 16:44:35[2] 宅急便の料金が次の様に決まっているとき、
金額計算をするプログラムを作れ。
(何を入力、出力とするかは各自で考えること。
入力待ちの時には適切なメッセージを表示すること。)
縦横奥行きの合計が60cm以内で、かつ重量が 2kg 以下の時 800円
縦横奥行きの合計が80cm以内で、かつ重量が 5kg 以下の時 1100円
縦横奥行きの合計が120cm以内で、かつ重量が 15kg 以下の時 1500円
お急ぎ便の場合は 500円加算される。
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: Microsoft Visual Stdio2005
[3.3] 言語: (C)
[4] 期限: (5月1日夜まで)
0805デフォルトの名無しさん
2008/05/01(木) 16:55:09[2] 問題文(含コード&リンク):セルフで暫定税率前の価格で購入できる精算機を作れ
[3] 環境
[3.1] OS: 精算機
[3.2] コンパイラ名とバージョン: 給油ノズル
[3.3] 言語: ジャパニーズ
[4] 期限: 5月1日0時まで
0806デフォルトの名無しさん
2008/05/01(木) 17:07:54#include <stdio.h>
int main(void)
{
int size, weight, price;
char ch;
printf("縦横奥行きの合計を入力してください(cm):");
scanf("%d", &size);
printf("重量を入力してください(kg):");
scanf("%d", &weight);
if(size > 120 || weight > 15) {
printf("お取り扱いできません\n");
return 0;
}
else if(size > 80 || weight > 5) price = 1500;
else if(size > 60 || weight > 2) price = 1100;
else price = 800;
printf("お急ぎ便ですか?(YorN)");
scanf(" %c", &ch);
if(ch=='Y'||ch=='y') price += 500;
printf("料金は%d円です\n", price);
return 0;
}
0807デフォルトの名無しさん
2008/05/01(木) 17:27:50"YorN"って言ってんだからちゃんと判断しろよw
(N以外でスルーすんな)
0808デフォルトの名無しさん
2008/05/01(木) 17:30:54サイズや重量が0でも料金計算していいのかYO!
(if文の判定順を逆にすんな)
0809デフォルトの名無しさん
2008/05/01(木) 17:31:070810>808
2008/05/01(木) 17:32:51どゆこと?
0811デフォルトの名無しさん
2008/05/01(木) 17:33:550813デフォルトの名無しさん
2008/05/01(木) 17:45:39そうガミガミするなって。やるならやる、その意思表示がされないなら無しとする、そうだろ?
0814デフォルトの名無しさん
2008/05/01(木) 17:46:430815>813
2008/05/01(木) 17:50:300816デフォルトの名無しさん
2008/05/01(木) 18:05:40【課題1】
int rn(int x) { return (48109 * x + 2531011) % 32768; }
0817デフォルトの名無しさん
2008/05/01(木) 18:23:32http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6392.txt
0818デフォルトの名無しさん
2008/05/01(木) 18:27:210819デフォルトの名無しさん
2008/05/01(木) 18:30:410820817
2008/05/01(木) 18:40:34http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6393.txt
修正
0821ベーコン
2008/05/01(木) 19:59:22[2] 問題文:a〜zで構成されたランダムな文字列がファイルに書かれてある。
この文字列の中から任意の文字列を検索するプログラムを作成し、以下の問いに答えよ。
1.programという文字列は何個あるか。
2.以下の文字は、それぞれ何行目の何番目の文字から始まるか。
university, puroguramingu, など。
※ファイルはテキストファイルで与えられており、中身は本当に適当にa〜zを
並べられたもので、画面いっぱいみっちりとアルファベットで埋めてあります。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限:20年5月10日まで
[5] その他の制限:なし
よろしくお願いします。
0822デフォルトの名無しさん
2008/05/01(木) 20:10:060823デフォルトの名無しさん
2008/05/01(木) 20:15:120824デフォルトの名無しさん
2008/05/01(木) 20:18:130825デフォルトの名無しさん
2008/05/01(木) 20:23:57うぜーよお前、別スレで言い負けして悔しいのぅ悔しいのぅ
コピペに反応して、EOFに関してナンバーサインに加担してたアホw
0826 ◆mt9EVUH7Ww
2008/05/01(木) 20:30:02[2] 問題文(含コード&リンク):
↓以下URLを参照して下さい。
http://foghorn.cadlab.lafayette.edu/cadapplets/MazeRouter.html
Maze Router:ある2端子を入力して配線経路を導く配線アルゴリズム
を作成せよ。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン:Microsoft .NET Framework SDK
[3.3] 言語: C言語
[4] 期限: 2008年5月10日
[5] その他の制限:できるだけ簡単なもので・・。
ご多忙中のところお手数おかけします。
以上、宜しくお願い致します。
0827デフォルトの名無しさん
2008/05/01(木) 20:30:42「速度と距離の入力して時間を求めるプログラミング」を聞いたものですが
言語がc++じゃなくcでした。
自分なりにやってみたのですがわかりません。
#include <stdio.h>
int main (void)
{
int v,d; /* v=velocity,d=distance;*/
puts("速度と距離を入力してください。");
printf("速度[km/h]:"); scanf("%d, &v);
printf("速度[km]:"); scanf("%d, &d);
〜時間〜分という表示のさせかたがわかりません。
教えてください。
0828デフォルトの名無しさん
2008/05/01(木) 20:37:22>>820
ありがとうございます!
0829デフォルトの名無しさん
2008/05/01(木) 20:49:57printf("%d時間%d分", d / v, d % v * 60 / v);
0830デフォルトの名無しさん
2008/05/01(木) 20:53:18[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6394.txt
[3] 環境
[3.1] OS:Mac
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: (2008,5.7 22:00まで)
[5] その他の制限: 昇順で数と回数を表示する線形リストは授業でやりました。できれば単純なものでお願いします。
よろしくおねがいします。
0831デフォルトの名無しさん
2008/05/01(木) 20:58:40ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6397.txt
0832デフォルトの名無しさん
2008/05/01(木) 21:01:10本当にありがとうございました。
助かりました!
0833822
2008/05/01(木) 21:06:48#include <stdio.h>
#include <string.h>
#include <limits.h>
static int table[UCHAR_MAX + 1];
void maketable(const char *ptn){
int i, len = strlen(ptn);
for(i = 0; i < UCHAR_MAX; i++) table[i] = len;
for(i = 0; i < len; i++) table[(int)ptn[i]] = --len;
}
char *bm(const char *str, const char *ptn){
int i, j, k, slen = strlen(str), plen = strlen(ptn);
for(i = 0; i <= slen - plen; i++){
for(j = plen - 1; j >= 0; j--) if(str[i + j] != ptn[j]) break;
f(j == -1) return (char*)(str + i);
i += table[(int)str[i + j]] - 1;
}
return NULL;
}
int main(int argc, char *argv[]){
FILE *fp;
int cnt = 0, plen;
char buf[2048], ptn[] = "program", *p = buf;
if(argc < 2 || (fp = fopen(argv[1], "r")) == NULL) return 1;
fgets(buf, sizeof(buf), fp);
fclose(fp);
maketable(ptn);
while((p = bm(p, ptn)) != NULL) puts(p), p++, cnt++;
printf("cnt: %d\n", cnt);
return 0;
}
0834デフォルトの名無しさん
2008/05/01(木) 21:10:58ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6398.txt
0835デフォルトの名無しさん
2008/05/01(木) 21:28:05プログラミングの授業の中で課題が解けませんでした。
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
1000個までの整数あるいは小数を打ち込み、
その平均と標準偏差を表示することのできるプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:Microsoft Microsoft Visual Studio .NET 2003
[3.3] 言語:C言語
[4] 期限:[2008年5月8日hh:5まで]
[5] その他の制限:特になし
よろしくお願いします。
お手数かけまして、すいません。
0836デフォルトの名無しさん
2008/05/01(木) 22:42:40#include <stdio.h>
#include <math.h>
#define MAX_COUNT 1000
double average(double values[], int count);
double stdevp(double values[], int count);
int main(int argc, char *argv) {
int count = 0;
double values[MAX_COUNT];
while (fscanf(stdin, "%lf", &values[count]) != EOF) {
count++;
if (count == MAX_COUNT) {
break;
}
}
printf("Average = %lf\n", average(values, count));
printf("Std.Dev. = %lf\n", stdevp(values, count));
return 0;
}
0837836
2008/05/01(木) 22:43:25double sum = 0;
int i;
for (i = 0; i < count; i++) {
sum += values[i];
}
return sum / count;
}
double stdevp(double values[], int count) {
double avg = 0; // 平均
double dev = 0; // 偏差
double sum = 0; // 偏差の2乗の和
double var = 0; // 分散
int i;
avg = average(values, count);
for (i = 0; i < count; i++) {
dev = values[i] - avg;
sum += dev * dev;
}
var = sum / count;
return sqrt(var);
}
0839デフォルトの名無しさん
2008/05/01(木) 22:49:02[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6400.txt
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:Microsoft Microsoft Visual Studio .NET 2003
[3.3] 言語:C言語
[4] 期限:[2008年5月4日まで]
[5] その他の制限:特になし
お願いします
0840デフォルトの名無しさん
2008/05/01(木) 22:50:38http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6401.txt
コンパイルもなにもしてない
836を参照してくれ
0841デフォルトの名無しさん
2008/05/01(木) 23:01:10#include <stdio.h>
#include <math.h>
#define N 1000
int main(void)
{
double d, a, s = 0, ss = 0, sigma;
int i;
for(i=0; i<N; i++) {
scanf("%lf", &d);
s += d;
ss += d * d;
}
a = s / N;
sigma = sqrt((ss - a*s)/N);
printf("平均%f\n標準偏差%f\n", a, sigma);
return 0;
}
0842デフォルトの名無しさん
2008/05/01(木) 23:07:290843780
2008/05/01(木) 23:43:22問題文の方にはなかったのですが、getcharに直せと言われてしまったのです;
>>794
うまく直せました、ありがとうございます。
>>798
わざわざ作っていただいたのに申し訳ありません;
制限の方にatoi、gets不可と書くのを忘れていました。
こちらの不手際ですのでスルーしていただいて構いません;
それでは期日が本日中なので、
もし余裕のある方がいれば>>780の�@・�Aをよろしくお願いします
[5.2] その他の制限:
入力はgetcharで行い、atoi,gets,fgets,scanfは不可。
0844デフォルトの名無しさん
2008/05/01(木) 23:53:52まぁ、後だし後だしはダメぽよ。自分でその辺は修正できるんじゃないの?
所詮、入力受付の形式なんだから。
0845デフォルトの名無しさん
2008/05/02(金) 00:34:22[2] 問題文(含コード&リンク):ある数が偶数であったら2で割る,奇数であったら3倍して1を足す.
この処理を求めた答えに対して繰り返し実行すると,最終的に答えが1となる.
この処理を繰り返し実行し,答えが1になった時点で処理を停止する関数を作成し,
10までの範囲でもっとも繰り返し回数が多かった数と繰り返し回数を出力するプログラム
を作成しなさい.
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:cygdrive
[3.3] 言語:C言語
[4] 期限:[2008年5月4日まで]
[5] その他の制限:特になし
自分である程度作りましたが、うまくでません。
どなたか修正お願いします。
以下プログラム
0846845
2008/05/02(金) 00:34:51int main(void)
{
int no, n2;
for (no = 2; no <= 10; no++) {
unsigned long counter = 0;
n2=no;
while( n2 != 1 && n2 >= no){
counter++;
/*偶数*/
if( n2 % 2 == 0 ) {
/* 偶数なら2で割る */
n2 /= 2;
}
/*奇数*/
else{
if( n2 % 2 != 0 ){
n2 = n2*3+1;
}
}
}
printf("%d no keisan kaisuu ha %lu desu\n", no,counter);
}
return 0;
}
0847デフォルトの名無しさん
2008/05/02(金) 00:55:22http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6402.txt
0848デフォルトの名無しさん
2008/05/02(金) 01:15:36#include <stdio.h>
int f(int n)
{
int i;
for(i=0; n!=1; i++) {
if(n&1) n = n * 3 + 1;
else n >>= 1;
}
return i;
}
int main(void)
{
int i, max, imax;
max = f(1);
imax = 1;
for(i=2; i<=10; i++) {
int temp = f(i);
if(temp > max) {
max = temp;
imax = i;
}
}
printf("もっとも回数が多いのは%dで%d回\n", imax, max);
return 0;
}
0849デフォルトの名無しさん
2008/05/02(金) 01:17:04while (n2 != 1 && n2 >= no)
が、明らかにおかしい。
0850デフォルトの名無しさん
2008/05/02(金) 01:22:300851デフォルトの名無しさん
2008/05/02(金) 01:25:350852デフォルトの名無しさん
2008/05/02(金) 01:26:48使えない低レベルが必死にくだらない抵抗かよw 必死だなw 惨めだなw
お前何者だ?このスレの主?管理者?何偉そうに?汚いゴミクソース書いて
低レベルっぷりをさらして偉そうにしてんじゃねーよカスw
どうせお前あれだろ、EOF議論で負けたクズw
0853デフォルトの名無しさん
2008/05/02(金) 01:27:52> 気に入らない質問やその他や発言はスルーの方向で。
> 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
日本語が読めない奴って、ほんっと困るよな。
0854デフォルトの名無しさん
2008/05/02(金) 01:28:21>>1も読めない低能が必死だなw
0855デフォルトの名無しさん
2008/05/02(金) 01:28:360856デフォルトの名無しさん
2008/05/02(金) 01:29:30>>1に書いてあること気に食わなきゃ、ここ見なきゃいいのにw
0857デフォルトの名無しさん
2008/05/02(金) 01:30:280858デフォルトの名無しさん
2008/05/02(金) 01:30:550859デフォルトの名無しさん
2008/05/02(金) 01:31:320860デフォルトの名無しさん
2008/05/02(金) 01:33:02大して長くもないし、内容も難しいわけじゃないし
0861デフォルトの名無しさん
2008/05/02(金) 01:34:18本人だけはいつでも正しいつもりのヤツなんで、勘弁してやってください。
0862デフォルトの名無しさん
2008/05/02(金) 01:34:26人生の終演へどうぞ
goto EOL
0863デフォルトの名無しさん
2008/05/02(金) 01:34:36あっ、バカが釣れましたwwwwwwww
EOFがキーボードから入力でない、お前にとって入力って何?発言低レベル乙w
いつまで引きずってんのぉ〜、負け犬ポチ?w
0864デフォルトの名無しさん
2008/05/02(金) 01:36:39いや、だからそれが主観的な意見ってことだろ?あれを使わなきゃいけないって
話でもない。が、間違った、訂正だの、連発されると質問の書き込みが流れる。
まぁ、このスレに2年以上前から来ているが、さすがに出尽くした議論なんで
あとは適当に使って下さいなと。
0865デフォルトの名無しさん
2008/05/02(金) 01:39:34しかも、実際に解答してる人間に対して文句つけるだけでレス流してるし。
0866デフォルトの名無しさん
2008/05/02(金) 01:41:360867デフォルトの名無しさん
2008/05/02(金) 01:42:15すいません、彼はちょっとでも自分が否定されると見境がなくなる低能なんです
0868デフォルトの名無しさん
2008/05/02(金) 01:45:20> 気に入らない質問やその他や発言はスルーの方向で。
> 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
日本語が読めない奴が多いのかよ、このスレは・・・レベルが低いなぁ・・・人間性に於いても。
そういや、自分が間違っていても、維持でも認めようとせずに噛み付いてきた奴
大学生時代にもいたっけなぁ・・・あまりにみっともなかったんで、もう間違っていても
あぁ〜はいはい、お前が正しいですよで、自分が間違っていたことで済ませたよ。
もちろん、こちらが提示したのは紛れもなく揺ぎ無い事実、あるいは標準化などを参照にした
事実だったのにも関わらず・・・
0869デフォルトの名無しさん
2008/05/02(金) 01:46:510870デフォルトの名無しさん
2008/05/02(金) 01:47:21> しかも、実際に解答してる人間に対して文句つけるだけでレス流してるし。
お前が言うなよ・・・よくこういうことがいえるよな、基地外って
>>867
お前もだろ。低能とか、完全に議論で負けてファビョった方だろ?gdgd言ってねーで
とっとと宿題に答えろよ?あと>>1読め。俺はしばらくROMってる。
どうせ答えがなきゃ困るのは質問者。答えてクソースを出して恥をかくのは回答者。
そして俺はそのアイデアを盗むと。アディオース。
0871デフォルトの名無しさん
2008/05/02(金) 01:48:55反論として成り立ってないように見えるのは、おれが低能だからだろうか?
0872デフォルトの名無しさん
2008/05/02(金) 01:52:33>>398 2008/04/27 ヘッダに記載された内容を把握し、ヘッダを使用したプログラムを作成
>>609 2008/04/27 02:12:23 の明日 コードを説明する
>>557 2008/04/29 00:00 <copying-GCをC言語で作成 >
>>558 2008/04/29 for文を使用して、15パズルを作成せよ。
>>784 2008/05/01 22:00 5日分の気温データを最高気温の高い順に並び替えるプログラム
>>651 2008/05/04 ペイントソフトの作成
>>830 2008/05/07 22:00 リスト処理
>>553 2008/05/10 ビジュアルベーシックのWinAPI(C++)を使用して、テトリスを作る。
>>826 2008/05/10 配線経路を導く配線アルゴリズム
>>629 指定なし パズル http://www2u.biglobe.ne.jp/~shunbook/omocha/tlwin4.htm
>>719 指定なし waveOutGetPositionを使用して、非同期で再生中のwavの再生位置を取得する
0873デフォルトの名無しさん
2008/05/02(金) 02:28:570875845
2008/05/02(金) 02:53:42ありがとうございます。
参考にまりましたが、
プログラムの構造がよく分かりません。
#include <stdio.h>
int main(void)
{
int no, n2;
for (no = 1; no <= 6200; no++) {
unsigned long counter = 0;
n2=no;
while( n2 != 1 && n2 >=1){
counter++;
/*偶数*/
if( n2 % 2 == 0 ) {
/* 偶数なら2で割る */
n2 /= 2;
}
/*奇数*/
else{
if( n2 % 2 != 0 ){
n2 = n2*3+1;
}
}
}
printf("%d no keisan kaisuu ha %lu desu\n", no,counter);
}
return 0;
}
から課題どうりに作ることはできませんでしょうか?きちんと理解したいので・・・
0876デフォルトの名無しさん
2008/05/02(金) 02:54:34スレ違いだけど一応教えておいてやる
それ数論で未解決の問題だ
「コラッツ予想 プログラム」でググルとかなり他人のをあされるかと思う
0877デフォルトの名無しさん
2008/05/02(金) 02:58:50>for (no = 1; no <= 6200; no++) {
なにこの6200って
0879デフォルトの名無しさん
2008/05/02(金) 03:06:030880デフォルトの名無しさん
2008/05/02(金) 03:14:48奇数より偶数が頻繁に現れればよい
0881845
2008/05/02(金) 03:15:30#include <stdio.h>
int main(void)
{
int no, n2;
for (no = 1; no <= 10; no++) {
unsigned long counter = 0;
n2=no;
while( n2 != 1 && n2 >=1){
counter++;
/*偶数*/
if( n2 % 2 == 0 ) {
/* 偶数なら2で割る */
n2 /= 2;
}
/*奇数*/
else{
if( n2 % 2 != 0 ){
n2 = n2*3+1;
}
}
}
printf("%d no keisan kaisuu ha %lu desu\n", no,counter);
}
return 0;
}
これで一応それぞれの回数は求めることができましたが、最大の計算回数と
その値を求める方法が分かりません。
さっきからやってますが、ぜんぜんうまくいきません・・・
0882デフォルトの名無しさん
2008/05/02(金) 03:16:19こんな感じ?
unsigned long maxCounter = 0;
int max;
int no, n2;
for (no = 2; no <= 10; no++) {
unsigned long counter = 0;
n2=no;
while( n2 > 1){
counter++;
if( n2 % 2 == 0 ) {
n2 /= 2;
}else{
n2 = n2*3+1;
}
}
if(maxCounter<counter){
maxCounter=counter;
max=no;
}
}
printf(">> %d no keisan kaisuu ha %lu desu\n", max, maxCounter);
0883845
2008/05/02(金) 03:50:32ありがとうございます!
でも
if(maxCounter<counter){
maxCounter=counter;
の意味がいまいち理解できません・・・
0884デフォルトの名無しさん
2008/05/02(金) 04:03:31行ギリギリorz
#include<stdio.h>
int main(void)
{
int i, tmp, cnt=0, keisankaisu[11] = {0}, max = 0;
for(i=2;i<=10;i++) { //2-10を規則にしたがって計算
tmp = i;
while(1) {
printf("i = %d, tmp = %d, cnt = %d\n", i, tmp, cnt); //確認のため表示、消してもおk
if(tmp == 1) { break; } //1なら脱出
if(tmp % 2 == 0) { tmp = tmp / 2; cnt++; } //偶数なら割る2
else if(tmp % 2 == 1) { tmp = tmp * 3 + 1; cnt++; } //奇数なら*3+1
}
printf("%2dの計算回数は%d回\n\n", i, cnt); //それぞれの結果表示
keisankaisu[i] = cnt; //計算回数後で使うから別変数へ
cnt = 0;
}
for(i=2;i<=10;i++) { //計算回数最多を検査
if(max < keisankaisu[i]) { max = i; }
}
for(i=2;i<=10;i++) { //それぞれの最終結果表示
printf("%2dの計算回数は%d回\n", i, keisankaisu[i]);
}
printf("計算回数が最も多かったのは%2dの%2d回\n", max, keisankaisu[max]);
return 0;
}
0885デフォルトの名無しさん
2008/05/02(金) 04:14:051が現れるなら、偶数の出現回数は62%以上と思う
無限列の場合としても62%以上と思う
0886デフォルトの名無しさん
2008/05/02(金) 05:22:27> if(max < keisankaisu[i]) { max = i; }
> }
...大丈夫か?
0887デフォルトの名無しさん
2008/05/02(金) 05:24:56??
0888デフォルトの名無しさん
2008/05/02(金) 05:26:021から始めて、2倍するか、1を引いて3で割るという事を繰り返す。
後者は必ずしも成功しないが奇数が出現するのはこちらのみ。
奇数の出現は低い。
2進数は2倍するか、1を足すと全ての数を生成出来る。
このあたりから出来そうにないか
0889886
2008/05/02(金) 05:28:570890デフォルトの名無しさん
2008/05/02(金) 05:47:02一応最後のところではちゃんとしてるから単なるミスだと思うぜ
0891デフォルトの名無しさん
2008/05/02(金) 06:00:372の計算回数は1回
3の計算回数は7回
4の計算回数は2回
5の計算回数は5回
6の計算回数は8回
7の計算回数は16回
8の計算回数は3回
9の計算回数は19回
10の計算回数は6回
計算回数が最も多かったのは 9の19回
0892デフォルトの名無しさん
2008/05/02(金) 06:53:400893デフォルトの名無しさん
2008/05/02(金) 07:06:55数字の大きさと、計算回数に関係があるとして、
任意の整数に対して回数の上限が求まればいいとおもう。
0895生ハム
2008/05/02(金) 08:51:32[2] 問題:ある英語の文章が規則に従って変換されてファイルに保存されています。
その文章をファイルとして読み込み、正しい英文に復元し、ファイルに出力する
プログラムを作成せよ。です。規則を解読したところ、単語の文字数の分だけ
(ASCIIコード表でいう)引数?が下げられています。つまり本文でaは、
ファイルではb,ofはqh,TheはWkhで表示されています。また、zはaに戻ります。
willはamppです。数字やピリオド等はそのままです。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限:2008年5月10日まで
[5] その他の制限:プログラムでポインタを用いて文字列を定義し、既存の文字列操作
関数(strxxx(),例えばstrlen()など)は使わずに、自分で作成すること。
よろしくおねがいします。
0896デフォルトの名無しさん
2008/05/02(金) 11:24:51読み込みファイル名は?
書き込みファイル名は?
ファイルに保存されているってのはどんなん?
ピリオドの後は必ず改行?
最大文字数は?
0897デフォルトの名無しさん
2008/05/02(金) 11:30:25男は黙ってぇ〜 クソース 男は黙ってぇ〜 クソミソース
gdgd言ってねーで、本来重要となる部分以外はエスパーしとけ、次っ!
0898デフォルトの名無しさん
2008/05/02(金) 11:46:04分かる方お願い致します。
>>398 2008/04/27 ヘッダに記載された内容を把握し、ヘッダを使用したプログラムを作成
>>609 2008/04/27 02:12:23 の明日 コードを説明する
>>557 2008/04/29 00:00 <copying-GCをC言語で作成 >
>>558 2008/04/29 for文を使用して、15パズルを作成せよ。
>>784 2008/05/01 22:00 5日分の気温データを最高気温の高い順に並び替えるプログラム
>>651 2008/05/04 ペイントソフトの作成
>>830 2008/05/07 22:00 リスト処理
>>553 2008/05/10 ビジュアルベーシックのWinAPI(C++)を使用して、テトリスを作る。
>>826 2008/05/10 配線経路を導く配線アルゴリズム
>>629 指定なし パズル http://www2u.biglobe.ne.jp/~shunbook/omocha/tlwin4.htm
>>719 指定なし waveOutGetPositionを使用して、非同期で再生中のwavの再生位置を取得する
0899デフォルトの名無しさん
2008/05/02(金) 12:00:55これで解決すると思う
有限回の試行で元の数字より小さくできる
という事を証明すれば、少しずつ小さくしていって有限回で1になるよ
0900生ハム
2008/05/02(金) 13:42:58ファイル名は自分で決めるみたいなので、読み込みファイル:file1
書き込みファイル:file2でお願いします。保存されているのを詳しく書きますと、
最初にタイトル→一行空ける→本文(段落ごとに1行空ける)という感じの繰り返しです。
最大文字数は13です。また、ピリオドの後は続けて次の文があります。
ピリオドの後の文字は大文字です。改行は文の途中でも適当にしてありますが、
単語の途中で改行はしてないです。
よろしくお願いします。
0901デフォルトの名無しさん
2008/05/02(金) 13:49:52汚いけどはい
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6404.cpp
0902デフォルトの名無しさん
2008/05/02(金) 13:50:12ちょっwwwwww 先にそういう条件は入れておいてくれYO!
もう作っちまったけど、書き換えマンドクセッからもううpしねっ
0903デフォルトの名無しさん
2008/05/02(金) 13:50:470905デフォルトの名無しさん
2008/05/02(金) 13:57:25とりあえず動かして正常に動くか確認してみてください
0906デフォルトの名無しさん
2008/05/02(金) 14:03:310907デフォルトの名無しさん
2008/05/02(金) 14:17:45逆!!!!
orz
0908偽者of京大、東大卒の教授の下で指導を受けた元生徒
2008/05/02(金) 14:17:4618行目 fclose(NULL); になる
0909デフォルトの名無しさん
2008/05/02(金) 14:19:57あ、ごめん
上書き確認するコード入れてたときの残りだ
もうだめorz
打つ出し脳
0910デフォルトの名無しさん
2008/05/02(金) 14:21:03せっかくだし
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6405.txt
0911デフォルトの名無しさん
2008/05/02(金) 14:21:16俺の力を借りなきゃダメなのか。けど、基地外低脳のうざい罵倒レスがきもいから
二度と力を貸してやらねーよw
これをネタに金儲けすることにしたから、アイデアを簡単に提供できるかってw
まっ、アイデアも何も、とっくに現代では発見され、わかりきっている手法に過ぎないがな。
0912デフォルトの名無しさん
2008/05/02(金) 14:22:02fclose(fr);
fclose(fw);
return 0;
}
ゴメン・・・
0913デフォルトの名無しさん
2008/05/02(金) 14:28:40#include <stdio.h>
#include <ctype.h>
int main(void)
{
FILE *fin, *fout;
int i, ch, cnt = 0;
char buff[64], temp;
if((fin=fopen("file1", "r"))==NULL) return 0;
if((fout=fopen("file2", "w"))==NULL) return 0;
while((ch=fgetc(fin))!=EOF) {
if(isalpha(ch)) buff[cnt++] = ch;
else {
for(i=0; i<cnt; i++) {
temp = buff[i];
if(isupper(temp)) temp -= temp - 'A' < cnt ? cnt - 26 : cnt;
else temp -= temp - 'a' < cnt ? cnt - 26 : cnt;
fputc(temp, fout);
}
fputc(ch, fout);
cnt = 0;
}
}
fclose(fin);
fclose(fout);
return 0;
}
0914デフォルトの名無しさん
2008/05/02(金) 14:36:48最近勘違い多いなorz
0915デフォルトの名無しさん
2008/05/02(金) 14:38:360916デフォルトの名無しさん
2008/05/02(金) 14:39:54ってあるのに皆ポインタ使ってない
0917デフォルトの名無しさん
2008/05/02(金) 14:42:33すぐに変えられるでしょ
0918デフォルトの名無しさん
2008/05/02(金) 14:46:44そういえば ss[i]=*(pss+i) ですもんね
char *ss って感じのポインタを毛嫌いしてたので
この期にやってみようって思ったらなんとかできた
ってくらいのLv・・・
0919デフォルトの名無しさん
2008/05/02(金) 14:49:50俺は京大卒の教授の指導があるから、そんなことは安易に言わないよw
0920デフォルトの名無しさん
2008/05/02(金) 15:11:340921デフォルトの名無しさん
2008/05/02(金) 15:12:210922デフォルトの名無しさん
2008/05/02(金) 15:18:48うわっ、妬み僻み。ポインタと配列の違いが分からないのを無視して
相手の素性をたたき始めた。もう終わってるわ、こいつ。
自分が気に入らない、あるいは自分基準で貶めた奴には
絶対に負けねーって魂胆だろ。
> 配列も実際はポインタ><
恥ずかしくて大学の授業じゃこんなこと言えねーわw
プリントアウト(印刷)をコピーとか言っちゃうレベルのタブー。
授業中に言ったら、名前を聞かれて成績に影響する減点を受けますよw
0923デフォルトの名無しさん
2008/05/02(金) 15:20:54int main(void) {
int a[2]={1,2},b[2]={3,4}; int *ip;
size_t i,as=sizeof(a)/sizeof(a[0]),bs=sizeof(b)/sizeof(b[0]);
printf("\na : "); for(i=0; i<as; i++) printf("%d ",a[i]);
printf("\nb : "); for(i=0; i<bs; i++) printf("%d ",b[i]);
printf("\nsizeof a : %d / sizeof b : %d / sizeof *ip : %d \n",sizeof(a),sizeof(b),sizeof(ip) );
printf("\na : %p / b : %p / *ip : %p \n",a,b,ip );
ip=a; printf("\nip=a; / ip : %p / a : ",ip);
for(i=0; i<as; i++) printf("ip[%d] %d ",i,ip[i]);
ip=b; printf("\nip=b; / ip : %p / b : ",ip);
for(i=0; i<bs; i++) printf("ip[%d] %d ",i,ip[i]);
*ip=a[1]; // ipはこの時点でbの先頭を指している。そこにa[1]の値を代入。
printf("\n*ip=a[1] / ip : %p %d / b[0] : %d \n",ip,*ip,b[0]); // すると、bの先頭の要素がa[1]と同じ値に。
printf("\na : "); for(i=0; i<as; i++) printf("%d ",a[i]);
printf("\nb : "); for(i=0; i<bs; i++) printf("%d ",b[i]);
return 0;
}
0924デフォルトの名無しさん
2008/05/02(金) 15:23:57しかし、int型の”ポインタ”はその同じ識別氏を用いて、a、bの値を参照することが出来た。
aはaの中身、bはbの中身、所詮ポインタの実態はアドレスなのさ、ふっ。
部屋の番号と位置は変更できなくても、中の家具、住民の移動は可能ということさ、ベイビー?
0925719
2008/05/02(金) 15:24:38更新します
期限 2008年5月9日 12時
0926デフォルトの名無しさん
2008/05/02(金) 15:29:060928886
2008/05/02(金) 17:39:06ループを
for(i=10;i>=2;i--) { //計算回数最多を検査
でやってみw
0929デフォルトの名無しさん
2008/05/02(金) 17:50:25研究遂行上必要になりました。授業じゃありません。
[2] 問題文(含コード&リンク):
16ビットグレースケールPNGファイルの
任意の画像位置(i, j)におけるグレースケール値(0-65535)
[3] 環境
[3.1] OS: VineLinux
[3.2] コンパイラ名とバージョン: gcc-3.3.2
[3.3] 言語: C/C++/どちらでも可
[4] 期限
とくになし
[5] その他の制限:
今まではjpg/bmpのRGBデータをimlibを使って抜いていました
今回もlibpngで簡単にできると思っていたんですが、そんなことなかったです。。。
サンプル画像はあぷろだにおきました(DL後、.txtを.pngにしてください)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6407.txt
よろしくお願いします。
0930デフォルトの名無しさん
2008/05/02(金) 17:54:53ImageMagickでも使ったら?
0931ベーコン
2008/05/02(金) 18:05:02>>822
ありがとうございます!コンパイルはできましたが実行すると結果が0となります;
実行方法が間違っているんですかね・・。
>>834
ありがとうございます!動作確認できましたw非常に丁寧なプログラムでとても感謝してます!
今度は頑張ってアルゴリズムの理解に努めます!
0932デフォルトの名無しさん
2008/05/02(金) 18:23:00Cプログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6409.txt
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
5月6日まで
0933デフォルトの名無しさん
2008/05/02(金) 18:31:58>>820
0934生ハム
2008/05/02(金) 18:48:26ありがとうございます。コンパイルはできましたが実行するとSegmentation faltに
なっちゃいました(><)
>>910
ありがとうございます。実行した結果、英文の変換はされてましたが途中の1行のみ
正しく変換されていて、後はめちゃくちゃでした(;o;)
>>913
ありがとうございました。一部やってみたら綺麗に復元されていました!
0935デフォルトの名無しさん
2008/05/02(金) 20:12:11LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch(msg){
case WM_LBUTTONDOWN:
座標取得
case WM_LBUTTONUP:
座標取得
いんばりでーと
case WM_RBUTTONDOWN:
座標取得
case WM_RBUTTONUP:
座標取得
case WM_PAINT:
びぎん
if(左ボタン)
movetoびぎん座標
linetoえんど座標
if(右ボタン)
なんか矩形かくコマンド
えんど
case WM_DESTROY:
PostQuitMessage(0);
}
return でふぉるとぷろしーじゃ;
}
0936デフォルトの名無しさん
2008/05/02(金) 23:57:26当方で確認した環境は cygwin/WindowsXP, 処理系は gcc 3.4.4 です。
1.http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6410.txt
2.http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6411.txt
リストを追加する関数(addlist())の呼び出し方が複雑かもしれませんが、これが最終形だと考えています。
0937デフォルトの名無しさん
2008/05/03(土) 01:11:17英文をうpしてもらってもいい?
自分でも勉強になるし
0938デフォルトの名無しさん
2008/05/03(土) 01:59:205/10までか、まだ時間があるな。さてと・・・俺のきしょいクソースを見たいとな?
ならば見せて進ぜよう、10日までに。まぁ、今日中に作り終わる予定だが。
変換と復元、2つのライブラリはすでに完成した。後は、単語をどのように読み込むか?
>>900 の条件を取り込んで書くが、いくつか疑問が。
変換するのは小文字のみ?大文字も同じように変換?それとも大文字はそのまま?
> ピリオドの後の文字は大文字です。
まぁ、ピリオドの前の単語で区切るから気にならんが、まさか、ピリオドを含んで
後ろの単語の文字数も含める、なんてことはなかろうな?
0939デフォルトの名無しさん
2008/05/03(土) 02:24:240940デフォルトの名無しさん
2008/05/03(土) 02:25:31変換前:This is a pen. It is red.
変換後:Xlmw ku b tir. Kv ku vih.
って事?
0941デフォルトの名無しさん
2008/05/03(土) 02:28:09他の残ってるやつといてやれよw
0942デフォルトの名無しさん
2008/05/03(土) 02:28:24だから逆でしょ
入力:Xlmw ku b tir. Kv ku vih.
出力:This is a pen. It is red.
0943デフォルトの名無しさん
2008/05/03(土) 02:30:030944デフォルトの名無しさん
2008/05/03(土) 02:32:02またお前か、主観野郎w なんで必要性をお前基準で決めてんのぉ〜?
お前このスレの主か?管理者か?絶対的権力者か?全知全能の神か?w
0945デフォルトの名無しさん
2008/05/03(土) 02:35:05かまってちゃんは無視しろって
0946デフォルトの名無しさん
2008/05/03(土) 02:36:26情報が少なすぎる
textの1行は最大何文字?
単語は13文字ってあるけども
0947デフォルトの名無しさん
2008/05/03(土) 02:38:410948デフォルトの名無しさん
2008/05/03(土) 03:02:51ポインタ使って、ついでに短めにしておいた。
#include <stdio.h>
#include <ctype.h>
main() {
char*p,*q,s[99];
int c;
FILE*f1,*f2;
if((f1=fopen("file1.txt","r"))&&(f2=fopen("file2.txt","w")))
while((c=fgetc(f1))!=EOF) {
for(p=s; isalpha(*p++=c); c=fgetc(f1));
for(q=s; q<p-1; q++) fputc((((*q&31)+27+s-p)%26)|(*q&224),f2);
fputc(*q,f2);
}
}
0949デフォルトの名無しさん
2008/05/03(土) 03:03:46> 入力:Xlmw ku b tir. Kv ku vih.
入力:Xlmw ku b shq. Kv ku uhg.
ではあるまいか
0950デフォルトの名無しさん
2008/05/03(土) 03:16:33ここまで短くできるのかw
0951デフォルトの名無しさん
2008/05/03(土) 03:19:14すぐ終了するとはいえ、ファイル閉じてないのがちょっと気持ち悪い。
0952生ハム
2008/05/03(土) 03:33:38本文のうpの仕方がいまいちわかりません・・
一応アップローダー==ラウンジに書き込みしましたが。
938>>
変換は大文字・小文字両方です。アルファベットのみ変換です。
>ピリオドを含んで 後ろの単語の文字数も含める、なんてことはなかろうな?
それはないと思います。ただピリオドの後続けて英文がある場合と、
コンマの後は1マス空けてあります。
>>940
942さんのおっしゃる通りです。
>>946
数えてみたところ一番長いやつで、61文字。スペース含めれば69文字でした。
>>948
ありがとうございます!ですがGWが終わるまでコンパイルできる環境にないので
動作確認が遅れます↓すみません。。
0953デフォルトの名無しさん
2008/05/03(土) 03:38:380954デフォルトの名無しさん
2008/05/03(土) 03:41:200955デフォルトの名無しさん
2008/05/03(土) 03:41:52「参照」ボタンからうpしたいテキストファイルを指定すればいい
その後、スレに ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6412.txt
のようにテキストファイルへのリンクを貼り付ければおk
0956デフォルトの名無しさん
2008/05/03(土) 03:45:210957デフォルトの名無しさん
2008/05/03(土) 03:45:54>>913は入力がアルファベットで終了すると最後の単語が出力されない
>>948は入力がアルファベットで終了するとEOF(0xFF)が出力される
0958デフォルトの名無しさん
2008/05/03(土) 03:51:50どうしても気になるなら
while(1) {
ch = fgetc(fin)
/*中略*/
if(ch==EOF) break;
fputc(ch, fout);
cnt = 0;
}
にでも修正してくれ。
0959デフォルトの名無しさん
2008/05/03(土) 04:41:27他人に相手にされていなくて、こんなところで自分が相手にされていると
勘違いしよってからに。お前なんて誰も相手にしねーよバーかw
0960948
2008/05/03(土) 05:06:13デバッグした。ついでにもう少し短くしておいた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6414.txt
0961デフォルトの名無しさん
2008/05/03(土) 06:54:34この場合 pen. はピリオドも含めての文字数?
p+4なのかp+3なのかどっち?
0962デフォルトの名無しさん
2008/05/03(土) 07:10:45単語にはピリオド含まないだろ
0963デフォルトの名無しさん
2008/05/03(土) 07:42:550964デフォルトの名無しさん
2008/05/03(土) 09:25:39[2] 問題文(含コード&リンク):()
アルファベット小文字からなる文字列がある.
この文字列を圧縮する記法として,文字列 s に対し
(s)n := s...s (s の n 回の繰り返し)
を導入する.圧縮はネストしていてよい.たとえば以下のようになる.
(ab)2 = abab
(b)10 = bbbbbbbbbb
((ab)3c)2 = (abababc)2 = abababcabababc
圧縮された文字列 ctext,自然数 i, j (i ≦ j),
(圧縮されていない)文字列 pattern が与えられる.
ctext を展開した文字列の i 文字目から j 文字目までに
pattern が含まれるかどうかを判定せよ.
含まれる場合は YES,含まれなかったり,i, j が
不正な位置を参照している場合は NO と出力せよ.
なお,圧縮後の文字列 ctext の長さは 10000 文字以内
(展開したときの文字列長は制限しない),
j - i ≦ 100000,pattern の長さは 10000 文字以内とする.
例:ctext = ((ab)3bc)4, i = 3, j = 15, pattern = cabababb
ctext は展開すると abababbcabababbcabababbcabababbc であり,
3 文字目から 15 文字目までは ababbcabababb.
この中には pattern が含まれているので YES と出力.
[3] 環境
[3.1,2] OS,コンパイラ: おまかせ
[3.3] 言語: どちらでも可
[4] 期限: 2008年5月6日
[5] その他の制限: 特になし
0965デフォルトの名無しさん
2008/05/03(土) 10:01:47#include <string>
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
int getsu(string &x,int n){
int i;n++; for(i=n;i<x.size() ;i++)if(x[i]<'0' || x[i]>'9')break;
string y=x.substr(n,n-i);
return atoi(&y[0]);}
fnc(string &x, string &y){
stack <int > num;
int n,iti=0; y="";
for(n=0;n<x.size();n++){
if(x[n]=='(' ){num.push(iti);continue;}
if(x[n]==')' ){
int k,l,d;k=num.top(); num.pop(); l=getsu(x,n); d=iti-k;
for(int i=0;i<l;i++)y+=y.substr(k,d);iti+=d*l;continue;}
y+=x[n];iti++;}
}
main(){
string ctext = "((ab)3bc)4",tmp;
fnc(ctext,tmp);
}
0966デフォルトの名無しさん
2008/05/03(土) 10:26:45#include <string>
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
int suketa(string &x,int n){
int i; n++; for(i=n;i<x.size() ;i++)
if(x[i]<'0' || x[i]>'9')break;
return i-n;}
tenkai(string &x, string &y){
stack <int > num;
int n=0,iti=0; y="";
for(;n<x.size();){
if(x[n]=='(' ){num.push(iti);n++;continue;}
if(x[n]==')' ){
int k,l,d,m;k=num.top(); num.pop(); l=suketa(x,n);
m=atoi(&x.substr(n+1,l)[0])-1; d=iti-k;
for(int i=0;i<m;i++)y+=y.substr(k,d);
iti+=d*m;n+=l+1;continue;}
y+=x[n];iti++;n++;}}
string find(string x,string y,int i,int j){
int m=x.find(y);
if(m==-1 || i>m)return "NO";
if(j-i>=y.size())return "YES"; return "NO";}
main(){
string ctext = "((ab)3bc)4",pattern ="cabababb",tmp;
tenkai(ctext,tmp); cout<<find(tmp,pattern,3,15);}
0967偽者of京大、東大卒の教授の下で指導を受けた元生徒
2008/05/03(土) 10:56:01#include<stdio.h>
#include<string.h>
int decode_internal(const char *data, char **buf, int start, int end, int *current){
int i, loopnum, loop=0, n;
for(i=0;data[i];i++){
if(data[i]=='('){
i+=decode_internal(data+i+1, buf, start, end, current);
}else if(data[i]==')'){
loop++;
sscanf(&data[i+1], "%d%n", &loopnum, &n);
if(loop>=loopnum) return i+1+n;
i=-1;
}else{
*current+=1;
if(start<=*current && *current<=end){ *(*buf)++=data[i]; *(*buf)='\0'; }
}
}
return i;
}
int decode(const char *data, char *buf, int start, int end){
int work=0;
return decode_internal(data, &buf, start, end, &work);
}
int main(void){
static char buf[100000+1]="";
char *pattern="cabababb";
decode("((ab)3bc)4", buf, 3, 15);
printf("%s\n", strstr(buf, pattern)?"YES":"NO");
return 0;
}
0968デフォルトの名無しさん
2008/05/03(土) 15:31:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6416.txt
0969デフォルトの名無しさん
2008/05/03(土) 15:34:58他人にどうこう言うくせに、自分が糞なソースを堂々とここに書き込んでんじゃん
こいつ、かなりの基地外だぜ。恥さらしというのはこういう奴のことを言うんだよな。
どうせ、アップローダーが使えない初心者だろw
0970デフォルトの名無しさん
2008/05/03(土) 16:06:410971デフォルトの名無しさん
2008/05/03(土) 16:23:29使える人にしてみても、あのうpろだ見にくいよ
0972デフォルトの名無しさん
2008/05/03(土) 16:27:51('(゚∀゚∩_ おいらをどこかのスレに送って!
/ヽ 〈/\ お別れの時にはお土産を持たせてね!
/| ̄ ̄ ̄|.\/
| モツ煮 |/
 ̄ ̄ ̄
現在の所持品:たばこ・スーパーマリオブラザーズ・練炭・とうきびチョコ・ジアース・ブラゲ豚 ・Keron
kawaii 七輪 ブラウザゲー ブラゲスレ行きチケット(片道) うまか饅頭 ○=俺 School Days未開封
School Days開封済 うんこ インギー アーライ! kotsは神 スカイラーク全部 いちごましまろ
Muran 最強の銃 ハッピー☆マテリアル5月Ver アレテイル ヒロポン ふたなり画像.zip
PS2 ジャクムの兜昇華繚乱命中30%10連品 マーシャルグラブ攻撃21 ホーンテイルのネックレス卵3連品
ギアノスの鱗 プレマリン パキシル80mg RIOのハメ撮りビデオ Lady メリーの死神の鎌
みんなのうらみ かのうじ 支那産農薬入り餃子 Vista(笑) 「3DMark Vantage」(笑) ダウングレード権 WindowsAero(苦笑)
0973デフォルトの名無しさん
2008/05/03(土) 16:27:51スレッド形式なのが終わってるよな
0974デフォルトの名無しさん
2008/05/03(土) 16:36:44どうせうpしてリンクコピーするだけだし
0975デフォルトの名無しさん
2008/05/03(土) 16:38:14あれリンクどこだ PageDown PageUp・・・
あ、これか
ってのがめんどう
0976デフォルトの名無しさん
2008/05/03(土) 16:39:340977デフォルトの名無しさん
2008/05/03(土) 16:51:500978デフォルトの名無しさん
2008/05/03(土) 18:14:57まぁ、今日中にうpってやるから、待ってろや、な?
0979デフォルトの名無しさん
2008/05/03(土) 18:28:04現実的な計算時間で答えが出る回答は出てないみたいだ。
0980デフォルトの名無しさん
2008/05/03(土) 18:41:00>>709
0981デフォルトの名無しさん
2008/05/03(土) 18:55:04>現実的な計算時間
0982デフォルトの名無しさん
2008/05/03(土) 19:00:25高校レベルの順列・組み合わせでできるとは思う。重複ありで文字を並べたときの場合の数を求める
0983デフォルトの名無しさん
2008/05/03(土) 19:00:50人のものにけちつけるんだから当然出せるよね?
0984デフォルトの名無しさん
2008/05/03(土) 19:02:150985デフォルトの名無しさん
2008/05/03(土) 19:04:23Microsoft Visual C++ Toolkit 2003
ftp://195.252.112.9/programiranje/programski-jezici/VCToolkitSetup.exe
VCToolkitSetup.exe
size 32952488
sha1sum 956c81c3106b97042c4126b23c81885c4b5211f4
edonkey checksum
ed2k://|file|VCToolkitSetup.exe|32952488|c534888fa7605403dcb183d2d15282d1|/
0986デフォルトの名無しさん
2008/05/03(土) 19:05:34出来る出来ないはソース上げてから言ってね
0987デフォルトの名無しさん
2008/05/03(土) 19:05:590988デフォルトの名無しさん
2008/05/03(土) 19:12:45それはいいのだが、s_1からs_mまでの重複を除外しないといけないよね。
本当に高校レベル?
0989デフォルトの名無しさん
2008/05/03(土) 19:13:32まず包含関係や、結合で作れる文字を除く。
そして、たとえば4桁で、aabを含むものを求めようとする。
A=aabとおき、{a,b,A}からなる2桁の文字を求める。
、
0990デフォルトの名無しさん
2008/05/03(土) 19:17:12たとえば、A=aabとB=abbの10桁とすると、AとBを少なくとも一回含むものの個数を数えて
AとBが同時に含まれる個数を引く。
0991デフォルトの名無しさん
2008/05/03(土) 19:18:15ちゃんとそれも除かなきゃいけないよね。
m ≦ 100 だから、そっちで組み合わせ爆発起こしても無理だけど大丈夫?
0992デフォルトの名無しさん
2008/05/03(土) 19:18:460993デフォルトの名無しさん
2008/05/03(土) 19:22:520994デフォルトの名無しさん
2008/05/03(土) 19:26:130995デフォルトの名無しさん
2008/05/03(土) 19:27:08それただの総当りより処理増えてるだろw
0996デフォルトの名無しさん
2008/05/03(土) 19:29:02ΣSi を少なくとも一回は含む数 - ΣSiとSjを同時に含む数
では?
0997デフォルトの名無しさん
2008/05/03(土) 19:29:510998デフォルトの名無しさん
2008/05/03(土) 19:32:100999銀河鉄道
2008/05/03(土) 19:33:251000デフォルトの名無しさん
2008/05/03(土) 19:33:3510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。