C/C++の宿題を片付けます 110代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/06/18(水) 22:40:55【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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++の宿題を片付けます 109代目
http://pc11.2ch.net/test/read.cgi/tech/1212895856/
0002デフォルトの名無しさん
2008/06/18(水) 22:52:160003デフォルトの名無しさん
2008/06/18(水) 22:54:17できました。
ありがとうございます。
0004デフォルトの名無しさん
2008/06/18(水) 23:08:10初心者レベルの宿題しか解けないだけだろw
何か一言でも言わないと気が済まない、構ってちゃんの一言居士って
マジ鬱陶しいな。自分がすべて正しいと勘違いしてんじゃね?
世の中どんだけ自分以上の人間がいるか分かってないだろ。
ネットが普及して、多種さまざまな人と意見交換する場なんて、
もう20世紀末から徐々にネットが普及して今に始まったことじゃないだろ?
最近インターネットを使い始めた、高校を出て社会を知り始めたお子ちゃまか?
少し口を閉じてろ。無駄口が多いくせに、お前の方がよっぽど
答えたとしても幼稚なソースしか書いてないことに気づくから。
0005デフォルトの名無しさん
2008/06/18(水) 23:09:370006デフォルトの名無しさん
2008/06/18(水) 23:15:14スルー推奨
0007デフォルトの名無しさん
2008/06/18(水) 23:18:27http://pc11.2ch.net/test/read.cgi/tech/1212895856/890
って麻呂に対して言ってんだよね。
自分に言われたと思った?w
ネットでさまざまな人と意見交換する場を経験してきたのに誰に対する
レスかも理解できないのかしら?
> 何か一言でも言わないと気が済まない、構ってちゃんの一言居士
頭痛が痛いみたいで気持ち悪いし。
0008デフォルトの名無しさん
2008/06/18(水) 23:25:31学生っぽさの抜けないソースを上げ続けてもらいたいな。
ある意味癒しだ。
0009デフォルトの名無しさん
2008/06/18(水) 23:35:45[2] 問題文(含コード&リンク):
文字列の入力を促し、入力。その文字列の先頭の文字と同じ文字が文字列の中にいくつ含まれるか
求めるプログラムをポインターを使って作りなさい。また先頭の文字も数のうちに入れること。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:VC++6
[3.3] 言語: C
[4] 期限:明日
[5] その他の制限:ポインターを習って間もないです
よろしくおねがいします
0010デフォルトの名無しさん
2008/06/18(水) 23:47:32何かと自分に対して意見をする者に対しては、どうでも良いようなことでも言い返す。
別に自分に意見をしたわけでもないのに、勝手な理論で話に入り込んで
わけの分からないことを言い始める。誰も聞いてない無関係な内容を持ち出す。
相手にされないと、誰か自分に話かけてこないか、茶化す。しかし、それが
相手の気を逆撫でするような、不適切で幼稚な発言のため、逆にお叱りを受けるが
気に入らない奴はとことん罵倒して逃げる<厨房がやる決定的な特徴。
0011デフォルトの名無しさん
2008/06/18(水) 23:51:28char buf[1024], *p; int cnt;
fgets(buf, sizeof buf, stdin);
for (p = buf + 1, cnt = 1; *p; p++) if (*buf == *p) cnt++;
printf("%d\n", cnt);
0012デフォルトの名無しさん
2008/06/18(水) 23:51:49一言居士の特徴とか言われましても、言葉の意味に含まれておりますので。。。
頭痛の特徴→頭が痛くなる
みたいで気持ち悪い。
挙句、厨房の特徴になってしまっている。なにがいいたいかまとめろ。
0013デフォルトの名無しさん
2008/06/18(水) 23:53:51#include<stdio.h>
int main(void){
int moji, chk=0, count=0;
while((moji=getchar())!=EOF && moji!='\n'){
if(chk==0 || moji==chk){
chk=moji;
count++;
}
}
printf("\n%d\n", count);
return 0;
}
0014デフォルトの名無しさん
2008/06/18(水) 23:57:18空文字列の場合に0個と出力されるほうがよさげな
0015デフォルトの名無しさん
2008/06/19(木) 00:01:23なるへそ。じゃこれで
for (p = buf, cnt = 0; *p && *p != '\n'; p++)
0016デフォルトの名無しさん
2008/06/19(木) 00:29:39いつもファビョってるやつと麻呂は同一人物
0017デフォルトの名無しさん
2008/06/19(木) 00:38:14おじゃる口調でファビョってくれないとわからないよ!
0018838
2008/06/19(木) 00:39:12一日たっても返事が来ないって事は釣られたのか・・俺は・・
このままだと単位\(^o^)/
0019デフォルトの名無しさん
2008/06/19(木) 00:41:21授業単元は「ネットで宿題を解いてもらう方法」だっけ?
0021デフォルトの名無しさん
2008/06/19(木) 00:49:15[2] 問題文(含コード&リンク):
char name[20],int english,int mathematicsをメンバとする構造体 score を定義し、
五人の情報をもつ配列 seito[5]を構造体 score 型を使って宣言し(五人の情報は初期値として宣言する。)、
初期値を代入した構造体 score 型の構造体配列 seito[5] 宣言し、各メンバ変数でソートする関数を作成せよ。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:visual studio 2005
[3.3] 言語: C
[4] 期限:出来るだけ早くお願いします。
[5] その他:組み合わさった問題を一文にしたため、分かりにくい所は聞いてください。お願いします。
0022デフォルトの名無しさん
2008/06/19(木) 00:50:46遅くなりましたがご丁寧にありがとうございました。
ご察しの通り#で区切った項それぞれを、逆さにするんです。
度々で失礼ですが、ご教授されたとおりにrev_flagを含む行を消すと、if文まで消さなくてはならず
他の変数まで消えてしまうため、エラー出るのですが、どうすればいいのでしょうか
0023デフォルトの名無しさん
2008/06/19(木) 01:04:01[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6962.txt
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語: C++
[4] 期限: 6月24日
すいませんがお願いします。
0024デフォルトの名無しさん
2008/06/19(木) 01:07:07どうもありがとうございます。
0025デフォルトの名無しさん
2008/06/19(木) 01:09:40[2] 問題文http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6963.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: C
[4] 期限: 6月23日月曜日(早いと助かります)
[5] その他の制限:できるだけ簡単に
何度もすみませんもしできる方がいましたらお願いします
0026デフォルトの名無しさん
2008/06/19(木) 01:17:28これはすまんすまん。
既に回答されてたからいいかーと思ってた。
http://pc11.2ch.net/test/read.cgi/tech/1212895856/845
これじゃだめだったん?
0028デフォルトの名無しさん
2008/06/19(木) 03:05:41char配列は、windowsちっくにソートしたw
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6964.txt
0029デフォルトの名無しさん
2008/06/19(木) 03:24:01素朴な疑問なんだが、配列の初期化の辺りは意図的にやっているんだよね?
0030デフォルトの名無しさん
2008/06/19(木) 03:29:45data.txt
0 0.000
5 0.087
10 0.173
15 0.258
20 0.342
25 0.422
30 0.500
35 0.573
40 0.624
45 0.707
50 0.766
55 0.819
60 0.866
65 0.906
70 0.939
75 0.965
>>26 何で謝ってるか意味が分からん。良かったら教えて。
0031デフォルトの名無しさん
2008/06/19(木) 03:37:480032デフォルトの名無しさん
2008/06/19(木) 04:04:38前スレで
>ソースコードはでき次第うpする
って言ったのにその後放置したのを、期待してた18に悪いと思ったんだろ。
003331
2008/06/19(木) 04:10:030034デフォルトの名無しさん
2008/06/19(木) 04:11:48間違いなくあいつだw 毎日昼夜逆転の生活乙。
どんだけ構ってチャンなんだよ、お前?w
誰も部外者のお前に意見なんて聞いてねーだろw
本人がなんで謝っているのか?本人がレスすりゃ良いだけだろw
0035デフォルトの名無しさん
2008/06/19(木) 04:28:44構ってチャン乙
0036デフォルトの名無しさん
2008/06/19(木) 04:31:05#include<stdio.h>
#include<stdlib.h>
void quick_sort(int left, int right);
int pivot(int left, int right);
int *list;
int num_of_data;
main()
{
int i;
scanf("%d", &num_of_data);
list = malloc(sizeof(int) * num_of_data);
for(i=0; i<num_of_data; i++) scanf("%d", list + i);
quick_sort(0, num_of_data-1);
printf("%d\n", num_of_data);
for(i=0; i<num_of_data; i++)
{
printf("%12d\n", list[i]);
}
}
0037デフォルトの名無しさん
2008/06/19(木) 05:20:04本人でもないのに他人の意向を勝手に思い込む、勘違いする奴って
ぜってーどっかズレてるよな。それで相手の気分を害すると。
0038デフォルトの名無しさん
2008/06/19(木) 06:21:02勘違いと決め付けることは本人でもないのに他人の意向を勝手に思い込むことだと思うけど。
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6965.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C
[4] 期限: 本日13時まで
よろしくお願いします
0040デフォルトの名無しさん
2008/06/19(木) 06:26:06ちょうど上手いこと消せるかと思ったんだが…ま、いいや
変数はrev_flagだけ消して、whileのとこは下のに変更しとくれ
current = 0;
while(string[current] != '\0'){
if(s.num_of_data > 0) reverse[current] = pop(&s);
else reverse[current] = string[current];
if(string[current] == '#'){
i = current+1;
while(string[i] != '\0' && string[i] != '#'){
push(&s, string[i]);
i++;
}
}
current++;
}
reverse[current] = '\0';
0041デフォルトの名無しさん
2008/06/19(木) 07:51:45top=top++; /*ポインタを更新*/
これはひどい
0042デフォルトの名無しさん
2008/06/19(木) 09:56:42ヒントは”参考”にした、ヒントを元に作ってないw
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6966.txt
0043デフォルトの名無しさん
2008/06/19(木) 10:15:52これはいい感じに喧嘩売ってる
0044デフォルトの名無しさん
2008/06/19(木) 10:16:40確かに副作用完了点とか無視しまくりんぐwwwwww
0045デフォルトの名無しさん
2008/06/19(木) 11:10:10static int g_nStack[ STACK_MAX ] = {0,0,0,0,0,0,0,0,0,0};
グローバルならわざわざ初期化いらないんじゃない
STACK_MAX変更するたびに修正しないといけないし
0046デフォルトの名無しさん
2008/06/19(木) 11:28:110047デフォルトの名無しさん
2008/06/19(木) 12:13:01動作確認完了です
わざわざ追加したこちらのご要望にも答えていただきありがとうございました
0048デフォルトの名無しさん
2008/06/19(木) 12:20:17ありがとうございました
ただ実行しても
'=' : 'void *' から 'int *' に変換できません。
のようなエラーがでてしまいます
あと厚かましいのですが
もっと簡単な、サンプルプログラムに近いソースを頂くことはできませんか
0049デフォルトの名無しさん
2008/06/19(木) 12:24:230050デフォルトの名無しさん
2008/06/19(木) 12:30:46[2] 問題分:リスト構造
• 数値の列を入力し,それをリスト構造にデータを格納せよ.
その際,数値が大きさの順に並ぶようにせよ.
- 入力する数値の数を限定してもよい
- たとえば5個
• リストの内容を先頭から出力せよ.
- 結果として入力された数値の列が,大きさ順に並び替えられて
表示されることになる.
• リスト構成する要素(セル)はmalloc関数でヒープ領域から
確保するものとする.
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:visualstdio 2008
[3.3] 言語:C++
[4] 期限:6月19日 12時頃まで
[5] その他の制限:特に無し。
申し訳ありませんがどうか宜しくお願いします。
0051デフォルトの名無しさん
2008/06/19(木) 12:36:14Cで書いてあるから拡張子をcにしろ
C++じゃないとだめならmallocじゃなくてnew使え
0052デフォルトの名無しさん
2008/06/19(木) 12:36:25mallocの前に(int*)をつける
0053デフォルトの名無しさん
2008/06/19(木) 13:27:38そそ。フォローども。
0054デフォルトの名無しさん
2008/06/19(木) 13:28:38そんな誤解受ける書き方だったかなあ。気をつけるね。
0055デフォルトの名無しさん
2008/06/19(木) 13:48:31[2] 基数変換
1)基数変換プログラムを作成しなさい。
「元:2〜16進数(選択)→変換先:2〜16進数(選択)」
という基数の指定ができるようにすること.
[3] 環境
[3.1] Windows
[3.2] CPad for Borland C++Compiler
[3.3] 言語:C
[4] 期限: 明日まで
[5] その他の制限: 本課題は、基数変換の理解、および、そのプログラムとしての実装を
主たる目的としています。従って、基数変換を行う関数や外部プログ
ラム等を用いてはいけません。
プログラムとってないけど出されてしまいましたorz
正直まったくわかりません・・・
とりあえずロダにあげときました。
よろしくお願いします。
福島大学 共生システム理工学類2年
吉原 千勝
0056デフォルトの名無しさん
2008/06/19(木) 13:49:09たとえば A B C D の順列パターン数は 4! で求まるけど、
A A B C や、 A A A B, または A A B B の順列パターン数はどう求めるんだっけ?
公式ある?
0057デフォルトの名無しさん
2008/06/19(木) 13:59:41tech:プログラム技術[重要削除]
http://qb5.2ch.net/test/read.cgi/saku2ch/1033032078/60
0058デフォルトの名無しさん
2008/06/19(木) 14:00:330059デフォルトの名無しさん
2008/06/19(木) 14:04:550060デフォルトの名無しさん
2008/06/19(木) 14:08:12N個からなるパターンの総数はN!
同一種でM個の重複がある場合にはM!で割る
AABC → 4!/2!
AAAB → 4!/3!
AABB → 4!/(2!2!)
0061デフォルトの名無しさん
2008/06/19(木) 14:12:19AABC → 4!/(2!1!1!)
AAAB → 4!/(3!1!)
AABB → 4!/(2!2!)
0062デフォルトの名無しさん
2008/06/19(木) 14:13:05書く事と解くことを履き違えいほうがいいぞ
0063デフォルトの名無しさん
2008/06/19(木) 14:13:59重複順列ならn^m
でもサイコロの出目の合計だから重複組合せを求めるんじゃね
てか出目の合計xを求める確率密度関数p(x)がありゃいいんだけどな
0064デフォルトの名無しさん
2008/06/19(木) 14:37:57[2] 問題文:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6971.txt
例プログラム:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6970.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限: [2008年6月25日まで]
[5] その他の制限:2分木で作る
どなたかお願いします。
0066デフォルトの名無しさん
2008/06/19(木) 15:00:57http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6973.c
遅くなりましたが、ありがとうございました
何も言われないことを祈りますw
0068デフォルトの名無しさん
2008/06/19(木) 17:16:01"012345…DEF"でもおk
006950
2008/06/19(木) 17:52:3119日12時じゃ書き込んだ時点で既に過ぎてるって。
すみません、08年6月20日の12時迄でした。
0070デフォルトの名無しさん
2008/06/19(木) 17:52:33[2] 問題文http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6974.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: C
[4] 期限: 6月23日月曜日(早いと助かります)
[5] その他の制限:できるだけ簡単に
何度もすみません,もしできる方がいましたらお願いします.
0071デフォルトの名無しさん
2008/06/19(木) 18:29:43要するにフィールドを9×9にして9分割して
その中に8個無かったら最後に1列1行調べるようにすればいいんじゃね?
できるだけ効率よく座標調べるようにしてさ
0072デフォルトの名無しさん
2008/06/19(木) 18:30:29する分かるぞw
0073デフォルトの名無しさん
2008/06/19(木) 18:49:28色んなイミで
0074デフォルトの名無しさん
2008/06/19(木) 19:17:12[2] 問題文:BMP画像を読み込んで画面に出力するプログラムを作成
[3] 環境:
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: borland c++ 5.5.1
[3.3] 言語:Cのみ
[4] 期限:20日まで
[5] その他の制限:とくに無し
0075デフォルトの名無しさん
2008/06/19(木) 20:32:18かわいそうに。
0076デフォルトの名無しさん
2008/06/19(木) 20:33:58前スレの回答では何がダメだったのだろう。手数が多すぎるからアウト?
ダメな理由を書かずにお願いしますお願いしますじゃ困る人もいるのでは。
0078デフォルトの名無しさん
2008/06/19(木) 20:57:36自分でやる時にどうやったら効率よく宝探せるか考えるとか
割とおもしろいと思うけどなあ
0079デフォルトの名無しさん
2008/06/19(木) 21:16:23・入力内容
名前、年齢、メアド
・機能
追加、削除、編集、ソート(No.)、(年齢)、終了
・動作例
[追加の例]
1:add
2:del
3:mod
4:sort(no)
5:sort(age)
6:end
Select Function:1
name:name
age:78
mail:[email protected]
1:namae 78 [email protected]
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
とりあえず、追加だけでよろしくお願いいたします。
0080デフォルトの名無しさん
2008/06/19(木) 21:17:08・入力内容
名前、年齢、メアド
・機能
追加、削除、編集、ソート(No.)、(年齢)、終了
・動作例
[追加の例]
1:add
2:del
3:mod
4:sort(no)
5:sort(age)
6:end
Select Function:1
name:name
age:78
mail:[email protected]
1:namae 78 [email protected]
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
とりあえず、追加だけでよろしくお願いいたします。
0081デフォルトの名無しさん
2008/06/19(木) 21:17:550082デフォルトの名無しさん
2008/06/19(木) 21:33:35[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6976.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual studio2005
[3.3] 言語:C言語
[4] 期限:20日午後1時まで
[5] その他の制限:特になし
よろしくお願いします
0083デフォルトの名無しさん
2008/06/19(木) 21:35:53num[j+1] = num[j];
num[j] = tmp;
0084デフォルトの名無しさん
2008/06/19(木) 21:37:40http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6977.c
0085デフォルトの名無しさん
2008/06/19(木) 21:37:41//ここに、数を入れ替えるプログラムを追加する
tmp = num[ j ];
num[ j ] = num [ j + 1 ];
num [ j + 1 ] = tmp;
0086デフォルトの名無しさん
2008/06/19(木) 22:04:25[2] 問題文:int型配列x,yを次のように宣言する。
int x[5]={3,-2,-4,2,3};
int y[7]={1,3,3,-2,3,0,5};
このとき,xおよびyの配列の各要素の合計を返す関数ArraySum()を作成せよ。
なお,xとyとで2つの異なる関数を作る必要はない。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限: [2008年6月20日12:00まで]
前スレでも聞いてた人がいたけど俺にはわからなかったので・・・
誰かよろしくお願いします
0087デフォルトの名無しさん
2008/06/19(木) 22:07:20どこが分からないか言わないと前スレと同じ回答来るだけだと思うが
0088デフォルトの名無しさん
2008/06/19(木) 22:07:28{
int sum = 0;
while(size--) sum += p[sum];
return sum;
}
0089デフォルトの名無しさん
2008/06/19(木) 22:07:45return 2+13;
}
0090デフォルトの名無しさん
2008/06/19(木) 22:10:09[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6978.txt
コマンドライン引数で指定した2分木データから2分木を作成し、
次のsumValue関数を使ってノードの合計を計算するプログラムを、↑の資料を参考にして作成せよ。
ただし、下の実行例のように、ルートの左部分木と右部分木の合計も計算するものとする。
必要な関数などはすべて記載しておくこと。
BITREE_TYPE sumValue(BITREE_NODE *p);
実行例
[ 6 [ 8 1 5 ] [ 3 _ 9 ] ]
入力データ [ 6 [ 8 [ 1 _ _ ] 5 _ _ ] ] [3 _ [ 9 _ _ ] ] ]
==> 合計は 32 です
==> 左部分木の合計は 14 です
==> 右部分木の合計は 12 です
[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まで] または [無期限] のいずれか)
6月23日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません、よろしくおねがいします
0091デフォルトの名無しさん
2008/06/19(木) 22:11:21またお前か…
8/100の8を全て選ぶ回数が20〜30回で、と言う確率がどれくらいかわかってるのか
単純に考えても8x4=32で、1つ探すのにも4手でオーバーだぞw
ズルなしで出来るか、ボケェ
自分のプレイの平均を出してみろ
0092デフォルトの名無しさん
2008/06/19(木) 22:14:47またお前か…
要らん罵倒レスが入っているから分かりやすいぞw
わざわざ改行して最後に句読点をつけない特徴もそのまんまw
0093デフォルトの名無しさん
2008/06/19(木) 22:30:070094デフォルトの名無しさん
2008/06/19(木) 22:30:25あなたもわざわざ改行をして最後に句読点をつけないねw
最後に読点をつける人がいたら結構な特徴になるだろうか
でも>>91はせっせとソース上げてるから>>92よりしっかりしてるよね
0095デフォルトの名無しさん
2008/06/19(木) 22:31:01まあ一回で九マス十一回で九十九マス調べられるからな
被らないようにすればぎりぎりいける…かも
0096デフォルトの名無しさん
2008/06/19(木) 22:32:53爆弾ビンゴの時に周囲が分からないのと、盤面が10*10であるというのがあるですよ。
0097
2008/06/19(木) 22:33:31[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6980.txt
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語:c
[4] 期限:6月20日 夕方くらいまで
[5] その他の制限:添付ファイルに少し書きました。
ポインタやポインタ配列を習い始めて少ししか経ってないくらいです。
0098デフォルトの名無しさん
2008/06/19(木) 22:39:04int main(void)
{
char str[256], ch;
int i, cnt = 0;
printf("文字列入力:");
scanf("%s", str);
printf("検索文字入力:");
scanf(" %c", &ch);
for(i=0; str[i]; i++) if(str[i]==ch) cnt++;
printf("検索文字は%d個見つかりました。\n", cnt);
return 0;
}
0100
2008/06/19(木) 22:46:12ありがとうございます。
検索文字のカウントをmainではなく別関数でやってほしいのですが・・・
0101デフォルトの名無しさん
2008/06/19(木) 22:52:380102デフォルトの名無しさん
2008/06/19(木) 22:55:23int count(char *p, int ch)
{
int cnt = 0;
while(*p) {
if(*p==ch) cnt++;
p++;
}
return cnt;
}
int main(void)
{
char str[256], ch;
printf("文字列入力:");
scanf("%s", str);
printf("検索文字入力:");
scanf(" %c", &ch);
printf("検索文字は%d個見つかりました。\n", count(str, ch));
return 0;
}
0103デフォルトの名無しさん
2008/06/19(木) 22:57:19俺のプレイ平均回数とほぼ同じだ…
俺では理論上もうこれ以上は減らせないw
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6981.txt
0104デフォルトの名無しさん
2008/06/19(木) 23:01:42[2] 問題文(含コード&リンク):C言語で自動車エンジンの走行距離と走行時間による熱効率と燃費の算出
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio でいいのか?
[3.3] 言語:C言語
[4] 期限:2008/6/27
[5] その他の制限:Cの基本は一通り習ったはず
こんな感じなんですがお願いできますかね?
0105
2008/06/19(木) 23:04:14ありがとうございました。
感謝してます。
0106デフォルトの名無しさん
2008/06/19(木) 23:05:390107デフォルトの名無しさん
2008/06/19(木) 23:12:02自分でやったら30手以内でできるね
自分の思考をコンピュータにやらせるのはめんどくさそうだが
0108デフォルトの名無しさん
2008/06/19(木) 23:12:34いくらなんでも情報が少なすぎだろう
0109デフォルトの名無しさん
2008/06/19(木) 23:20:51そしてどの環境、プログラマでも共通して gets はご法度なのに
擁護して、また憶測で勝手につじつまを合わせようと都合よく解釈して
授業でやるかもしれないよ?なんてこのスレ的にはどうでも良いことを
言い掛かってきて、何が楽しいんだ?
0110デフォルトの名無しさん
2008/06/19(木) 23:21:19あとどのような情報があればいいですか?
教授から出された課題がこれだけで課題に関してはこれ以上は俺自身もどうしようもない・・・。
あとVisual Studioのバージョンはおそらく2007年のもの。
特に制限はされてないのでCでてきることなら好きなようにやってもらえれば・・・。
課題のイメージとしてはガソリンエンジン車とディーゼルエンジン車をそれぞれ走らせ続けて適当な距離と時間を刻んでデータを取って保存できるようにしてもらえれば・・・。
グラフも作って出せとか言っていたからな、あの教授。
011186
2008/06/19(木) 23:30:040112デフォルトの名無しさん
2008/06/19(木) 23:42:44入力されるものは何?
出力すべきものは何?
0113104
2008/06/19(木) 23:54:09入力するのはエンジンの出力と単位時間に消費される燃料の重さ。
走行時間と走行距離はループで回す方向で。
上記両方をループで回すのはきついかもしれんのでどちらか固定してもらってもおkかと
0114デフォルトの名無しさん
2008/06/20(金) 00:02:49マインスイーパ的な、なので、ビンゴの時はそのマスの周囲8マスにある
宝の数は不明かと。
もうちょっと込み入った何かをやらないと手数が足りないのではないかな。
…と見せかけて今までので実現できるならごめん。
0115デフォルトの名無しさん
2008/06/20(金) 00:08:53あんたもしつこいね。getsがよくないのは後から知ればいい。
それよりもくみ上げる力をつけることのほうが優先だっていってんの。
まず言語になれること。そこからやっていいこと悪いことを知ればいい。
日本語を書くときに「の」の連続はよくないよ、ということを知ったのは
「の」の連続をしてしまうくらいには日本語を知ったあとだろう?
ご法度であることを次の授業で云々と言っている人は他の人だからパス。
0116デフォルトの名無しさん
2008/06/20(金) 00:11:210117デフォルトの名無しさん
2008/06/20(金) 00:14:02リストに追加する際、それらしいところに入れてあげれば勝手にソートされる
大きい順なので、たとえば、
3 が既にあるときに1を追加する場合は3の後ろにつなげる。
さらに2を追加する時は3と1の間にいれる。
0118デフォルトの名無しさん
2008/06/20(金) 00:14:44C++じゃないとダメなのでnewに変えたのですがエラーが発生します
恐らく>>52さんのは試したものの、Cなのでダメなのでしょうが
0119デフォルトの名無しさん
2008/06/20(金) 00:18:18何がダメなのか知らないが、mallocでキャストするのは実にC++っぽい行為だぞ
0120デフォルトの名無しさん
2008/06/20(金) 00:24:26それCですから、mallocでキャスト
0121デフォルトの名無しさん
2008/06/20(金) 00:25:590122デフォルトの名無しさん
2008/06/20(金) 01:38:55あれ?蛇足って言ったけど、蛇足じゃないと指摘されたのに
まだ主張しますか?そんなにキャストしてもらえることを
期待しているなら、お前は絶対に今後はキャスツすんなよ
0123デフォルトの名無しさん
2008/06/20(金) 01:46:07一人わかってないバカがファビョってるだけ。
0124デフォルトの名無しさん
2008/06/20(金) 01:51:46してもしなくてもいいんだからどっちでもいいじゃん
0125デフォルトの名無しさん
2008/06/20(金) 01:56:55キャストしなくてもいいところに、キャストしろってギャーギャー言ってるアホがいるんだが。
0126デフォルトの名無しさん
2008/06/20(金) 01:57:560127デフォルトの名無しさん
2008/06/20(金) 02:00:440128デフォルトの名無しさん
2008/06/20(金) 02:27:20[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6982.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6/23
[5] その他の制限:特になし
つい最近始めたばかりです。どなたかお願いします
0129デフォルトの名無しさん
2008/06/20(金) 02:36:590130デフォルトの名無しさん
2008/06/20(金) 02:52:20言動がキモイ・・・言い返し方もキモイ・・・だから一言居士はきめぇって
わざわざ改行?お前の真似をしてやったんだよ、皮肉だよ、気づけよ
構ってチャンw
0131デフォルトの名無しさん
2008/06/20(金) 02:55:01ズルなしで出来るか、ボケェ < 何か相手に意見するとき、
勢いづいて罵倒レスをつける癖がついてしまっている
> 自分のプレイの平均を出してみろ
命令口調。押し付けるタイプ。
0132デフォルトの名無しさん
2008/06/20(金) 02:55:13[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6935.txt
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
Microsoft Visual Studio 2008
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C++
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月21日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
スルーされたのでもう一度書きます。
お願いします。
0133デフォルトの名無しさん
2008/06/20(金) 03:14:40どこまで恥の上塗りするのか見てみたいけど、
>>91 = >>94だと思ってる時点でアウトだ。
0134デフォルトの名無しさん
2008/06/20(金) 03:41:48彼に反論すると漏れなく同一人物認定されます。
0135デフォルトの名無しさん
2008/06/20(金) 05:49:34[2] 問題文(含コード&リンク):()
浮動小数点実数の文字列表現形式は以下のどれかである。
(1) 文字'0'-'9'だけの並び
(2) (1)の前に'+','-'を高々1個付けたもの
(3) (1)の前に'.'を付けたもの
(4) (2)の直後に(3)が続くもの
(5) (2)または (3) または(4) の後ろに'e'または'E'が続き(2)が続くもの
コンソールから与えた文字列がこの形式になっているかどうかに
応じてYES(なっている場合)あるいはNO(いない場合)を出力
するプログラムを作れ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 6/20 午後17:00
[5] その他の制限:
よろしくです。m(_)m
0136デフォルトの名無しさん
2008/06/20(金) 06:09:34[2] 問題文(含コード&リンク):成績データを処理するために実験用データを,乱数により生成するプログラムを作成せよ.
ただし,成績データは
学生番号,英語,数学,物理,化学,国語,社会
の6科目の得点を1行毎に学生番号毎に並んでいるものとする.得点は0点?100点の範囲に収まっている必要がある.
また,学生番号が1001番から9999番まで存在するとする.実験用データは全ての人数について作成する必要がないので,
コマンドライン引数から作成するデータ数を与え,その人数のデータを,同じくコマンドラインから与える
ファイル名のファイルに出力すること(標準出力を使わないこと).
[3] 環境
[3.1] OS: Windows/Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6/20 23:00
0137デフォルトの名無しさん
2008/06/20(金) 06:45:53#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char **argv)
{
int i, j, num;
FILE *fp;
if(argc < 3) return 0;
num = atoi(argv[1]);
if(num < 1 || 9000 <= num) return 0;
if((fp=fopen(argv[2], "w"))==NULL) return 0;
for(i=1; i<=num; i++) {
fprintf(fp, "%d", 1000 + i);
for(j=0; j<6; j++) fprintf(fp, ",%d", rand() % 101);
fputc('\n', fp);
}
fclose(fp);
return 0;
}
0138デフォルトの名無しさん
2008/06/20(金) 07:10:28[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6983.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler
[3.3] 言語:C言語
[4] 期限:来週の月曜まで
[5] その他の制限:ポインタまで習いました
全然わからないのでよろしくお願いします
0139デフォルトの名無しさん
2008/06/20(金) 08:13:49明後日ってことは明日までまだ時間があるね。
よーーし、パパ、ちょっとがんばっちゃうぞぉ〜。
とりあえず、追加は出来たが、そのほかもやってみたいんで
それらも含めて出来たらうpしまつ。
0140hoge ◆F6cdlTCMHg
2008/06/20(金) 09:54:28ちょっとlexとか造りたくなったから自力でトークナイザ書いてみたよ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6984.txt
0141デフォルトの名無しさん
2008/06/20(金) 09:55:56構造体というものがよくわからないので配列で作ってもらえないですか?
と、言われるかと思うとしびれるよねw
気にせず満足いくものを作ってみるといいお
0142デフォルトの名無しさん
2008/06/20(金) 10:40:31[2] 問題文(含コード&リンク):HTTPサーバを実装する.マルチスレッドによる複数クライアントへの対応,GETとHEADの実装、Keep-alive,チャンクの実装をする.
[3] 環境
[3.1] OS:Windows XP/Vista
[3.2] コンパイラ名とバージョン:VC 8.0/VC 9.0
[3.3] 言語:どちらでも可
[4] 期限:6月23日 23:59
[5] その他の制限:特になし
自分で一応作ってみたのですが、どうもうまく動かないのでよろしくお願いします。
また、Keep-alive,チャンクの実装がよくわかりません。
自分で作ったのを置いておきます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6986.zip
0143デフォルトの名無しさん
2008/06/20(金) 13:11:25[2]テキストサウンドノベルを作成する事。
キー入力でメッセージを表示し、途中で選択肢を含める。(最大3つまで)
画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。
テキスト行数は、最低50行から最大100行までとする。
画面全消去方法は、先生に聞くこと。
#include"stdlib.h"
system("CLS");
この時に画面すべて消せる
0144104
2008/06/20(金) 13:12:08[1] 授業単元:)
[2] 問題文(含コード&リンク):C言語で自動車エンジンの走行距離と走行時間による熱効率と燃費の算出
(エンジンのパワーと単位時間に消費される燃料の重さを入力して走行距離と時間に応じた熱効率を算出する。燃費は熱効率と逆数の関係にあるのでそこから求められる。)
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2007
[3.3] 言語:C
[4] 期限:2008/6/27
[5] その他の制限:課題に対する制限は特になし。
これでお分かり頂けるでしょうか?
0145135
2008/06/20(金) 14:53:43あ、ありがとうございます。
内容は全然わからなかったのですが、取り敢えずコンパイルしてみました。
概ね動作しました。何故か前回正常にOKが返った値(4.39183e32)
がNGと返ってくることがあったような感じです。入力ミスなのかも
しれません。
ネット上のソースを写して提出したら単位認定しないという
結構厳しい授業なので、参考にさせて頂いて、自分で書き直して
みます。
0146デフォルトの名無しさん
2008/06/20(金) 15:13:36>ネット上のソースを写して提出したら単位認定しない
このスレで言うのも何だがあたりまえだろ
全然厳しくないぞ
0147デフォルトの名無しさん
2008/06/20(金) 15:33:59それはきびしいねwwwww
0148デフォルトの名無しさん
2008/06/20(金) 15:56:44俺の出した課題が出てると喜んでいるでしょう
0149デフォルトの名無しさん
2008/06/20(金) 16:40:40[2] 問題文(含コード&リンク):
複数の成績データを1度に読み込んで,それぞれのファイルに含まれる学生数と,
各科目の平均点を求めて,ファイル名と共に出力するプログラムを作成せよ.
成績ファイルは,
学生番号(整数),英語(整数),数学(整数),物理(整数)
の得点が一行に記載されている.ただし,学生番号順には並んでないし,抜けがあるかもしれないものとする.
学生番号は整数のみ,0〜番などは考慮しなくてよい
[3] 環境
[3.1] OS: Windows/Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6/20 23:00
[5] >>137ありがとう、これもどなたかお願いします\(^o^)/
0150149
2008/06/20(金) 16:42:55argvとかを使って
例
% ex016 r901-1.dat r901-2.dat r903.dat
r901-1.dat: 26 English: 82.23 Mathematics: 90.21 Physics: 79.93
r901-1.dat: 97 English: 42.41 Mathematics: 92.34 Physics: 89.93
r901-1.dat: 97 English: 32.23 Mathematics: 91.01 Physics: 99.93
となる感じでお願いします(数値は適当
0151デフォルトの名無しさん
2008/06/20(金) 17:50:55[2] 問題文(含コード&リンク)
下に載せてあるプログラムを応用して以下のプログラムを作ってください。
(1)画像をモノクロ化するプログラム
(2)画像の明暗を変化させるプログラム
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2003
[3.3] 言語: C
[4] 期限: 6月22日までにお願いします
[5] その他の制限:printfの変わりにfprintf文を使ってください。
#include "plite.h"
int main(int argc,char **argv)
{
RGB in;
RGB out;
int i,j;
ReadRGB(&in,argv[1]);
MemRGB(&out,in.row,in.col);
for(i=0;i<out.row;i++){
for(j=0;j<out.col;j++){
out.R[i][j]=in.R[i][j];
out.G[i][j]=in.G[i][j];
out.B[i][j]=in.B[i][j];
}
}
writeRGB(&out);
return0;
}
0152デフォルトの名無しさん
2008/06/20(金) 17:59:20総当たり以外に方法ありますか?
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):()
それぞれ空き容量が異なる(同じでも良い) C, D, E, F ドライブのHDDに
ファイル a, b, c, d が全て収まりきるか調べ、収まる場合はその入れ方を
一つ表示しなさい。
例)
(C, D, E, F) = (1GB, 6GB, 4GB, 3GB)
(a, b, c, d) = (3GB, 2GB, 2GB, 5GB)
の場合、C:* D:d E:b,c F:a
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC2003
[3.3] 言語:どちらでも可
0153デフォルトの名無しさん
2008/06/20(金) 18:05:47演習でやるなら動的計画法でも使えばいい。
0154デフォルトの名無しさん
2008/06/20(金) 18:50:44[2] 問題文(含コード&リンク):()
文字列を逆向きにして標準出力に出力するvoid strRev(char *)を定義し、
この関数を用いて標準入力の各行を逆向きにして一行ずつ表示するプログラムを作成しなさい
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ: gcc
[3.3] 言語: C
[4] 期限: 6/23
[5] その他の制限: 関数の戻り値や引数を変更しない
出力例で英語の文章が数行書かれたsample.txtを
./a.out < sample.txt
と入力された場合、それぞれの行が反転して出力されているのですが、これはどうすればいいのでしょうか?
最初の1行だけを反転して出力ならできるのですが・・・。
015550
2008/06/20(金) 18:59:17自分でも調べたりしてるのですが全く理解ができません。
過去ログ探してみるも同じのはあったけどソースが消されていたり。
何とかならないでしょうか。
しつこいかもですがどうか御願いします。
0156デフォルトの名無しさん
2008/06/20(金) 19:23:57ぜひお願いします。
0157>>155 やっつけ
2008/06/20(金) 19:26:10#include <vector>
#include <algorithm>
typedef struct lt{
double value;
lt *left;
lt *right;
}o_list;
void main(){
using namespace std;
vector<double> vec;
double tmp;
for(int k=0;k<5;k++)
{
cin >> tmp;
vec.push_back(tmp);
}
sort(vec.begin(),vec.end());
o_list *old=NULL;
for(int v=0;v<5;v++)
{
o_list *t =(o_list *)malloc(sizeof(o_list));
t->left=old;
t->right=NULL;
t->value=vec[v];
old=t;
}
do {
cout << old->value << endl;
old=old->left;
}while(old!=NULL);
}
0158デフォルトの名無しさん
2008/06/20(金) 19:53:50> 名前、年齢、メアド
> ソート(No.)、
えっ!?
0159デフォルトの名無しさん
2008/06/20(金) 20:17:00主キーというか登録順でいいんじゃない?
0160デフォルトの名無しさん
2008/06/20(金) 20:45:33#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct lt{
double value;
lt *left;
lt *right;
}o_list;
void main(){
vector<double> vec;
double tmp;
int k, v;
for( k=0; k<5; k++ ) {
cout << k+1 << " of 5 : "; // cout
cin >> tmp; // cin
vec.push_back(tmp);
}
sort(vec.begin(), vec.end());
for( v=0; v<5; v++ ) {
cout << vec[v] << endl; // cout
}
}
0161デフォルトの名無しさん
2008/06/20(金) 20:46:10#include<stdio.h>
#include<stdlib.h>
typedef struct tag_list_t{
int value;
struct tag_list_t *next;
}list_t;
list_t *list_add(list_t *list, int value){
list_t *member, *member_new, *prev;
member_new=malloc(sizeof(list_t));
member_new->value=value;
member_new->next=NULL;
for(member=list,prev=NULL;member;prev=member,member=member->next)
if(member->value > value) break;
if(!prev){
member_new->next=list;
return member_new;
}
member_new->next=prev->next;
prev->next=member_new;
return list;
}
void list_print(list_t *list){
for(;list;list=list->next) printf("%d\n", list->value);
}
int main(void){
list_t *list=NULL;
int value;
while(scanf("%d", &value)==1) list=list_add(list, value);
list_print(list);
return 0;
}
0162デフォルトの名無しさん
2008/06/20(金) 20:56:09こんなんでいいのかな?
#include <stdio.h>
void strRev(char *str) {
if(*str!='\0') strRev(str+1);
putchar(*str);
}
int main(void) {
int i;
char buf[64],*str[128];
for(i=0;fgets(buf,sizeof(buf),stdin)!=NULL;i++) {
*(str+i)=buf;
strRev(*str);
}
return 0;
}
0163デフォルトの名無しさん
2008/06/20(金) 20:56:48c++でmalloc?
0164デフォルトの名無しさん
2008/06/20(金) 21:02:580165デフォルトの名無しさん
2008/06/20(金) 21:05:33遅れましたが、ありがとうございました
0166デフォルトの名無しさん
2008/06/20(金) 21:20:38ありがとうございます。
ですが、コンパイルしたファイルを単体で実行するとフプログラムが終了しないのですが・・・。
これはどうしようもないのでしょうか?
0167デフォルトの名無しさん
2008/06/20(金) 21:24:450168デフォルトの名無しさん
2008/06/20(金) 21:27:15Ctrl+D
016950
2008/06/20(金) 21:27:20>>157 様、>>160 様、>>161 様、
お手数おかけました。本当に有難う御座います。
何とか提出が間に合いました。
>>164
C++のを使ってますね。
0170デフォルトの名無しさん
2008/06/20(金) 21:28:47やってのけた>>50はある意味大物か
0171デフォルトの名無しさん
2008/06/20(金) 21:28:50>*(str+i)=buf;
まさかこれで文字列がコピーされてるとか思ってる?
017250
2008/06/20(金) 21:29:08期限のとかも間違えてたし…。
すみません、次からはちょっと落ち着いて書き込もうと思います。
0173デフォルトの名無しさん
2008/06/20(金) 21:31:25少なくともそれを期待したコードにはなってないから分かってると思うよ
0174デフォルトの名無しさん
2008/06/20(金) 21:32:59そうか?
str[i]に毎回同じbuffのアドレスいれてるからわかってないと思うんだが。
0175デフォルトの名無しさん
2008/06/20(金) 21:34:10printf とか scanf とか再帰とかw
2.問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6987.txt
3.環境:vista C++
visual studio2008
4.期限: 6/21(土)夕方6時まで
5.その他の制限:基本事項は習ってます。期限が近くてかなり焦ってます。
どうかよろしくおねがいします。
0178デフォルトの名無しさん
2008/06/20(金) 22:00:26しかも毎回*(str+i)にbuffを入れておきながら、関数に渡してるのは*strという事実
意味ねーw
0179デフォルトの名無しさん
2008/06/20(金) 23:47:50[2] 問題文(含コード&リンク):()
課題�@
「騎士の巡回」の解を求めるプログラムを用いて、チェス盤の1辺Nが5と6の場合について、経路の数を求めよ。(スタート地点は(0,0)とする。)
尚出力は、解の数と、時間計算量の評価回数、それに実行時間を示すこと。
課題�A
「騎士の周遊」とは、「騎士の巡回」に加えて、経路の最後のマスからスタート地点に1手で戻れる経路を求める問題である。チェス盤の1辺Nが5と6の場合について、この条件を満たす経路の数を求めよ。
尚出力は、解の数と、時間計算量の評価回数、それに実行時間を示すこと。
課題�B
下記に示すチェス盤では、移動できる部分をoで、移動できない部分をxで示している。このようなチェス盤に対する 「騎士の周遊」の解の総数を求める問題に対して、時間計算量を見積もった上で、プログラムを実行
し、解の総数と時間計算量(評価回数)を求めよ。
以下、授業中に板書された課題�@のソートと、課題�Bのチェス盤を載せておきます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6988.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6989.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:6月23日(月)まで
[5] その他の制限:
課題�@の上のソートじゃなくても全然構わないです。
たくさんありますが・・・よろしくお願いしますm(__)m
0180179
2008/06/20(金) 23:51:43読みにくくて申しわけないですorz
0181デフォルトの名無しさん
2008/06/20(金) 23:53:25[2] 問題文(含コード&リンク):
文字列(英小文字)を入力し、その文字列を任意の数(1〜25)だけずらして、
文字列を暗号化する関数encryptを作成せよ。
(注)1文字ずらして暗号化する場合
「a」→「b」、「b」→「c」、「z」→「a」
という変換をして暗号化する
<実行例>
------英字の暗号化------
文字列を入力してください(英小文字)
hello
何文字ずらしますか?(1〜25)
1
------暗号化された文字列-----
ifmmp
[3] 環境
[3.1] OS: Linux
[3.3] 言語: C
[5] その他の制限: ポインタ使用可です。
よろしくお願いします。
0182デフォルトの名無しさん
2008/06/21(土) 00:08:47void encrypt(char *str, int n)
{
while(*str) {
*str = 'a' + (*str - 'a' + n) % 26;
str++;
}
}
int main(void)
{
char str[256];
int n;
puts("------英字の暗号化------");
puts("文字列を入力してください(英小文字)");
scanf("%s", str);
puts("何文字ずらしますか?(1〜25)");
scanf("%d", &n);
encrypt(str, n);
puts("------暗号化された文字列-----");
puts(str);
return 0;
}
0183デフォルトの名無しさん
2008/06/21(土) 00:13:20while(*str) {
*str = 'a' + (*str - 'a' + n) % 26;
str++;
ここを少し説明していただけませんか?
0184デフォルトの名無しさん
2008/06/21(土) 00:45:230185デフォルトの名無しさん
2008/06/21(土) 00:46:51[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6990.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6/23
/[5] その他の制限:特になし
よろしくお願いします
0186デフォルトの名無しさん
2008/06/21(土) 00:56:06double mean(int a[] , int length)
{
int i;
double ave=0.0;
for(i=0;i<length;i++)
ave+=a[i];
return ave / (double)length;/*キャストいらないかもしれないけど明示するために一応付けとく*/
}
0187デフォルトの名無しさん
2008/06/21(土) 01:14:56ソートは出題者のほうもよくわかってない感じなんで、とりあえず追加だけお願いします。
0188デフォルトの名無しさん
2008/06/21(土) 01:36:03ういっ、もう少しでうpするでおじゃる●のクソースが見られるでおじゃるよ
0189デフォルトの名無しさん
2008/06/21(土) 01:43:10ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6991.c
0190デフォルトの名無しさん
2008/06/21(土) 01:45:08http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6992.c
ちと訂正したでおじゃ
0191デフォルトの名無しさん
2008/06/21(土) 01:47:04ところがイタい
0192デフォルトの名無しさん
2008/06/21(土) 01:48:02a〜zまでは文字コードが昇順に並んでいることと、a〜zまでは26文字あること。
それくらいしか気になる点はないと思う。
0193デフォルトの名無しさん
2008/06/21(土) 01:56:23何をおっしゃるか、これは紛れもなく初心者向けにレベルを落とした
クソースでおじゃっ
0194デフォルトの名無しさん
2008/06/21(土) 02:08:40http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6993.c
0195デフォルトの名無しさん
2008/06/21(土) 02:42:30である件について
0196デフォルトの名無しさん
2008/06/21(土) 02:46:430197デフォルトの名無しさん
2008/06/21(土) 03:01:18プロとしてコードを書いてないゆえ、クソースということで
我慢してもらっているでおじゃる。上には上がいるゆえ、
まだまだ精進するでごじゃるよ。
0198デフォルトの名無しさん
2008/06/21(土) 05:52:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6994.txt
0199デフォルトの名無しさん
2008/06/21(土) 06:36:40[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6983.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler
[3.3] 言語:C言語
[4] 期限:来週の月曜まで
[5] その他の制限:ポインタまで習いました
全然わからないのでよろしくお願いします
0200デフォルトの名無しさん
2008/06/21(土) 09:58:43汚いソースですが。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6996.txt
MOJIで文字の種類、HANIで範囲を指定できるようにしました。
範囲チェックとかしてないので入力不可文字を範囲に含めないように。
マスターの文字列については一応重複チェックしてます。
0201デフォルトの名無しさん
2008/06/21(土) 10:02:340202デフォルトの名無しさん
2008/06/21(土) 10:09:33gccでやってるからbccだと動かないかもしれない。
0203デフォルトの名無しさん
2008/06/21(土) 10:12:170204デフォルトの名無しさん
2008/06/21(土) 10:20:16今のままだと重複したら無限ループするので
makerandomstrのi--;の次の行にc=0;入れてください。
0205デフォルトの名無しさん
2008/06/21(土) 10:32:21テスト済みなのか、
コンパイル済み(文法エラー無し)
未コンパイルなのか、コメントに書きませんか?
0206デフォルトの名無しさん
2008/06/21(土) 10:36:14ちゃんと動くソースコードがほしい
題意を満たしていてほしい
何も出来ない初心者なので全部やってください><
↑
このギャップは埋められない
↓
宿題を片付ける側
面白そうだからやってみた
(^ω^ がんばったお
0207デフォルトの名無しさん
2008/06/21(土) 10:43:10コンパイル通らなきゃソース上げないと思うんだが。
未コンパイルの可能性があるのはレスに直接ソースを書いてる場合位のような。
>>205が質問側なのか回答側なのか知らないけど
回答してる側としてはそこまで要求されてもなあ、と思う。
質問者が単位落としたとしてもこっちには関係ないことだし。
0210デフォルトの名無しさん
2008/06/21(土) 11:38:39[2] 問題文(含コード&リンク)
>>151です。あと2問残ってたのでこちらもお願いします
下に載せてあるプログラムを応用して以下のプログラムを作ってください。
(3)画像の分割・結合のプログラム。
(各画像の左半分と右半分を取り出し一方の画像の左半分と他方の右半分を結合した画像を出力)
(4)画像の切り抜きをするプログラム
(カラー画像に任意の領域を指定して、指定部分の画像のみを得る)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2003
[3.3] 言語: C
[4] 期限: 6月22日までにお願いします
[5] その他の制限:printfの変わりにfprintf文を使ってください。
#include "plite.h"
int main(int argc,char **argv)
{
RGB in;
RGB out;
int i,j;
ReadRGB(&in,argv[1]);
MemRGB(&out,in.row,in.col);
for(i=0;i<out.row;i++){
for(j=0;j<out.col;j++){
out.R[i][j]=in.R[i][j];
out.G[i][j]=in.G[i][j];
out.B[i][j]=in.B[i][j];
}
}
writeRGB(&out);
return0;
}
0211デフォルトの名無しさん
2008/06/21(土) 11:48:140212デフォルトの名無しさん
2008/06/21(土) 11:54:15なんか不具合があればここで報告しなよ。
せっかくアップしてもノーレスなら対処しようが無い。
あとレスがあれば回答者のモチベーションも上がると思うが。
0213デフォルトの名無しさん
2008/06/21(土) 12:12:25ないのだが...
0214デフォルトの名無しさん
2008/06/21(土) 12:13:090215デフォルトの名無しさん
2008/06/21(土) 12:30:030216デフォルトの名無しさん
2008/06/21(土) 12:39:52丸投げの予行演習といったところか(w
0217デフォルトの名無しさん
2008/06/21(土) 13:14:37そういうときは、クソースで返すでおじゃるよ
0218デフォルトの名無しさん
2008/06/21(土) 13:19:050219デフォルトの名無しさん
2008/06/21(土) 14:13:34つ http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6997.txt
一応正常に動きますが マスタが含む文字を5文字連続で入力するとバグります。
例:マスタ "yoooo" 入力 "yyyyy".etc・・・
テスト用に不必要なものまで表示しています。気になるようでしたら削除してください。
0221デフォルトの名無しさん
2008/06/21(土) 15:50:110222デフォルトの名無しさん
2008/06/21(土) 16:09:28[2] 1.登録番号"int no"と名前"cahr *name"と年齢"int age"を含む構造体person型の
配列を定義し初期化せよ。なお、最後のデータの名前にはNULLを入れておく。
登録番号は入力順に1,2,3,4,5とする。
配列の先頭アドレスを示す構造体person型のポインタを引数として与え、
データを年齢順に並び替える関数を作成せよ。
2.登録番号(int no)と名前(char *name)と年齢(int age)を含む構造体person型のポインタ変数を宣言し、
登録人数分だけの動的メモリを確保せよ。
そして、データをファイルから入力せよ。
ファイルの形式は、先頭に登録する人数とし、そのあとに人数分のデータを登録番号、
名前、年齢の順に書いていく。(下の例を参照)
登録番号は入力順に1,2,3,4,5…とする。
そして、入力した全員のデータを表示せよ。
(ファイルの例)
3
1 田中 20
2 大田 40
3 井上 35
[3] 環境
[3.1] windows
[3.2] Microsoft Visual Studio 2003
[3.3] C
[4] 6/23まで
[5] とくになし
初心者なので、出来れば分かりやすいコードでお願いします。
お手数おかけしまして、申し訳ないです。
宜しく、お願いします。
0223デフォルトの名無しさん
2008/06/21(土) 16:16:19http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6998.txt
0224デフォルトの名無しさん
2008/06/21(土) 16:20:24ありがとうございます。
そこの部分考えてみます( ^ω^)
0225デフォルトの名無しさん
2008/06/21(土) 16:24:55ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6999.txt
0226デフォルトの名無しさん
2008/06/21(土) 17:30:24[2]10人までの氏名と点数の入力を受け付け、
点数が高い者から順に表示するプログラムを作成せよ
[3.1]windows
[3.2]gcc
[3.3]c
[4]月曜まで
[5]一度提出したのですが、再提出をくらいました
自分で作ったものが↓です
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7001.txt
極力↑に近い解答をいただけると嬉しいです
よろしくお願いします
0227デフォルトの名無しさん
2008/06/21(土) 17:37:56int ts;
for(i=0;i<10;i++){
for(int i=1;i<10;i++)
{
if(hito[i-1].score<hito[i].score){
ts=hito[i];
hito[i]=hito[i-1];
hito[i-1]=ts;
}
}
}
0228デフォルトの名無しさん
2008/06/21(土) 17:52:40for(i=0;i<10;i++){
for(j=i+1;j<10;j++){
if(hito[i].score < hito[j].score){
hito[10] = hito[i];
hito[i] = hito[j];
hito[j] = hito[10];
}
}
}
0229デフォルトの名無しさん
2008/06/21(土) 18:19:30[2] 問題文:次に打ち込まれた文字列に対して適切な文章をそれぞれ返すプログラムをハッシュテーブルを用い、ドイツ言語で書きなさい。"Guten tag","Sie du Japaner?","unko"
[3] 環境 家賃三万円のそれなりの環境
[3.1] OS: VISTA
[3.2] コンパイラ名とバージョン:コンパイラとは何ですか?
[3.3] 言語:ドイツ言語
[4] 期限:私の気が向くまで
[5] その他の制限:門限が7時です
0230デフォルトの名無しさん
2008/06/21(土) 18:20:170231デフォルトの名無しさん
2008/06/21(土) 18:20:430232デフォルトの名無しさん
2008/06/21(土) 18:21:060233デフォルトの名無しさん
2008/06/21(土) 18:21:370234デフォルトの名無しさん
2008/06/21(土) 18:24:160235デフォルトの名無しさん
2008/06/21(土) 18:53:55ありがとうございます
0236デフォルトの名無しさん
2008/06/21(土) 20:24:51ninzuu = i;
for(i=0;i<ninzuu-1;i++){
for(j=i+1;j<ninzuu;j++){
if(hito[i].score < hito[j].score){
ts = hito[i];
hito[i] = hito[j];
hito[j] = ts;
}
}
}
for(i=0;i<ninzuu;i++)
0237デフォルトの名無しさん
2008/06/21(土) 20:45:40どうも素晴らしいソースありがとうございました。
余裕があればでいいので、削除と編集も作っていただきたいです。
0238デフォルトの名無しさん
2008/06/21(土) 20:48:490239デフォルトの名無しさん
2008/06/21(土) 21:08:430240デフォルトの名無しさん
2008/06/21(土) 21:11:21http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7003.c
0241デフォルトの名無しさん
2008/06/21(土) 21:14:20ありがとうございました。ちなみにここって、自分の作ったソースのどこが悪いかって見てもらえるんですか?
0242デフォルトの名無しさん
2008/06/21(土) 21:16:42さすがにそりゃスレ違い、となる。質問なら↓で
C言語なら俺に聞け(入門篇) Part 30
http://pc11.2ch.net/test/read.cgi/tech/1213367888/
提出期限を完全に間違えてました。。
6/23
夕方6です。
いずれにせよ焦ってます;;
どなたか目を通してくれるとありがたいです;;
0244デフォルトの名無しさん
2008/06/21(土) 22:05:080245デフォルトの名無しさん
2008/06/21(土) 22:15:280246デフォルトの名無しさん
2008/06/21(土) 22:18:33http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7004.c
0247デフォルトの名無しさん
2008/06/21(土) 22:25:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7005.c
0248デフォルトの名無しさん
2008/06/21(土) 22:31:49http://yutori.2ch.net/test/read.cgi/news4vip/1214054829/
vipを助けてくれ!!!!!!!!
負けそうだ!!!!!
シベリア超特急に負けそうなんだ!!!!!!!!!!!
俺 達 の v i p が 無 く な る ! ! ! ! ! ! ! !
ニュー速の本部を荒らして俺らに投票してくれ!!!!!!!!
P C ケ ー タ イ 友 達 家 族 を フ ル 動 員 し て
コードをとってきてくれ!!!!!!!!!!!!!
ここで勝ったら二回戦もよろしく!!!!!!!!!!!
つまんねー話してないで協力するんだ!!!!!!!!!!!!!!!!
2chが変わってしまうぞ!!!!!!!!!!!!!!
助けてくれ!!!!!!!!!!!
まだまだ俺たちはおわれねぇ!!!!!!!!!!!!!!!!!!
0249デフォルトの名無しさん
2008/06/21(土) 22:43:04>>243
問題文が悪い、そんなんじゃ誰も手を付けない
結局、逆ポーランド記法と通常の計算を数値入力でやれって事か?
やって欲しいなら、具体例をだしなよ
すいません。
問題文をそのまま載せたんですが
要点をまとめるべきでした。
つまり>>249さんの通りです。
例としては
入力数式
25.18,#,+,8,*,6,7,10,+,*,-,8,/
に対する答えは -5
となっています。
0251デフォルトの名無しさん
2008/06/22(日) 01:39:03余計わからん
25.18,#,+,8,*,6,7,10,+,*,-,8,/
が-5になる流れを書いてくれ
0252デフォルトの名無しさん
2008/06/22(日) 02:15:19ヒントに3つの数字を3桁の数値に変換する関数とかあるのに、いきなり 25.18 とか…
本人が問題を理解してないか、問題文以外に課題の仕様があるのを正確に伝えて無いかがオチかと
0253デフォルトの名無しさん
2008/06/22(日) 02:17:19それならば-5になる
0254デフォルトの名無しさん
2008/06/22(日) 02:51:54だとしても逆ポーランド記法なら-6ではあるまいか…
0255デフォルトの名無しさん
2008/06/22(日) 02:53:280256デフォルトの名無しさん
2008/06/22(日) 03:23:520257デフォルトの名無しさん
2008/06/22(日) 05:54:210258デフォルトの名無しさん
2008/06/22(日) 06:36:1825
25,18
25,18,#
25,-18
25,-18,+
7
7,8,*
56
56,6
56,6,7
56,6,7,10
56,6,7,10,+
56,6,17
56,6,17,*
56,102
56,102,-
-46,8
-46,8,/
-5.75
こんな感じになった
0259デフォルトの名無しさん
2008/06/22(日) 07:11:13http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7007.txt
0260デフォルトの名無しさん
2008/06/22(日) 11:53:48そういう発言をしてるあなたはどこにお住まいの方ですか?
あなたの出した課題が載ってたとか?
0261デフォルトの名無しさん
2008/06/22(日) 12:23:24最悪バレても単位が出ないだけだろ
もっとどうどうとしろ
0262デフォルトの名無しさん
2008/06/22(日) 13:39:552.問題文:http://www-2ch.net:8080/up/download/1214109450610634.GbvlBe
3.環境:C言語がコンパイル環境できるならどれでも可
4.期限: できるだけ早く
5.その他
他の分岐演算テーブルは解けたんですが、
最後がどうしても解けません・・・・数学に自信のある方お願いしますorz
※例題とかそういった説明補足に関してはreadme.txtを参照ください。
0263デフォルトの名無しさん
2008/06/22(日) 14:09:39お願いした通り作って下さってありがとうございました。
質問なんですが16行目のtypedefってなんの処理なんですか?
何せまだC初めて3ヶ月しか経ってなくて…。
0264デフォルトの名無しさん
2008/06/22(日) 14:15:46ttp://www.google.co.jp/search?complete=1&hl=ja&q=c+typedef&lr=
0265デフォルトの名無しさん
2008/06/22(日) 15:02:090266デフォルトの名無しさん
2008/06/22(日) 15:07:560267179
2008/06/22(日) 15:09:28これに時間計算量の評価回数と実行時間を
どういうやって出力させればいいか全く解りません。
どなたか・・・よろしくお願いします・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7008.c
0268デフォルトの名無しさん
2008/06/22(日) 15:43:38ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7009.txt
C99仕様
0269262
2008/06/22(日) 15:47:19{
int i; /* ループカウンタ */
unsigned char chTable[256]; /* テーブル領域 */
/* テーブル初期化 */
for(i = 0; i < 256; i++)
{
/* このような式でdata.binのデータ内容と同じデータを生成させる */
chTable[i] = (unsigned char)((i % 2) ? 255 - (i + 1) / 2 : (i + 1) / 2);
}
return 0;
}
>>262の課題の算出方法に関する縛りですが、
上記ループ内の様な式で算出する事が条件です。
0270デフォルトの名無しさん
2008/06/22(日) 16:15:42それは、読めば分かるから。余計な茶々はいれないで。
縛りについて、ほかには? S
0272デフォルトの名無しさん
2008/06/22(日) 17:05:425x5, 6x6のそれぞれの解の個数わかる?
あってるのかどうかわからないから
アップできない。
ちなみにまだ課題1だけしか・・・
0273デフォルトの名無しさん
2008/06/22(日) 17:17:40for(i=0; i<256; i++) chTable[i] = (int)(16-i/8.0) * (int)(16-i/8.0);
0274272
2008/06/22(日) 17:23:34C++で作ってしまった
もういいや
0275デフォルトの名無しさん
2008/06/22(日) 17:25:37見た瞬間、間違ってるかと…
最初の値は0じゃね
0276デフォルトの名無しさん
2008/06/22(日) 17:26:520277デフォルトの名無しさん
2008/06/22(日) 17:29:18おまいさん、バイナリエディタすら持ってないのか…?
0278デフォルトの名無しさん
2008/06/22(日) 17:31:570279デフォルトの名無しさん
2008/06/22(日) 17:33:020280デフォルトの名無しさん
2008/06/22(日) 17:36:11これが256になるのか?
0281デフォルトの名無しさん
2008/06/22(日) 17:39:45どうみても0
0282デフォルトの名無しさん
2008/06/22(日) 17:40:220283デフォルトの名無しさん
2008/06/22(日) 17:40:310284270
2008/06/22(日) 17:41:55unsigned char k;
for(i = 0; i < 256; i++)
{
if(i==0) {j=33; k=0;}
if(i==128) {j=253; k=1;}
/* このような式でdata.binのデータ内容と同じデータを生成させる */
if(i<128){
chTable[i]=k;
if((i&7)==0) {j-=2; k-=j;}
}
else{
if((i&7)==0) {j+=2; k+=j;}
chTable[i]=k;
}
if((i&15)==0) printf("\n%03X ", i);
printf("%02X ", chTable[i]);
}
for(i = 0; i < 256; i++)
{
(i==0) ? j=33, k=0 : 0;
(i==128) ? j=253, k=1 : 0;
/* このような式でdata.binのデータ内容と同じデータを生成させる */
(i<128) ? ( chTable[i]=k, ((i&7)==0 ? j-=2, k-=j : 0) ) :
( ((i&7)==0 ? j+=2, k+=j : 0), chTable[i]=k ) ;
(i&15)==0 ? printf("\n%03X ", i) : 0;
printf("%02X ", chTable[i]);
}
0285デフォルトの名無しさん
2008/06/22(日) 17:45:060286デフォルトの名無しさん
2008/06/22(日) 17:49:05こうだろw
片落ち代入じゃ、同じデータを作っても式があってないって事だろ?
違うのか…
0287デフォルトの名無しさん
2008/06/22(日) 17:49:120288デフォルトの名無しさん
2008/06/22(日) 17:49:23[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7010.txt
単振り子の方程式の近似解をホイン法によって求めるプログラム
ルンゲ・クッタ法のプログラムを資料として、オイラー法のプログラムは完成し、出力の値も問題ありませんでした。
次にホイン法のプログラムを作り、実行したところ、
本来ならば(π/4)cos(x)のグラフと近くなるはずの解の値が途中から一次方程式のようになってしまいます
[3] 環境
[3.1] OS: LinuxまたはWindows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6月23日まで
[5] その他の制限:
できれば自分の作ったプログラムの間違っている箇所を修正して作ってくださると助かります。
今回の課題はプログラムリストの提出は求められていないので、多少動作が分かりにくくても問題はないです。
最後に解の値を出力しているのは、そのデータをgnuplotでプロットするからです。
0289デフォルトの名無しさん
2008/06/22(日) 17:54:180290デフォルトの名無しさん
2008/06/22(日) 17:56:020291デフォルトの名無しさん
2008/06/22(日) 17:59:310292デフォルトの名無しさん
2008/06/22(日) 18:00:170293デフォルトの名無しさん
2008/06/22(日) 18:03:470294デフォルトの名無しさん
2008/06/22(日) 18:04:100/8.0ってプログラム落ちないか?
0295デフォルトの名無しさん
2008/06/22(日) 18:05:430296デフォルトの名無しさん
2008/06/22(日) 18:07:110297デフォルトの名無しさん
2008/06/22(日) 18:09:21合ってるよスゲーよ
0298デフォルトの名無しさん
2008/06/22(日) 18:10:090299デフォルトの名無しさん
2008/06/22(日) 18:12:21void main(){0/8.0;}
0300デフォルトの名無しさん
2008/06/22(日) 18:37:08やっぱり総当り厳しいのかな・・・
0301デフォルトの名無しさん
2008/06/22(日) 18:37:10[2] 問題文(含コード&リンク):
平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
nは10万以上のため、全ての重みをメモリ上で保持してソートするのは現実的でない。現実の計算機上で高速に計算しソートする方法を示せ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: g++
[3.3] 言語: C++
[4] 期限: (無期限]
[5] その他の制限: なし
前スレで回答がもらえなかったので再掲載。
0302デフォルトの名無しさん
2008/06/22(日) 18:47:54h*の位置がおかしくねーか?
h*(fk1[i] + fk2[i])/2だと思うんだが。
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7011.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C
[4] 期限: 6月22日 13時まで
[5] その他の制限:
本文内にある三箇所の()の中にのみ手を加えて下さい
0304デフォルトの名無しさん
2008/06/22(日) 18:57:14nが10万程度の場合ならば、主記憶が128GBの計算機を用いれば簡単。
S社の製品の場合、最も廉価なものであれば200万円程度で購入できる。
0305デフォルトの名無しさん
2008/06/22(日) 19:06:47データをディスクに書き込んで、ディスク上でマージソート
再帰が深くなって断片がメモリに載るサイズになったら、好きなアルゴリズムを使ってメモリ上でソート
0306デフォルトの名無しさん
2008/06/22(日) 19:15:08ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7012.txt
0307デフォルトの名無しさん
2008/06/22(日) 19:17:03>>301
> 平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
# 平面上にn個の点について 〜中略〜 昇順にソートする。
なの?
それとも辺をソートするの?><;;
0308デフォルトの名無しさん
2008/06/22(日) 19:18:33日本語でおk
ありがとうございました
0310デフォルトの名無しさん
2008/06/22(日) 19:36:27[2] 問題文(含コード&リンク)
10進数の正の整数を入力し、2進数に変換して表示せよ
可能ならば、正の実数も変換できるものを作成せよ
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:明日まで
よろしくお願いします
0311262
2008/06/22(日) 19:43:08上記の解答を元に自分なりに色々思考を
凝らしていきたいと思います
本当にありがとうございました
0312デフォルトの名無しさん
2008/06/22(日) 19:44:01#include <stdio.h>
int main(void)
{
unsigned int n, i = 1 << sizeof(unsigned int) * 8 - 1;
scanf("%d", &n);
while((i&n)==0) i>>=1;
while(i) {
putchar(n & i ? '1' : '0');
i >>= 1;
}
return 0;
}
0314デフォルトの名無しさん
2008/06/22(日) 19:48:07>>277
>>280
0315デフォルトの名無しさん
2008/06/22(日) 19:55:11func(t, x, f) /*f(t, x)を定義*/ double t, x[], f[];{
f[0] = x[1]; f[1] = - (G/L0)*sin(x[0]);
}
を使わず
func(t,x,f,h)double t,x[],f[],h;{
f[0]=x[1]*h;f[1]=-(G/L0)*sin(x[0])*h;
}
として
for ( n = 0; n < n_step; n++ ) {
t[n+1] = T_s + (n+1)*h;
func(t[n], x[n], dfk1,h); /*dfk1=h* f(t[n], x[n])*/
for( i = 0;i < N_var; i++){
y[i] = x[n][i] + dfk1[i]; /*y[i]:中間変数Xn*/
}
func(t[n+1], y, dfk2,h); /*dfk2=h*f(t[n+1], y)=h*f(t[n+1], Xn)*/
for( i = 0; i < N_var; i++){
x[n+1][i] = x[n][i] + (dfk1[i] +dfk2[i])/2;
/*x[n+1] = x[n] + (fk1 + fk2)/2*/
}
}
0316デフォルトの名無しさん
2008/06/22(日) 20:09:00#include <stdio.h>
void f1(int x) {
int y=x/2;
if(y!=0) f1(y);
printf("%d",x%2);
}
void f2(double x) {
int y;
double z=x*2.0;
y=(int)z;
z=z-(double)y;
printf("%d",y);
if(z!=0.0) f2(z);
}
int main(void) {
int i;
double r;
scanf("%lf",&r);
i=(int)r;
r=r-(double)i;
f1(i); putchar('.'); f2(r);
return 0;
}
0317デフォルトの名無しさん
2008/06/22(日) 20:14:52微妙ですがありがとうございます
0318デフォルトの名無しさん
2008/06/22(日) 20:15:550319デフォルトの名無しさん
2008/06/22(日) 20:19:350320デフォルトの名無しさん
2008/06/22(日) 20:21:17>>247 に不要なゴミコードが残ってた・・・気づいたら消しておいて。
> printf("p : %p \n",p);
データ追加、コピーの辺り。あと、一番最後に free(list); を忘れてた。
>>264 に説明があるけど、コードの中では
struct p_dataの構造をDATA型として、struct node_listの構造をLIST型
として定義し、変数の宣言のときに、わざわざ struct p_data と書かずに
DATA以下適当に変数を宣言できるようになってる。
0321デフォルトの名無しさん
2008/06/22(日) 20:21:32微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
0322デフォルトの名無しさん
2008/06/22(日) 20:23:08> 俺のプレイ
> もうこれ以上は減らせないw
そうかそうか、何回も何回もやりまくってやりまくってぇ〜
0323デフォルトの名無しさん
2008/06/22(日) 20:24:12ありがとうございます
>>演算子(?)は初見なんでぐぐってきます
0324hoge ◆ZdPTx91qxk
2008/06/22(日) 20:36:18ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7013.txt
まぁもう回答でてるっぽいけどな
0325デフォルトの名無しさん
2008/06/22(日) 20:39:45微妙ですが
0326デフォルトの名無しさん
2008/06/22(日) 20:41:11が、今後のスタンダードかなるほど
0327デフォルトの名無しさん
2008/06/22(日) 20:41:390328デフォルトの名無しさん
2008/06/22(日) 20:49:02最近の人間はプログラムの意識が高いんだな…
構造体習って無いから使うな、簡単なコードで、人間と同等以上のAIプログラムを作れって…
と、作った本人が言って見るテスト
キミの周りの学生が、余裕でその課題をこなしてるなら
キミは今居る場所に居つづける事を考え直した方が良いかもよw
0329デフォルトの名無しさん
2008/06/22(日) 20:51:480330デフォルトの名無しさん
2008/06/22(日) 20:57:170331デフォルトの名無しさん
2008/06/22(日) 21:05:18[2] 問題文(含コード&リンク)--------------------
int型の数値データの内部表現を2進数で表示する。
実行に当たっては次のデータを入力して確認せよ。
[1]0
[2]1
[3]-1
[4]32767
[5]-32768
実行例↓
入力データ:-1
内部表現:1111111111111111
入力データ:32767
内部表現:0111111111111111
-----------------------------------------------
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:25日まで
[5] その他の制限: (まだ大してC言語は習ってないので簡単な関数でお願いします)
0332デフォルトの名無しさん
2008/06/22(日) 21:11:35なんか、前スレにマイナスにも対応しているものがあった・・・
ちと探してくる
0333デフォルトの名無しさん
2008/06/22(日) 21:14:37わざわざすいません<(_ _*)>
0334デフォルトの名無しさん
2008/06/22(日) 21:20:35int型は16bitでいいの?
0335デフォルトの名無しさん
2008/06/22(日) 21:25:17http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7014.c
0336デフォルトの名無しさん
2008/06/22(日) 21:29:04#include <stdlib.h>
#include <stdio.h>
void main(int argc,char* argv[])
{
int _in = atoi(argv[1]);
int i;
for(i = 0;i < 32;i++)
{
printf("%d",(_in & (0x80000000>>i) )?1:0);
}
printf("\n");
}
数値は引数で入力、エラーチェックはしてない
0337デフォルトの名無しさん
2008/06/22(日) 21:33:54#include<stdio.h>
int main( void ){
int i,n;
printf("入力データ:");
scanf("%d",&n);
printf(" 内部表現:");
for(i=0;i<16;++i){
if(n & 1<<15-i) printf("1");
else printf("0");
}
return 0;
}
0338デフォルトの名無しさん
2008/06/22(日) 21:34:000339デフォルトの名無しさん
2008/06/22(日) 21:40:100340デフォルトの名無しさん
2008/06/22(日) 21:42:20VS2005でWinが対象だから32bitじゃない?
0341デフォルトの名無しさん
2008/06/22(日) 21:42:510342デフォルトの名無しさん
2008/06/22(日) 21:45:06もう少し待ってたもう
0343デフォルトの名無しさん
2008/06/22(日) 21:51:37実行例が16桁だから…
0344デフォルトの名無しさん
2008/06/22(日) 21:52:05int bit=sizeof(int)*8;
//nをキーボードから入力
for(i=bit-1; i>=0; i--)
printf("%d", n>>i&1);
0345デフォルトの名無しさん
2008/06/22(日) 21:52:46それは確かに気になった…。
0346331
2008/06/22(日) 22:02:29多分16ビットでOKだと思います。
0347デフォルトの名無しさん
2008/06/22(日) 22:03:370348デフォルトの名無しさん
2008/06/22(日) 22:07:13でも1byteが9bitの環境もあるって聞いたことあるな
0349デフォルトの名無しさん
2008/06/22(日) 22:11:32あくまで「int型」の内部表現を出力するんであれば32bitが正解だろうなぁ
0350デフォルトの名無しさん
2008/06/22(日) 22:12:10>>179
C++だけど参考にでもしてください。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7016.cpp
0351350
2008/06/22(日) 22:14:090352350
2008/06/22(日) 22:15:29さばら
0353デフォルトの名無しさん
2008/06/22(日) 22:15:42WORD
BYTE表現でいいだろ
0354デフォルトの名無しさん
2008/06/22(日) 22:22:32#include<iostream>
#include<algorithm>
#include<cmath>
struct point_t{
double x, y;
};
double calc_distance(const point_t &a, const point_t &b){
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main(void){
const int n=1000; // これが小さいときだけ
double *distance=new double[n*(n-1)];
point_t *point=new point_t[n];
long i, j, x=0;
for(i=0;i<n;i++){
point[i].x=rand();
point[i].y=rand();
}
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
distance[x++]=calc_distance(point[i], point[j]);
}
}
std::sort(&distance[0], &distance[x]);
for(i=0;i<x;i++){
std::cout << distance[i] << std::endl;
}
return 0;
}
0355デフォルトの名無しさん
2008/06/22(日) 22:22:44実行して無いからわからんが
for(i=bit-4; i>=0; i-=4)
printf("%c", "0123456789abcdef"[n>>i&15]);
0356デフォルトの名無しさん
2008/06/22(日) 22:25:32http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7017.c
まっ、麻呂の、麻呂のクソースを見てたもうぅ〜〜
10進数の数値を2〜16進数まで変換できるでおじゃる
0357デフォルトの名無しさん
2008/06/22(日) 22:28:53ちょ、俺のコンパイラ(BCC5..9.3)だと
direction++;で
エラー E2277 chess1.cpp 362: 左辺値が必要
(関数 CAnalyzeTourOfKnight::AnalyzeTourOfKnight(ANALYZETYPE) )
0358デフォルトの名無しさん
2008/06/22(日) 22:29:230359デフォルトの名無しさん
2008/06/22(日) 22:33:050360デフォルトの名無しさん
2008/06/22(日) 22:33:110361デフォルトの名無しさん
2008/06/22(日) 22:37:44>>360
いや
俺もbccなんだけど
そこで落ちる理由はわからん・・・??
俺の環境じゃ落ちないぞ?
0362デフォルトの名無しさん
2008/06/22(日) 22:39:200363デフォルトの名無しさん
2008/06/22(日) 22:42:57Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
TourOfKnight.cpp:
警告 W8004 TourOfKnight.cpp 134: 'tempY' に代入した値は使われていない(関数 CAnal
yzeTourOfKnight::MoveKnightPosition(int &,int &,DIRECTION) )
警告 W8004 TourOfKnight.cpp 134: 'tempX' に代入した値は使われていない(関数 CAnal
yzeTourOfKnight::MoveKnightPosition(int &,int &,DIRECTION) )
警告 W8004 TourOfKnight.cpp 309: 'y' に代入した値は使われていない(関数 CAnalyzeT
ourOfKnight::KinghtRoundBoard(int,int) )
警告 W8004 TourOfKnight.cpp 453: 'comparisonNum' に代入した値は使われていない(関
数 main() )
警告 W8004 TourOfKnight.cpp 452: 'answerNum' に代入した値は使われていない(関数 m
ain() )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
これだけ
0364デフォルトの名無しさん
2008/06/22(日) 22:44:11BCC(今はCodeGearCCだからCCCか)のバージョンは同じ?
5.9.3ってBCB2007の付属品だよ。
フリーで配布されているのは5.5.1。
0365デフォルトの名無しさん
2008/06/22(日) 22:44:395.5.1
0366デフォルトの名無しさん
2008/06/22(日) 22:46:080367デフォルトの名無しさん
2008/06/22(日) 22:46:42c:\documents and settings\********\my documents\visual studio 2008
\projects\learn1\chess1\chess1.cpp(367) : error C2676: 二項演算子 '++' :
'CAnalyzeTourOfKnight::DIRECTION' は、この演算子または定義済の演算子に
適切な型への変換の定義を行いません。(新しい動作; ヘルプを参照)
0368デフォルトの名無しさん
2008/06/22(日) 22:51:13>エラー E2277 chess1.cpp 362:
ファイル名を chess1.cにするか
direction = direction + 1;
にしたらいいんでない?
0369デフォルトの名無しさん
2008/06/22(日) 22:51:49そのままではできないが、演算子多重定義すればできる。
0370デフォルトの名無しさん
2008/06/22(日) 22:52:59ああそうか。てっきり>>350で
>C++だけど参考にでもしてください。
と書いてあったからcppしてたわ。
<time>も通らないので<ctime>にしてたしおかしいわと
思ってたんだ
0371デフォルトの名無しさん
2008/06/22(日) 22:53:35でどうだ!!?
ということでごめんなさい。
0372デフォルトの名無しさん
2008/06/22(日) 22:55:04いやcppだけどね。
timeは通ってるけど
たしかにctimeだわな('A`)
スマソ
0374デフォルトの名無しさん
2008/06/22(日) 22:56:27コンパイラと弾くコンパイラがあるわけだ
規格書ではどうなってるのかな
0375デフォルトの名無しさん
2008/06/22(日) 22:57:090376350
2008/06/22(日) 23:01:35enum{
A=1,
B=10,
C=100,
D=1000
};
とかがあることもあるわけだから、やっぱり++は許されないのかな
0377179
2008/06/22(日) 23:23:16返事遅れてごめんなさい・・・
自分C++全く知らないのですが、やっていただいたことに関しては
本当に感謝してます!
聞いてばかりで申し訳ないのですが、
このソースをCに書き換えるにはどのようにすればよいのでしょうか?
ちなみに調べてみたんですが5x5は解の個数が304個みたいです。
0378デフォルトの名無しさん
2008/06/23(月) 00:21:320380デフォルトの名無しさん
2008/06/23(月) 00:26:520381デフォルトの名無しさん
2008/06/23(月) 00:37:11[2] 問題文(含コード&リンク):
5 つの文字列を格納できる二次元配列 str を定義し,キーボードから5つの文字列を入力する.
その後,配列 str と文字列数 num (この例では,5)を引数として受け取り,
最長の文字列が格納されている配列の添え字(行の要素番号)
を返す関数 int str_maxlen(const char str[][100], int num)を定義し,動作を確認するプログラムを作成せよ.
但し,同じ長さの文字列が存在する場合は,最初に現れる文字列を優先すること.
また,文字列長はライブラリ関数は利用せずに求めること。
main関数内で,str_maxlen 関数の返却値を元に文字列を出力することで,動作確認すること.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限:2008年6月24日
[5] その他の制限: 習った範囲は文字列まで。その他の制限は問題文参照
自分で解いていたらこの問題だけ上手くいかないのでお願いします
0383350
2008/06/23(月) 00:38:42書き換えてみた。
static変数使いまくりでひどいけど
ちなみに100行目に入れる値を変えればいろいろ変化します。
�Bには非対応ですね。
自分で盤を初期化すれば多分できるのかな・・・
0384350
2008/06/23(月) 00:39:13ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7018.c
大事なもん貼り忘れた
0385デフォルトの名無しさん
2008/06/23(月) 00:55:26#include <stdio.h>
int str_maxlen(char str[][100], int num) {
int i, j, max = 0, max_index = 0;
for(i=0; i<num; i++) {
for(j=0; str[i][j]; j++);
if(max < j) max = j, max_index = i;
}
return max_index;
}
int main(void)
{
char str[5][100];
int i;
for(i=0; i<5; i++) scanf("%s", str[i]);
printf("最長の文字列は%s", str[str_maxlen(str, 5)]);
return 0;
}
0386デフォルトの名無しさん
2008/06/23(月) 00:56:09#include<stdio.h>
str_maxlen(const char str[][100], int num);
int main( void )
{
char str[ 5 ][ 100 ];
int i = 0;
int length = 0;
for( i = 0; i < 5; i++ ){
gets( str[ i ] );
}
length = str_maxlen( str, i );
printf( "%d", length);
return( 0 );
}
int str_maxlen(const char str[][100], int num)
{
int maxlen=0;
int i = 0, k = 0;
for( i = 0; i < num; i++ ){
for( k = 0; str[ i ][ k ] != '\0'; k++ ){}
if( k > maxlen ){
maxlen = k;
}
}
return( maxlen );
}
0387デフォルトの名無しさん
2008/06/23(月) 00:57:380388386
2008/06/23(月) 00:59:01これやってないわ
スマソ
0389デフォルトの名無しさん
2008/06/23(月) 01:00:510390デフォルトの名無しさん
2008/06/23(月) 01:02:19まぁ結局は添え字だが、
返すべきはkじゃなくてiだわな
0391デフォルトの名無しさん
2008/06/23(月) 01:05:41何を言ってるんだ?
0393デフォルトの名無しさん
2008/06/23(月) 01:14:32// direction++;
direction = static_cast<DIRECTION>(direction+1);
/* switch(direction){
case NOTYET:direction = START; break;
case START: direction = RU; break;
case RU: direction = RD; break;
case RD: direction = DR; break;
case DR: direction = DL; break;
case DL: direction = LD; break;
case LD: direction = LU; break;
case LU: direction = UL; break;
case UL: direction = UR; break;
case UR: direction = END; break;
case END: direction = NOTYET; break;
}
*/
0394デフォルトの名無しさん
2008/06/23(月) 01:17:27解析中...
正しく解析できました。
1 30 27 18 3 10
26 17 2 11 28 19
31 36 29 20 9 4
16 25 8 35 12 21
7 32 23 14 5 34
24 15 6 33 22 13
評価回数は59079349回です。
要した時間は0.028秒です。
0395393
2008/06/23(月) 01:21:25#define SIZE 5
です。遅れました Express 2005 + SDK
0396デフォルトの名無しさん
2008/06/23(月) 01:24:45「組み合わせ」を求める数学の公式にコンビネーションがあります。このコンビネーションのプログラミングを教えてください!
1.nとrをscanf()で読み、nCrの値を計算して表示させます。
条件として、nとrの値はマイナスでなく、またゼロでなく、さらにここではn<=10であることを確認させて、正しい数値を入力させる。もし誤った数値を入力したら「入力ミスです」と表示させる。
2.0!=1も扱えるようにすることを忘れない。
0397デフォルトの名無しさん
2008/06/23(月) 01:25:06最大20個までの実数値をscanf()で、配列に読み、呼んだデータの、平均値、分散、最大値、最小値を計算して表示するプログラムを教えてください!
条件として、データは-999.0から999.0の範囲とし、入力終了の合図として1000.0より大きい値のデータを入力すると、その数値は入力されずに入力作業を終了する。
平均値と分散については、
データ数をn、各データをXi(i=1〜n)とすると、(ΣXi)/n (データの個数で割ったもの)が平均値
(Σ(Xi-(データの相加平均))^2)/nが分散であるとする。
よろしくお願いします!!
0398デフォルトの名無しさん
2008/06/23(月) 01:26:18解析中...
解析できませんでした。
評価回数は15615711回です。
要した時間は0.07秒です。
0399デフォルトの名無しさん
2008/06/23(月) 01:26:43maxlen=k;
return maxlen;
はどう見ても添え字を返してるだろ
0401デフォルトの名無しさん
2008/06/23(月) 01:32:32つ パスカルの三角形
>>397
探せば見つかるようなありきたりの課題じゃ〜・・・
0402デフォルトの名無しさん
2008/06/23(月) 01:33:46#include <stdio.h>
int main(void){
double value, sum=0, sum2=0, average, variance, maximum=0, minimum=0;
int n;
for(n=0;n<20;n++){
if(scanf("%lf", &value)!=1) break;
if(value>=1000.0) break;
sum+=value;
sum2+=value*value;
if(n==0 || maximum<value) maximum=value;
if(n==0 || minimum>value) minimum=value;
}
if(n==0) return 1;
average=sum/n;
variance=(sum2-sum*average)/n;
printf("平均値 %f\n分散 %f\n最大値 %f\n最小値 %f\n", average, variance, maximum, minimum);
return 0;
}
0403デフォルトの名無しさん
2008/06/23(月) 01:34:44アホか
添え字って言っても
>最長の文字列が格納されている配列の添え字(行の要素番号)
だぞ。
kは文字列の長さにしかなんねーよ
ありがとうございます。
それにしても…早いw
次の問題解き終わってきてみたら20分後にはもうできてるし…
0405デフォルトの名無しさん
2008/06/23(月) 01:39:37>>390
0406デフォルトの名無しさん
2008/06/23(月) 01:39:47> 2.0!=1も扱えるようにすることを忘れない。
階乗を求めるやり方か・・・
0407デフォルトの名無しさん
2008/06/23(月) 01:49:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7019.c
0408デフォルトの名無しさん
2008/06/23(月) 01:50:59最近のコンピュータははやいな!
0409デフォルトの名無しさん
2008/06/23(月) 02:01:50あ〜、入力エラーの表示は適当に追加しておいて。
あと、nもrも0のときでも考慮されてる。
0個の中から9個のものを選ぶという事象も1つの事柄として扱っているし
n個の中から0個のものを選ぶ、すなわち何も選ばないということも
1通りの事象として扱われているから。
0410デフォルトの名無しさん
2008/06/23(月) 02:02:27○0個の中から0個のものを選ぶという
0411デフォルトの名無しさん
2008/06/23(月) 02:04:32#include <stdio.h>
#include <math.h>
int main(void)
{
double d[20], max = -1000.0, min = 1000.0, ave = 0, var = 0;
int i, n;
for(i=0; i<20; i++) {
scanf("%lf", d + i);
if(fabs(d[i]) > 999.0) break;
if(max < d[i]) max = d[i];
if(min > d[i]) min = d[i];
ave += d[i];
var += d[i] * d[i];
}
if(!i) return 0;
ave /= i;
var = var / i - ave * ave;
printf("最大値%f\n最小値%f\n平均%f\n分散%f\n", max, min, ave, var);
return 0;
}
0412395
2008/06/23(月) 02:48:26有り難う御座います、見逃していました。
>ちなみに100行目に入れる値を変えればいろいろ変化します。
所で、よく見るとCのほう(float)キャストが無いので、経過時間が0.000秒でした。
0413デフォルトの名無しさん
2008/06/23(月) 03:04:20C2D E7200でも試してみようかのぅ
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7020.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C
[4] 期限: 6月23日 14時まで
よろしくお願いします。二問あります
0415デフォルトの名無しさん
2008/06/23(月) 10:06:26[2]テキストサウンドノベルを作成する事。
キー入力でメッセージを表示し、途中で選択肢を含める。(最大3つまで)
画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。
テキスト行数は、最低50行から最大100行までとする。
画面全消去方法は、先生に聞くこと。
#include"stdlib.h"
system("CLS");
この時に画面すべて消せる
0416デフォルトの名無しさん
2008/06/23(月) 10:11:46サウンドはどうやって鳴らすの?
0417デフォルトの名無しさん
2008/06/23(月) 10:46:040418415
2008/06/23(月) 10:59:110419デフォルトの名無しさん
2008/06/23(月) 11:04:360420デフォルトの名無しさん
2008/06/23(月) 11:11:110421デフォルトの名無しさん
2008/06/23(月) 11:21:44まってろ、今作ってる。
0422sage
2008/06/23(月) 11:42:17[2] 問題文(含コード&リンク):
5 つの数を double 型の配列 nums にキーボードから読み込んで,
それらの 3乗の和を出力するプログラムを作成せよ。
3 乗の和を計算する部分は,関数 double cubesum(double vc[], int no) とすること。
ここで,配列 vc はデータの格納された配列を,
no は入力したデータの個数を表す。
main 関数では個数の 5 は定数として扱って構わないが,
関数 cubesum では個数は引数で読み込むものとする。
つまり何個のデータにでも使える汎用性のあるものとして関数を定義する。
3 乗の和の計算は,main からその関数を呼び出して行う。
ヒント:関数の中の3乗和の計算には繰り返しの処理が必要となる。
for 文を使えば簡単に書ける。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年6月24日
[5] その他の制限:特になし
0423デフォルトの名無しさん
2008/06/23(月) 11:47:31double cubesum(double vc[], int no)
{
double sum = 0.0;
int i;
for(i=0; i<no; i++) sum += vc[i] * vc[i] * vc[i];
return sum;
}
int main(void)
{
double nums[5];
int i;
for(i=0; i<5; i++) scanf("%lf", nums + i);
printf("%f", cubesum(nums, 5));
return 0;
}
0424デフォルトの名無しさん
2008/06/23(月) 12:12:47マルチでもいいけどさ、環境と期限書こうぜ
0425415
2008/06/23(月) 12:32:18言語はC++
起源ははっきりとは言ってなかったが夏休み前だと思います。
0426デフォルトの名無しさん
2008/06/23(月) 12:40:320427350
2008/06/23(月) 12:43:59動作に現れる部分を修正するのは大いに結構だが
現れない部分の修正しないで提出すると痛い目見るよ
例えばラインコメント(//)とか//コンストラクタとか//デストラクタとか
アルゴリズムだとかstaticばかりなのかとか
0428デフォルトの名無しさん
2008/06/23(月) 13:00:16他の人に任せた。
0429デフォルトの名無しさん
2008/06/23(月) 13:00:430430425
2008/06/23(月) 13:26:520431デフォルトの名無しさん
2008/06/23(月) 13:29:510432デフォルトの名無しさん
2008/06/23(月) 14:03:54#include <stdio.h>
#include <stdlib.h>
int main( int argc , char *argv[] )
{ unsigned short int ipi[256][32];
unsigned short int ipo[256][32];
FILE *fpi,*fpo;
int i,j;
if((fpi=fopen( "logo.gray" ,"rb")) == NULL) {
printf("file open error\n");
exit(-1); }
fread(ipi[0],sizeof(unsigned short int),256*32,fpi);
fclose(fpi);
for (j=0 ;j <256 ; j++){
for (i=0 ;i <32 ; i++){
if(127>ipi[j][i]){
ipo[j][i]=0; }
else{
ipo[j][i]=255; }
}
}
if((fpo=fopen( argv[2] ,"wb")) == NULL) {
printf("file open error\n");
exit(-1); }
fwrite(ipo[0],sizeof(unsigned short int),256*32,fpo);
fclose(fpo);
logo-bin.gray の境界点を抽出した画像を作成するプログラムを作成せよ。
0433432
2008/06/23(月) 14:07:01}最後にこれを忘れてました。分かりにくくてすみませんが問題はこれです。
logo-bin.gray の境界点を抽出した画像を作成するプログラムを作成せよ。
0435デフォルトの名無しさん
2008/06/23(月) 15:02:300436デフォルトの名無しさん
2008/06/23(月) 15:11:15C
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7023.txt
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
Microsoft Visual Studio 2008
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明日13:00まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
お願いします。
0437デフォルトの名無しさん
2008/06/23(月) 15:14:09バッチファイルで書いた方が早い気がするw
0438デフォルトの名無しさん
2008/06/23(月) 15:23:43#define N 7
#include <stdio.h>
struct{int linkable[3];char *prompt;
}scene[N]={
{1,3,5," [彼女]ねぇ挿れて"},
{0,2,4,"[貴方]麻呂のクソースくらえ〜"},
{1,3,5,"[彼女]もっと優しくぅ〜"},
{0,2,4,"[貴方]う〜きつい"},
{1,3,5,"[彼女]う〜固い"},
{2,4,6,"[貴方]出、出る〜"},
{7,7,7,"[彼女]駄目〜出しちゃ.汚れちゃう"},
}
int main(void){
int i=0,j;
wihle( i<N)[
printf("%s¥n",scene[i].prompt);
do{
printf("Select which?[1,2,3]?");scanf( "%d¥n",&j);
}while((j<1)&&(j>3));
i=scene[i].linkable[j];
}
return 0;
}
0439デフォルトの名無しさん
2008/06/23(月) 15:48:45くそーすですが
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7024.txt
0440デフォルトの名無しさん
2008/06/23(月) 15:53:19すまん、関数の名前間違ってたので修正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7025.txt
0441デフォルトの名無しさん
2008/06/23(月) 15:54:10微妙ですが我慢しておきます。
0442デフォルトの名無しさん
2008/06/23(月) 16:01:44の優しさに世界が泣いた
0443デフォルトの名無しさん
2008/06/23(月) 16:11:090444デフォルトの名無しさん
2008/06/23(月) 16:13:59更に言うとこれも含めて自演の可能性もあるなww
0445デフォルトの名無しさん
2008/06/23(月) 16:15:39プログラムをC言語で作成せよ。 また、1から999までの和はいくらか?
お願いします。
0446445
2008/06/23(月) 16:21:31あともうひとつ
1以上の正の整数の値をキーボードから入力し、1からNまでの2乗の和を求める
プログラムをC言語で作成せよ。 また、1から100までの和はいくらか?
1の2乗+2の2乗+・・・+Nの2乗=Σiの2乗
これもお願いします。 問題分かりにくくてごめんなさい。
0447デフォルトの名無しさん
2008/06/23(月) 16:22:55#include <stdio.h>
int main(void)
{
int N;
printf("入力");
scanf("%d", &N);
printf("1から%dの和は%d\n", N, (1+N)*N/2);
return 0;
}
0448445
2008/06/23(月) 16:23:180449445
2008/06/23(月) 16:25:44ありがとうございます。
0450デフォルトの名無しさん
2008/06/23(月) 16:29:47小学校と大学院が校舎共有してるのか?
0451デフォルトの名無しさん
2008/06/23(月) 16:32:35をC言語で作成せよ。
#include<stdio.h>
#include<math.h>
main()
{
double pi,r1,r2,h,V;
途中までやりました。お願いです。
0453445
2008/06/23(月) 16:36:061年の授業と3年の授業ですw
432と446の問題を誰かお願いします。
期限は今週末です。
0454デフォルトの名無しさん
2008/06/23(月) 16:38:59プログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7023.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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ポインタ習ったばっかりです。
おねがいします。
0455デフォルトの名無しさん
2008/06/23(月) 16:40:02"logo.gray"ってファイルは?
無くとも、もっと説明しなきゃ
”境界点を抽出”って意味は?
"logo.gray"が無いと説明出来ないならUPしなきゃ
0456454
2008/06/23(月) 16:41:08ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7026.txt
0457デフォルトの名無しさん
2008/06/23(月) 16:43:33y=3エックス2乗+2エックス-6
これ簡単だからやってみそ!
0458デフォルトの名無しさん
2008/06/23(月) 16:48:130460432
2008/06/23(月) 16:54:17境界点を抽出の意味は僕もよく分からないです。ほんとにちんぷんかんぷんです。
単元は2値画像処理というところです。
0461デフォルトの名無しさん
2008/06/23(月) 16:56:00輪郭抽出って事?
2x2 sobel フィルタとか使うの?
0462デフォルトの名無しさん
2008/06/23(月) 16:56:01そんなこと言わないでさー やってよーん
0463デフォルトの名無しさん
2008/06/23(月) 16:57:14意味不明なりよ
0464デフォルトの名無しさん
2008/06/23(月) 16:58:54それじゃ、誰も出来ないだろw
もっと説明がいるぞ
"logo.gray"ってのは存在して、それの境界点抽出なのか
それとも任意の2値画像なのか
友達でも誰でも良いから聞いてきなw
0465432
2008/06/23(月) 16:59:552x2 sobel フィルタは使わないと思います。
とにかくそういうc言語のプログラムを作成しろと言われて。
432を少し改良すればできると教授に言われました。
0466432
2008/06/23(月) 17:01:19"logo.gray"は存在して、それの境界点抽出です!
0467デフォルトの名無しさん
2008/06/23(月) 17:06:34y = 3*x*x+2*x-6;
0468デフォルトの名無しさん
2008/06/23(月) 17:16:00なんだ?意図的にとぼけてるのか?
それなら"logo.gray"をUPしなきゃ、誰も出来ないだろ
って言ってるんだけど…
0469デフォルトの名無しさん
2008/06/23(月) 17:18:4116.bitグレイスケール画像を作ってうp!
0470デフォルトの名無しさん
2008/06/23(月) 17:21:18#include<stdio.h>
main()
{
double pi,r1,r2,h,V;
printf( "外径\n" );
scanf( "%lf", &r1 );
printf( "内径\n" );
scanf( "%lf", &r2 );
printf( "高さ\n" );
scanf( "%lf", &h );
pi = 3.14159265358979;
V = (pi * (r1 / 2.0) * (r1 / 2.0) + h) - (pi * (r2 / 2.0) * (r2 / 2.0) + h);
printf( "中空円筒の体積\n%f\n", V );
return 0;
}
0471デフォルトの名無しさん
2008/06/23(月) 17:22:57[2] 問題文(含コード&リンク):
#include<stdio.h>
int main(void){
int teika;
printf("定価を入力してからENTERを押してください。\n");
scanf("%d",&teika);
printf("1割引だと%4d円\n",(int)(teika*0.9));
printf("3割引だと%4d円\n",(int)(teika*0.7));
printf("5割引だと%4d円\n",(int)(teika*0.5));
printf("8割日だと%4d円\n",(int)(teika*0.2));
return 0;
}
このプログラムで、1000とかキリの良い数値を入力すると、3割引だけ1円だけずれた値が帰ってきちゃいます。
これってなんでですかね?
[3] 環境
[3.1] OS:WindowsXP SP2かな?
[3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler Version 2.31
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:基礎は一通りやって、授業ではそれを応用して色々やらされてます。
が、ところどころ分からないので一人で最初から勉強し直してます。
0472デフォルトの名無しさん
2008/06/23(月) 17:25:48[2] 問題文 (1)ベクトルの内積を求めるプログラムを書け
(2)3×3の行列の掛け算を行う関数を作り、標準入力から入力した行列を
掛け算するプログラムを書け
(ヒント 2重配列が必要。 double matrix[3][3];)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6月26日まで
[5] その他の制限:
特になし
0473デフォルトの名無しさん
2008/06/23(月) 17:25:48切り捨てたいの?切り上げたいの?四捨五入したいの?
0474デフォルトの名無しさん
2008/06/23(月) 17:35:50なんでもいいです。
参考にしてるサイトのやり方に従ってそこまで作りました。
やっぱ(int)が影響してるんですかね?
と思って全部それ取って実数型にしたら直りました。
どんな原因なんでしょう…
0475デフォルトの名無しさん
2008/06/23(月) 17:42:35浮動小数点数は条件が合わない限り小数ぴったりの数値を扱えないので
内部ではその数値に近い値に丸められている
0.7 はコンピュータ内部では 0.7 より小さな値で格納されていて
0.9 と 0.2 は少し大きな値になってるんだろう
0476デフォルトの名無しさん
2008/06/23(月) 17:58:49やはりコンピュータ上の問題ですか。
プログラムの作り方を変えるとかしないと解決できないわけですね。
ありがとうございました。
0477デフォルトの名無しさん
2008/06/23(月) 18:04:56アンカー付けろ
テンプレ使え
数字は半角(まぁ全角でも困らないけどさ)
0478デフォルトの名無しさん
2008/06/23(月) 18:08:553割引だったら7倍してから10で割ってみてはどうだろう。
teika * 7 / 10
0479デフォルトの名無しさん
2008/06/23(月) 18:12:32ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7027.txt
宿題っぽくしてみた。
入力されたデーターが不正な場合は飛ぶので、それがダメなら適当に直して
0480デフォルトの名無しさん
2008/06/23(月) 18:18:201円どっちにずれてる?
割る前に2円足すか1円引けばいいんじゃね?
0481デフォルトの名無しさん
2008/06/23(月) 18:20:06定価を入力してからENTERを押してください。
1000
1割引だと 900円
2割引だと 800円
3割引だと 699円
4割引だと 599円
5割引だと 500円
6割引だと 400円
7割引だと 299円
8割引だと 200円
9割引だと 100円
0482デフォルトの名無しさん
2008/06/23(月) 18:22:46round ceil floor のいずれを使ってもピッタリの数値になるのに
キャスト(int)による型変換のときだけ1円ずれる
めんどくせー
0483デフォルトの名無しさん
2008/06/23(月) 18:36:310484デフォルトの名無しさん
2008/06/23(月) 18:46:59なるほど。
そういう風にすればいいのですね。
ありがとう。
>>480
>>481の通りです。
>>482
めんどいっすねw
でも宿題じゃなくてなんとなく答えも見えたんでおkです!
皆様ありがとう。
0485デフォルトの名無しさん
2008/06/23(月) 18:51:51いくらなんでも簡単すぎだろ。
丸投げしすぎ。
0486デフォルトの名無しさん
2008/06/23(月) 19:03:05ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7028.txt
0487446
2008/06/23(月) 19:07:34そうですか。反省します。
0488451
2008/06/23(月) 19:09:41サンクス
0489デフォルトの名無しさん
2008/06/23(月) 19:41:33〜省略〜
BITREE_TYPE sumValue(BITREE_NODE *p){
BITREE_TYPE total = 0;
if(p->left) total += sumValue(p->left);
if(p->right) total += sumValue(p->right);
total += p->value;
return total;
}
int main(int args, char **argv){
BITREE_NODE *p;
int end=0;
if(args < 2) return 1;
p = inputBITree(argv+1, args-1, &end);
printf("合計は %d です\n", sumValue(p));
printf("左部分木の合計は %d です\n", sumValue(p->left));
printf("右部分木の合計は %d です\n", sumValue(p->right));
destroyBITree(p);
return 0;
}
0490デフォルトの名無しさん
2008/06/23(月) 19:55:16[2]�@3より大きく、入力された上限の数未満の全ての自然数かつ非素数に
ついて、3で割り切れるものは無視し、3で割った余りが1のものは加算
し、余りが2のものは減算して合計を求めよ。
�A次のように表示する
Input Upper Limit : 11 [Enter]
Answer is : 6
�B配列、平方根は使ってはならない。
[3]�@windows vista
�Agcc
�BC言語
[4]2008/6/23/21:00まで
[5]今年の春から始めたので、まだ基礎のほうです。
よろしくお願いします。
0491デフォルトの名無しさん
2008/06/23(月) 20:38:26[2] 問題文
h ttp://www.elc.ees.saitama-u.ac.jp/ProgrammingI/kadai/kadai1.pdf
h ttp://www.elc.ees.saitama-u.ac.jp/ProgrammingI/No07-6.pdf
[3] 環境
[3.1] OS : windows vista
[3.2] コンパイラ名とバージョン: Borland C++Compiler Version 2.31
[3.3] 言語: C
[4] 期限: 6月26日(印刷の必要があるため)
[5] その他の制限:
特になし
身を晒す事になりますが、お願いします。
0492デフォルトの名無しさん
2008/06/23(月) 20:46:24ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7029.txt
0493491
2008/06/23(月) 20:52:41πの計算のコンパイルが通るところまで作りました。
Cはじめて2ヶ月で出た課題です。
ほとんど回答は載せてあるからこのレベルらしいですが、
正直見直しても全く分からないです。
0494491
2008/06/23(月) 20:55:59πの計算のコンパイルが通るところまで作りました。
Cはじめて2ヶ月で出た課題です。
ほとんど回答は載せてあるからこのレベルらしいですが、
正直見直しても全く分からないです。
0495デフォルトの名無しさん
2008/06/23(月) 20:58:38マヂ助かった!!ありがとう!!
0496デフォルトの名無しさん
2008/06/23(月) 21:03:238x8の解がいくつあるのか試してみて欲しいな
0497デフォルトの名無しさん
2008/06/23(月) 21:08:47http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7031.c
0498デフォルトの名無しさん
2008/06/23(月) 21:14:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7032.c
0499デフォルトの名無しさん
2008/06/23(月) 21:20:12ありがとうございます。
./a.out [ 6 [ 8 1 5 ] [ 3 _ 9 ] ]と入力すると
$ ./a.out [ 6 [ 8 1 5 ] [ 3 _ 9 ] ]
合計は 29 です
左部分木の合計は 14 です
右部分木の合計は 9 です
という風に出て、実効例どおりに行かないのですが、どこがおかしいのでしょうか?
省略と書いてあるところには、http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6978.txtの
・2分木の基本的な操作関数をそのまま貼り付けただけです
0500デフォルトの名無しさん
2008/06/23(月) 21:28:060501デフォルトの名無しさん
2008/06/23(月) 21:29:240502デフォルトの名無しさん
2008/06/23(月) 21:31:250503デフォルトの名無しさん
2008/06/23(月) 21:32:290504デフォルトの名無しさん
2008/06/23(月) 21:33:01だから何?お前基準で簡単とか言われても基準が曖昧なんだが。
お前が簡単だと思っているだけで、実際にお前が解いてもミスだらけなんじゃね?
0505デフォルトの名無しさん
2008/06/23(月) 21:33:13それが解けない奴の為のスレだw
0506デフォルトの名無しさん
2008/06/23(月) 21:33:21[1] 回答レベル:ノーチェック/コンパイル済/テスト済/清書済
[2] 回答 短いものは、直接記入可 もしくはリンク
[3] 開発環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイル/テストに使用した
コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4]コメント
なーんてね
0507デフォルトの名無しさん
2008/06/23(月) 21:45:21ひとつの問題に対して複数者から解答が上がったら概ね平易
ひとつの問題に対して複数者が議論を始めたら面白みのある問題
ミスだらけかもね
0508デフォルトの名無しさん
2008/06/23(月) 21:51:390509デフォルトの名無しさん
2008/06/23(月) 21:53:40うん、だから お前基準 ほど 難易度 として当てにならないっつってんだが?
一言居士はうざいって意味が分からない?四の五の言わずにてめぇレスしろよw
0510デフォルトの名無しさん
2008/06/23(月) 21:55:56>>490
> 入力された上限の数未満
おかげで未満じゃなくなってるし・・・
0511デフォルトの名無しさん
2008/06/23(月) 21:58:410512デフォルトの名無しさん
2008/06/23(月) 22:07:59もうお前一言居士ってコテハンにしろよ
0513デフォルトの名無しさん
2008/06/23(月) 22:10:56あ、文盲って言葉も使っていいよ。自分が知らない他人を批判する言葉とか大好きそうw
0514デフォルトの名無しさん
2008/06/23(月) 22:12:27[1] 授業単元: Cプログラミング演習
[2] 問題文(含コード&リンク)
2以上32767以下の素数を求める。
整数nが素数かどうかは、2から√nまでの素数で割り切れるかどうか判定して、
そのすべてで割り切れなければnは素数となる。また、2以外の偶数は素数にならないから、
3以上の整数については奇数だけを対象にして求めればよい。
余力があれば、long型を対象にして2から2^31-1までの素数を求めてみよ。
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:今週中
[5] その他の制限: (自分のレベルはかなり低いので難しい関数はなしでお願いします・・・)
0515デフォルトの名無しさん
2008/06/23(月) 22:21:31変数(int型 または double型 または 両方),入出力(scanf関数,printf関数),条件分岐(if else文)をすべて用いて,
各自自由なプログラムを作成する.
課題提出のメールには,必ずそのプログラムの仕様の説明文をつけること
(そのプログラムが何をするものなのかを説明すること).
0516デフォルトの名無しさん
2008/06/23(月) 22:24:08なんという独創的なw
0517デフォルトの名無しさん
2008/06/23(月) 22:27:08楽しすぎるwww
大まかに、どんなの作りたいかとか買いてけよw
テストの点数とか、体重の判定とかなんでもいいからよw
0518デフォルトの名無しさん
2008/06/23(月) 22:31:31成績表を破壊するプログラムとか
0519デフォルトの名無しさん
2008/06/23(月) 22:32:52このスレの解答を適当に拾えばおk
0520デフォルトの名無しさん
2008/06/23(月) 22:41:150521デフォルトの名無しさん
2008/06/23(月) 22:41:37int scanf printf if else
でググると良い
0522デフォルトの名無しさん
2008/06/23(月) 22:44:02wikiのマスターマインド(Hit&Blow)がいいんじゃない?
0523デフォルトの名無しさん
2008/06/23(月) 22:46:240524デフォルトの名無しさん
2008/06/23(月) 22:49:440525デフォルトの名無しさん
2008/06/23(月) 22:50:070526デフォルトの名無しさん
2008/06/23(月) 22:52:50が言ってるのは>>438だな
0527デフォルトの名無しさん
2008/06/23(月) 23:04:07http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7033.c
0528デフォルトの名無しさん
2008/06/23(月) 23:07:53> long型を対象にして2から2^31-1までの素数を求めてみよ。
PCの性能にもよるけど、物理的に時間が掛かるんで却下。
0529デフォルトの名無しさん
2008/06/23(月) 23:12:20yes
0530デフォルトの名無しさん
2008/06/23(月) 23:22:56BITREE_NODE *inputBITree(char *str[], int len, int *end){
〜〜省略〜〜
*end = i + i;
return p;
}
*end = i + i; を *end = i + 1;
に変更
0531デフォルトの名無しさん
2008/06/23(月) 23:41:29>wikiのマスターマインド(Hit&Blow)
実行してみたんですが、どうやって終わらせるんですか?
0532デフォルトの名無しさん
2008/06/23(月) 23:42:560533デフォルトの名無しさん
2008/06/23(月) 23:47:2970.3秒かかったよ
これって長すぎる?
アルゴリズムはエラトステネスの篩使用
0534デフォルトの名無しさん
2008/06/23(月) 23:54:44>>514の条件はエラトステネスの篩じゃないだろ
0535デフォルトの名無しさん
2008/06/23(月) 23:58:590536デフォルトの名無しさん
2008/06/24(火) 00:00:120537デフォルトの名無しさん
2008/06/24(火) 00:00:270538デフォルトの名無しさん
2008/06/24(火) 00:11:13ありがとうございます。数字はしっかりでました!
実行例にある
入力データ [ 6 [ 8 [ 1 _ _ ] 5 _ _ ] ] [3 _ [ 9 _ _ ] ] ]
というのはどうやって出せばいいのでしょうか?
0539デフォルトの名無しさん
2008/06/24(火) 00:13:27[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7035.txt
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: Borland C++Compiler V2.31
[3.3] 言語: C
[4] 期限: 08年6月25日(水曜日・明日)
[5] その他の制限: 特に無し
就活で浦島状態です、助けてください
0540デフォルトの名無しさん
2008/06/24(火) 00:14:54浦島状態って。
C#ならまだしも、いつの時代の人?
0541デフォルトの名無しさん
2008/06/24(火) 00:34:36printBITree(p, 0, 0);
値の間にスペース入れたいならprintSubtreeの中をいじくる
0542デフォルトの名無しさん
2008/06/24(火) 00:37:42#include <stdio.h>
int main(void)
{
char str[110], *p[10], temp[11];
int i, j, cnt[10] = {0}, n = 0;
p[0] = str;
for(i=0; i<10; i++) {
printf("入力文字列==>");
fgets(temp, sizeof temp, stdin);
for(j=0; temp[j]; j++) if(temp[j] == '\n') temp[j] = '\0';
if(strcmp(temp, "end")==0 || strcmp(temp, "END")==0) break;
for(j=0; j<n; j++) {
if(strcmp(p[j], temp)==0) {
cnt[j]++;
break;
}
}
if(j==n) {
char *dst = p[n], *src = temp;
while(*dst++=*src++);
p[n+1] = dst;
cnt[n]++;
n++;
}
}
printf("*** 集計結果 ***\n");
for(i=0; i<n; i++) printf("%s : %d\n", p[i], cnt[i]);
return 0;
}
0543デフォルトの名無しさん
2008/06/24(火) 00:52:470544デフォルトの名無しさん
2008/06/24(火) 00:55:440545デフォルトの名無しさん
2008/06/24(火) 01:09:56[2] 問題文(含コード&リンク):
8パズルを解く上で、状態の重複をチェックするにはどのようなプログラムを加えればよいか考えよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C
[4] 期限: 明日
どなたかよろしくお願いします。
0546デフォルトの名無しさん
2008/06/24(火) 01:14:14[2] 問題文(含コード&リンク):
ポインタの課題で、数値の大小を判別するプログラムです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7036.txt
[3] 環境
[3.1] OS: VineLinux
[3.2] コンパイラ名とバージョン: GNOME gcc
[3.3] 言語: C言語
[4] 期限:6/25 PM:2時
0547デフォルトの名無しさん
2008/06/24(火) 01:17:08よろしく
0548デフォルトの名無しさん
2008/06/24(火) 01:18:30>状態の重複
ってどんな状況だ?
こんなんか?
bool bCheckOverlap(int x, int y){
if(puzzle[x][y]>0){
return false;
}
return true;
}
0549デフォルトの名無しさん
2008/06/24(火) 01:22:590550デフォルトの名無しさん
2008/06/24(火) 01:25:05A
void func(int *a, int *b);
B
void func(int *a, int *b)
{
if(*a < *b) {
int temp = *a:
*a = *b;
*b = temp;
}
}
0551545
2008/06/24(火) 01:26:32言葉足らずで申し訳ありません。
0552デフォルトの名無しさん
2008/06/24(火) 01:32:44ありがとうございます。
「void func(int *a, int *b);」こうやって宣言するんですね、この段階で自分はつまづいてました。
またこちらもお願いできますでしょうか?これで課題がすべて終わるのでお願いします。
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
関数は戻り値をひとつしか返せないが、ポインタを使うと複数の値を呼び出し側に
返すことができる。秒数を与えると、それが何時間何分何秒にあたるかを計算する
関数void calctime(int sec, int *hp, int *mp, int *sp);を作成せよ。
たとえば、calctime(3725, &h, &m, &s); として呼び出すとh=1, m=2, s=5となる
(1時間2分5秒は3725秒)
(解説)
main関数側で各関数を用意し、計算する関数を呼び出す。
結果の表示は関数の呼び出しが終わった後、main関数側で行えばよい。
秒→時間、分、秒の計算は単純に割り算の商と余りを用いればよい。
[3] 環境
[3.1] OS: VineLinux
[3.2] コンパイラ名とバージョン: GNOME gcc
[3.3] 言語: C言語
[4] 期限:6/25 PM:2時
0553デフォルトの名無しさん
2008/06/24(火) 01:39:251 2 3
4 5 6
7 8 -
という状態なら123456780という数字を覚えておくとか。
3 4 2
1 7 -
8 5 6
という状態なら342170856という数字
こういうのをソートされた線形リストにいれておけばまあ悪くないのでは?
0554デフォルトの名無しさん
2008/06/24(火) 01:42:38http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7038.c
0555デフォルトの名無しさん
2008/06/24(火) 01:46:55[1]回答レベル:ヒント
[2]コード:なし
[3]環境:省略
[4]コメント:
つ9進数
0556デフォルトの名無しさん
2008/06/24(火) 01:49:16本当に回答がお早いです。自分もそれくらいになりたいですorz
なにはともあれ、ありがとうございます。
本当に助かりました。
0557553
2008/06/24(火) 02:01:26線形リストじゃ手が長くなった場合の探索コストが大きいかな。メモリも食うし。
静的に9^9Byte≒370MB確保しておくのもなんだかアレだしなんか良い案あるかしら
0558デフォルトの名無しさん
2008/06/24(火) 02:04:30[2] 問題文(含コード&リンク):
n個の文字列C0, C1, C2, ... ,Cn-1を読み込んだ後、C0, C1, C2, ... ,Cn-1を
アルファベット順に並び替える関数を作成し、main関数でこの関数を呼び出すようにせよ。
ここでいうアルファベット順とは、例えば"Report Ha Dase"と入力すると、
" aaDeeHoprRst"のように大文字と小文字がある場合は小文字が先にくるように
アルファベットの並べ替えを行なう。
(ヒント)
文字列を読み込んで、アスキーコード順に並び替えを行なう。
ただし、大文字と小文字が混在するので、そこは各自テクニックが必要。
なお、入力文字列中の「空白」は並び替え後、先頭にくる。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: cygwin gcc
[3.3] 言語: C言語
[4] 期限:2008.6.24 午後6時までの急ぎでお願いします。m(_ _)m
0559デフォルトの名無しさん
2008/06/24(火) 04:14:08空白、アルファベット以外は出現順
#include <stdio.h>
#include <string.h>
void alphabetsort(char *dst, const char *src)
{
int count[256] = {0}, idx, i;
char *p, label[256] = " aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
idx = strlen(label);
for( ; *src != '\0'; src++){
p = strchr(label, *src);
if(p) count[p - label]++;
else{ label[idx] = *src; count[idx] = 1; idx++; }
}
for(i = 0; i < 256; i++) while(count[i]-- > 0){ *dst = label[i]; dst++; }
*dst = '\0';
}
int main(void)
{
char buf[100], dst[100], *p;
fgets(buf, sizeof(buf), stdin);
p = strchr(buf, '\n');
if(p) *p = '\0';
alphabetsort(dst, buf);
printf("%s\n", dst);
return 0;
}
0560デフォルトの名無しさん
2008/06/24(火) 04:15:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7039.c
0561デフォルトの名無しさん
2008/06/24(火) 04:30:18>>560
両方、ありがとうございます。
どちらもせっかく作ってもらったので、両方使いたいところですが
今回は>>560さんのコードを使わせていただきます。
コード中の説明やコードの作りが分かりやすかったので
>>559さんのコードもアスキーコード使用が基本的で良かったのですが、
文字列の並び替え部分が若干難しかったので、今回はごめんなさい。
0562デフォルトの名無しさん
2008/06/24(火) 05:40:130563デフォルトの名無しさん
2008/06/24(火) 05:43:490564デフォルトの名無しさん
2008/06/24(火) 05:49:390565デフォルトの名無しさん
2008/06/24(火) 05:58:18批判しかしない基地外。
0566デフォルトの名無しさん
2008/06/24(火) 05:59:34後は本人が出来るなら、適当にやるだろうし。
0567デフォルトの名無しさん
2008/06/24(火) 06:11:23void swap(char *a, char *b)
{
char temp = *a;
*a = *b;
*b = temp;
}
void sort(char *str)
{
int i, j, len = strlen(str);
for(i=len-1; i>0; i--) {
for(j=0; j<i; j++) {
if(tolower(str[j]) > tolower(str[j+1])) swap(str + j, str + j + 1);
else if(tolower(str[j])==tolower(str[j+1])) {
if(isupper(str[j]) && islower(str[j+1])) swap(str + j, str + j + 1);
}
}
}
0568デフォルトの名無しさん
2008/06/24(火) 06:13:020569デフォルトの名無しさん
2008/06/24(火) 06:14:08が>>567のコードを使ったら、>>559,>>560両方から殴られることを
覚悟したほうがいい。w
0570質問者のマナー遵守のお願い
2008/06/24(火) 06:40:52すなわち、コードの品質に対する明示が無かったり、コメントが一切
無くコードそのものやコードへのリンクだけの場合は、参考に留める
だけに留め、あくまでも独力でトライすることをおすすめします。
多くのコードは良心的で真面目ですが、中には>>438のような悪辣
なコードもありますので、参考以上の扱いをすると災難に合う場合も
あります。
なお、小さなプログラムコードの場合、簡単にその優劣は判断出来ま
せん。コードは数学の問題と異なり、一度解いてしまえばおしまい
というわけではなく、何度も実行されて書き直されて真価が評価され
るものです。
宿題を自力で解けないレベルの人がその優劣の判断を出来ると
は到底思えません。
複数の回答が出た場合でも、それに優劣を付けていると取られかね
ない言動を取ることは質問者は絶対に避けて下さい。
0571デフォルトの名無しさん
2008/06/24(火) 06:44:230572デフォルトの名無しさん
2008/06/24(火) 08:56:20[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6983.txt
ヒント:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7040.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler
[3.3] 言語:C言語
[4] 期限:水曜まで
[5] その他の制限:ポインタまで習いました
ヒントをくれました。それでもわからないのでよろしくお願いします
0573デフォルトの名無しさん
2008/06/24(火) 09:41:26[2] 問題文
3×3の行列の掛け算を行う関数を作り、標準入力から入力した行列を掛け算するプログラムを書け
(ヒント 2重配列が必要。 double matrix[3][3];を使用)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6月26日まで
[5] その他の制限:
おねがいします><
0574491
2008/06/24(火) 10:00:41いないかもしれないけど、協力して下さった方々 どうもです
0576デフォルトの名無しさん
2008/06/24(火) 12:08:56#include <stdio.h>
int main() {
int i, j, k;
double matrix1[3][3], matrix2[3][3],matrix3[3][3];
for(i=0;i<3;i++) {
printf("INPUT 3 numbers. (%d of 3):", (i%3)+1 );
scanf("%lf%lf%lf", &(matrix1[i][0]), &(matrix1[i][1]), &(matrix1[i][2]));
}
for(i=0;i<3;i++) {
printf("INPUT 3 numbers. (%d of 3):", (i%3)+1 );
scanf("%lf%lf%lf", &matrix2[i][0], &matrix2[i][1], &matrix2[i][2]);
}
for(i=0;i<3;i++)
printf("%lf\t%lf\t%lf\n", matrix1[i][0], matrix1[i][1], matrix1[i][2]);
putchar('\n');
for(i=0;i<3;i++)
printf("%lf\t%lf\t%lf\n", matrix2[i][0], matrix2[i][1], matrix2[i][2]);
puts("");
// A(i,k) * B(k,j) = C(i,j)
for(i=0;i<3;i++)
for(j=0;j<3;j++) {
matrix3[i][j] = 0.0f;
for(k=0;k<3;k++)
matrix3[i][j] += matrix1[i][k] * matrix2[k][j];
}
for(i=0;i<3;i++)
printf("%lf\t%lf\t%lf\n", matrix3[i][0], matrix3[i][1], matrix3[i][2]);
}
0577デフォルトの名無しさん
2008/06/24(火) 12:16:06いろいろ試してみたが、AMDのプロセッサ(AthlonX2)はL1 Data
Cacheが2Way-Set AssosiativeのためにCore 2 Duoのような
8Way-Set Assosiativeのマシンに特定の場面で大幅に負ける事がある。
データ・テーブルも今回は2個だがこれが10個〜20個と増えてくると
AMDとIntelではあまり差がなくなってくるだろう。
0578デフォルトの名無しさん
2008/06/24(火) 12:41:06[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7041.txt
[3] 環境
[3.1] OS:Win
[3.2] コンパイラ名とバージョン:Borland C++Compiler
[3.3] 言語:C
[4] 期限:今日中
[5] その他の制限:特になし
お願いします!
0579デフォルトの名無しさん
2008/06/24(火) 13:12:49#include <stdio.h>
float interest(float r, int n)
{
float ret = 1.0;
int i;
for(i=0; i<n; i++) ret *= (1 + r / 100);
return ret;
}
int main(void)
{
float r;
int y, n;
printf("利率(r):");
scanf("%f", &r);
printf("金額(y):");
scanf("%d", &y);
printf("期間(n):");
scanf("%d", &n);
printf("返済金額は%d円です", (int)(y * interest(r, n)));
return 0;
}
0580デフォルトの名無しさん
2008/06/24(火) 13:16:30ちょっとスレ違いになるかも知れないが、何故L1Chacheの構造が
原因であると断定できるのか教えて欲しいと思います。
0581デフォルトの名無しさん
2008/06/24(火) 13:17:30[2] 問題文(含コード&リンク):
次々に入力される値を合計する処理である。
変数dtにデータを入力する処理を繰り返し行い、
入力終了後その合計sumと平均aveを出力する。
なお、入力データは正の整数とし、
入力するデータがなくなったら、
終わりの印として負の値を入力する。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限:
[5] その他の制限:
0582デフォルトの名無しさん
2008/06/24(火) 13:18:58[2] 問題文(含コード&リンク):
次の説明を読んで、プログラムを作成しなさい。
小数で入力される気温のデータを5℃単位の整数に丸めたい。
キーボードからdouble型変数kに気温を入力し、
丸めた数値はint型変数gに求め、gを画面に出力する。
ただし入力データに負の気温はないものとする。
また必要なら、
計算途中の中間結果を格納するint型変数wなど、
適宜変数を用意すること。
【実行例】
温度を入力 22.4
約20度です
温度を入力 22.5
約25度です
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限:
[5] その他の制限:なし
2問ありますが、よろしくお願いします
0583デフォルトの名無しさん
2008/06/24(火) 13:46:07#include <iostream>
int main()
{
int dt, i = 0, sum = 0, ave;
while(1) {
std::cin >> dt;
if(dt<0) break;
sum += dt;
i++;
}
if(i!=0) {
ave = sum / i;
std::cout << "合計:" << sum << "平均:" << ave << std::endl;
}
}
0584デフォルトの名無しさん
2008/06/24(火) 13:54:48#include <iostream>
int main()
{
int g, w;
double k;
std::cout << "温度を入力";
std::cin >> k;
for(g=0; g<k; g+=5);
if(g - k > 2.5) g -= 5;
std::cout << "約" << g << "度です" << std::endl;
}
0585デフォルトの名無しさん
2008/06/24(火) 14:27:16[1]コード品質:未チェック
[2]コード:直接記入
#include <stdio.h>
#include <stdlib.h>
int main(void){
int sum,count=0,current;
char s[32],*ss;
do{
if (ss==fgets(s,32,stdin)) continue;
while(*ss){ if( (*ss=13)||(*ss=10) )*ss=0;ss++;}
if(( current=atoi(s) )<0)continue;
count++;sum+=sum+current;
printf("%6d:value=%6d sum=%6d average=%lf¥n",count,current,sum,
(double)sum/(double)count);
}while(0);
retrun(0);
}
[3] 環境:Linux/Gcc/C++
[4]コメント:上記コードはC++でもコンパイルできる筈です。
C++はCのほぼスーパーセットです。ループの中で、stdinから文字列
を読み込み、atoi関数で整数に変換しています。平均の計算はdoubleで
行っています。駄コードですがご参考にどうぞ。
0586デフォルトの名無しさん
2008/06/24(火) 14:35:160587デフォルトの名無しさん
2008/06/24(火) 14:48:46ソースを書かなきゃ文句言っちゃいかんのか?
0588デフォルトの名無しさん
2008/06/24(火) 14:53:100589デフォルトの名無しさん
2008/06/24(火) 15:25:15できました!ありがとうございます。
ところで、資料に書いてあったようにbitree.hを作ってインクルードする意味ってなんなんでしょうか?
また、bitree.hを作る場合は、bitree.hに一応
int main(int args, char **argv);
BITREE_TYPE sumValue(BITREE_NODE *p);
なども書き加えておいたほうがよいのでしょうか?意味はない気がしますが・・
0590デフォルトの名無しさん
2008/06/24(火) 16:18:17[1] 授業単元:プログラミング
[2]問題リンク:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7042.txt
[3]期限:2008年6月27日
0591デフォルトの名無しさん
2008/06/24(火) 16:19:080592デフォルトの名無しさん
2008/06/24(火) 16:53:510593デフォルトの名無しさん
2008/06/24(火) 17:28:14>>581
#include <stdio.h>
#include <stdlib.h>
int main(void){
// int sum, count=0, current;
int sum=0, count=0, current;
char s[32], *ss;
do{
// if (ss == fgets(s, 32, stdin))
if (!(ss = fgets(s, 32, stdin)))
continue;
while(*ss){
// if( (*ss=13) || (*ss=10) )
if( (*ss==13) || (*ss==10) )
*ss = 0;
ss++;
}
if(( current = atoi(s) ) < 0)
continue;
count++;
// sum += sum + current;
sum += current;
printf("%6d:value=%6d sum=%6d average=%lf\n",
count, current, sum, (double)sum/(double)count);
// }while(0);
}while(current >= 0);
// retrun(0);
return(0);
}
0594お願いします
2008/06/24(火) 19:20:36クラス名はstackとする.
要素のデータの型はintとする.
格納できる要素の最大数は10とする.
公開されているインターフェースは下記のものとする.
void push(int data);
int pop();
初期設定は,以下のいずれかにより行う.
(1) クラスのコンストラクタ(constructor)の機能を用いる.
(2) 初期設定用のインターフェース(init)を定義し,スタックを使用する前に,initを呼び出す.
機能確認のためのインターフェース(たとえばスタック内のデータを表示させる)を追加してもよい.
上記の仕様を満たさない(インターフェース名が上記と一致しない等)プログラムは対象としない.
0595デフォルトの名無しさん
2008/06/24(火) 19:50:28#include <vector>
using namespace std;
int main()
{
vector<int> stack;
stack.push(1);
stack.push(2);
cout << stack.pop() << endl;
cout << stack.pop() << endl;
}
じゃ駄目ですか(><;
0596デフォルトの名無しさん
2008/06/24(火) 19:53:19#include<iostream>
#include<vector>
class stack{
public:
void push(int data){ if(m_data.size()<m_datanummax) m_data.push_back(data); }
int pop(){
int ret=-1;
if(m_data.size()>0){
ret=m_data[m_data.size()-1];
m_data.pop_back();
}
return ret;
}
void display(){ for(unsigned i=0;i<m_data.size();i++) std::cout << m_data[i] << std::endl; }
stack(){m_datanummax=10;}
stack(int datanummax):m_datanummax(datanummax){};
private:
std::vector<int> m_data;
unsigned m_datanummax;
};
int main(void){
stack a, b(5);
for(int i=0;i<20;i++){
a.push(i);
b.push(i);
}
a.display();
std::cout<<"-----"<<std::endl;
b.display();
return 0;
}
0597デフォルトの名無しさん
2008/06/24(火) 20:02:320598デフォルトの名無しさん
2008/06/24(火) 21:23:540599デフォルトの名無しさん
2008/06/24(火) 21:32:00main関数はヘッダで宣言したらダメ
sumValue関数はヘッダで宣言してもいい
bitree.hを作ってincludeさせてるのは勉強のためじゃない?
main関数と同じファイルに関数を定義してるなら普通はわざわざ宣言部をヘッダに分けない
main関数以外をbitree.cとかいうファイルにでも定義するならbitree.hを作る必要がある
分割コンパイルについて知りたいなら、ググるか他のC言語質問スレに質問しましょう
0600デフォルトの名無しさん
2008/06/24(火) 21:40:24完全2分木って書いてあるけど、綺麗な形の木じゃない場合ってことは
完全2分木ではない場合を考えろってこと?
0601デフォルトの名無しさん
2008/06/24(火) 21:40:44わかりました、ありがとうございました!
0602デフォルトの名無しさん
2008/06/24(火) 22:06:29[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7043.txt
[3] 環境
[3.1] OS:XP
[3.3] 言語: C++
[4] 期限: 08年06月30日
[5] その他の制限:もしやっていただけるなら出来るだけ簡単に、分かりやすく(初心者でも理解できる構成)
0603デフォルトの名無しさん
2008/06/24(火) 22:10:31A : [] B : 0 C : * D : * E : * F : 0 G : vc
0604デフォルトの名無しさん
2008/06/24(火) 22:21:00エスパーいないなー
0605デフォルトの名無しさん
2008/06/24(火) 22:21:45A : d B : d C : s
0606デフォルトの名無しさん
2008/06/24(火) 22:50:350607デフォルトの名無しさん
2008/06/24(火) 22:53:53[2] 問題文(リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7044.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2008年06月25日いっぱい
0608デフォルトの名無しさん
2008/06/24(火) 23:03:35[2] 問題文(含コード&リンク):
3a-2b+ - d= 7
. 2b+2c+ d= 5
.a-2b-3c-2d=-1
. b+2c+ d= 6
上の行列をピポット選択を使い前進消去法で解くプログラムを作る。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VisualStudio2005
[3.3] 言語:C
[4] 期限:2008年06月25日07:00まで
[5] その他の制限:特に制限はありません
以下が作っては見たもののアルゴリズムエラーでどこが悪いのかもわからない自作プログラム。
http://nijibox.ohflip.com/futabafiles/001/src/sa26951.txt
0609608 ◆k4INPBPZ3E
2008/06/24(火) 23:04:300610デフォルトの名無しさん
2008/06/24(火) 23:11:40[2] 問題文
(1)標準入力からint 型引数に文字コード (ASCII) を読み込むと, その文字が小文字 (a〜z) であれば大文字のコードを返し
そうでないならば受け取ったコードをそのまま返す関数を設計し, その関数を利用するプログラムを作成しなさい
(2)char 型の配列の名前を引数として受け取ると, その配列に記憶されている文字列の逆順に 並べか替えた文字列を表示し
何も返さない関数を設計し, その関数を利用するプログラムを作成しなさい.
(3)char 型の配列の名前を2つ引数 P, R に受け取ると, P に記憶されている文字列を逆順に並べか替えた文字列を R に記憶して
何も返さない関数を設計し, その関数を利用するプログラムを作成しなさい.
(4)char 型の配列の名前を引数として受け取ると, その配列に記憶されている文字列が回文ならば 1 を, そうでなければ 0 を返す関数を設計し
その関数を利用するプログラムを作成しなさい. ただし,前問の関数を利用すること.
(5)char 型の配列の名前を引数として受け取ると, その配列に記憶されている文字列が回文ならば 1 を, そうでなければ 0 を返す関数を設計し
その関数を利用するプログラムを作成しなさい. ただし,前々問の関数を利用せず, 直接,文字列中の文字を先頭と末尾から比較する方針を用いること.
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン:(cygwin)
[3.3] 言語:C
[4] 期限:(明日の15時まで)
[5] その他の制限:
0611デフォルトの名無しさん
2008/06/24(火) 23:12:48#include <stdio.h>
int main(void)
{
int i, j, sum;
for(i=1, sum=0; i<=100; i++) sum += i;
printf("1から100までの整数の和は%d\n", sum);
for(i=1, sum=0; i<=100; i+=2) sum += i;
printf("1から100までの奇数の和は%d\n", sum);
for(i=1; i<=20; i++) {
if(i<10) for(j=0; j<i; j++) putchar(' ');
else for(j=20; j>i; j--) putchar(' ');
printf("%d\n", i);
}
return 0;
}
0613デフォルトの名無しさん
2008/06/24(火) 23:34:49どなたかご助力宜しくお願いします。
[1] 授業単元:実験
[2] 問題文(含コード&リンク):
10進数を2進数に変換するプログラムを作成せよ。
その際、入力する10進数が小数点ありの数値(例:2.56)でも変換可能なものとする。
[3] 環境
[3.1] OS:XP
[3.3] 言語: C
[4] 期限: 08年06月27日
[5] その他の制限:
基本的に習ったことの利用がメインなので、特殊な関数などは使えません。原始的なアルゴリズムでないとだめなようです。
もちろん、構造体、配列、ポインタなどの基本は習いました。
0614デフォルトの名無しさん
2008/06/24(火) 23:35:34#include <stdio.h>
const int BitSize = sizeof(int) * 8; // 整数型のビットサイズを算出
void dtob(int x) {
int bit = 1,
i;
char c[BitSize];
for (i = 0; i < BitSize; i++) {
if (x & bit)
c[i] = '1';
else
c[i] = '0';
bit <<= 1;
} // 計算結果の表示
printf("2進数: ");
for ( i = BitSize - 1; i >= 0; i-- ) {
putchar(c[i]);
}
printf("\n");
}
int main(){
int x = 0;
do {
printf("10進数を2進数に変換します(0で終了)\n");
printf("xの値: ");
scanf("%d", &x);
dtob(x);
} while (x != 0);
return 0;}
0615デフォルトの名無しさん
2008/06/24(火) 23:36:38>613 = >614
です。
0616デフォルトの名無しさん
2008/06/24(火) 23:44:06for( ; i>=0; i--) putchar(c[i]); //後は普通に表示
0617デフォルトの名無しさん
2008/06/24(火) 23:55:50レスありがとうございます!
なるほど〜ちょっと改良してみます。
あとは小数点が問題ですね。。。
やっぱりとりあえず、整数部分と小数点以下をわけてスキャンしなきゃだめですよね
0618デフォルトの名無しさん
2008/06/25(水) 00:01:46ん?>>603間違えてる?
0619デフォルトの名無しさん
2008/06/25(水) 00:05:49[2] 問題文(含コード&リンク):
登録番号(int no)と名前(char *name)と年齢(int age)を含む構造体person型のポインタ変数を宣言し、登録人数分だけの動的メモリ確保をせよ。そして、データをファイルから入力せよ。
ファイルの形式は、先頭に登録する人数とし、そのあとに人数分のデータを登録番号、名前、年齢の順に書いていく(下の例を参照。登録番号は入力順に1,2,3,4,5,・・・とする。そして、入力した全員データを表示せよ。)
(ファイルの例)
3
1 田中 20
2 太田 40
3 井上 35
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VisualStudio2005
[3.3] 言語:C
[4] 期限: できるだけ早くお願いします。
[5]問題文でわかりにくいところがありましたら、聞いてください。
0620デフォルトの名無しさん
2008/06/25(水) 00:14:27んー?その課題ってそういう解き方を期待してるのかな。
それでもいいんだけど、初歩的な段階ということを考慮すると
整数部なら2で割ったあまりをせっせと詰めていくように思えた。
小数部は2倍したものの整数部を詰める、みたいな。
その段階でビット演算でできるという発想をしたなら優秀な
生徒さん(もしくは経験者)なんだなあって思う。
// 皮肉じゃないです。念のため
0621デフォルトの名無しさん
2008/06/25(水) 00:20:030622デフォルトの名無しさん
2008/06/25(水) 00:25:57[2] 問題文
キーボードから2つの自然数を入力し、入力した値が10以下で2の倍数なら足し算
それ以外はかけ算させた結果を表示させるプログラムを作成せよ。
但し、if文を用いて自然数以外を入力したらエラー文を表示させる。
[3] 環境
[3.1] OS: Windows/linux
[3.2] コンパイラ名とバージョン:VC++ 6.0/gcc
[3.3] 言語: C
[4] 期限:6/27
[5] その他の制限:入力はscanf、出力はprintf stdio.h
よろしくお願いしますorz
0623デフォルトの名無しさん
2008/06/25(水) 00:26:37あーもーそういう煽りが欲しいわけじゃなくてな。
関数、ポインタ習いました。とか原始的なアルゴリズムで、とか前置きしなきゃならない段階でしょ?
その段階でビット演算を直感的に理解できる子は少ないでしょ。
わかんないかなー。
学生の頃周りがどうだったか、自分がどうだったか思い出しなよ。
学校では習ってません独学です、ならビット演算をスムーズに理解できたのはいつのことだった?
0624デフォルトの名無しさん
2008/06/25(水) 00:29:33って書いてあるのに、ビット演算を習ってないと思うほうがおかしいだろ。
0625デフォルトの名無しさん
2008/06/25(水) 00:37:27>>622
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7047.txt
0626デフォルトの名無しさん
2008/06/25(水) 00:38:02お二人ともすみません(汗)
自分の書き方がまぎらわしかったです・・・
ビット演算は習っていません。
柴田先生の本を読みまして、
内部表現とビット などの説明あたりを読んでいるときに
先生が以前ビット演算でやればサマートなんだけどな・・・ブツブツと
ボソっといってたのを思い出して、
それから少し自分で勉強してみました。
ですが、挫折しかけてこのサイトに、、です。(汗)
というか途中で疑問に思ったのですが、なんでC言語には2進数で表示する機能がないのでしょうか・・・?
0627デフォルトの名無しさん
2008/06/25(水) 00:40:40相手するだけ無駄
>>624
宿題解いてもらえなくて涙目なんですよね、わかります。
催促していいよw
0628613
2008/06/25(水) 00:41:18原始的なアルゴリズム とはありますが、
たぶんビット演算くらいはOKかと思います。
先生は期待してはいないと思いますが…。
その、手計算でやるときのアルゴリズムと
まったくそのままのほうが、わかりやすいのだとは思うのですが、
違う方向性でやりはじめてしまったので…。
最終的にダメそうなら、ホントに原始的な方向でいくつもりですが。
0629デフォルトの名無しさん
2008/06/25(水) 00:51:30[2] 問題文(含コード&リンク):
2題あります。
片方でも構いません。
上については、ソースに記載されてるpartitionって関数を使って、再帰でクイックソートです。
下については、ソースに記載されているmergeって関数を使って、再帰でマージソートです。
それぞれ、作成する部分にコメントがあるので、大体それと同じ行数でできるらしいです。
でも長くなっても構いません。
ifとforかwhileでできるみたいなことも言ってました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7048.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7049.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: CPad for Borland C++Compiler Version 2.31
[3.3] 言語:C
[4] 期限: 2008年6月25日17:00まで できるだけ早く完成させたいです。提出は明日の夕方です。
[5] その他の制限: ポインタは使わない感じで授業やってます。再帰必須です。あとは上に書いた通りです。
よろしくお願いします。
0630608 ◆k4INPBPZ3E
2008/06/25(水) 01:03:520631デフォルトの名無しさん
2008/06/25(水) 01:06:35void quicksort(int left, int right)
{
int i=0;
if(left >= right) return;
i = partition(left, right);
quicksort(left, i-1);
quicksort(i+1, right);
}
void mergesort(int l, int r)
{
int m;
if(l>=r) return;
m = (l + r) / 2;
mergesort(l, m);
mergesort(m+1, r);
merge(l, m, r);
}
0632デフォルトの名無しさん
2008/06/25(水) 01:11:17→>>316
0633デフォルトの名無しさん
2008/06/25(水) 01:20:45あなたが神か
ありがとうございます!
超絶感謝!!!
0634デフォルトの名無しさん
2008/06/25(水) 01:20:49[2] 問題文(含コード&リンク):
(1)1つの整数を2進数に変換表示する関数convert(a)を作成せよ。そして、キーボードより任意の正の整数を入力し、
その整数の2進数が表示されるプログラムを作れ。
(2)1つの正の整数を素因数分解し表示する関数bunkai(a)を作成せよ。そして、キーボードから任意の正の整数を入力し、
その整数の素因数分解を表示するプログラムを作れ。
------表示例------
整数を入力: 50
50=2x25
25=5x5
5=5
5*5*2
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
[3.3] 言語: C
[4] 期限: 明日
[5] その他の制限:関数についての演習です。実は(1)に関しては十分な実行結果は得られました。
蛇足があれば指摘していただきたいです。
0635デフォルトの名無しさん
2008/06/25(水) 01:21:56#include <stdio.h>
void convert(int n)
{
if(n>1)
convert(n/2);
if(n==1)
printf("1");
else
printf("%d",n%2);
}
void main()
{
int n;
printf("10進数を入力してください:");
scanf("%d",&n);
printf("2進数に変換すると\n");
convert(n);
}
0636デフォルトの名無しさん
2008/06/25(水) 01:45:23[2] 問題文(含コード&リンク):
アスキーコードにより文字操作を行い、暗号化された文字列を解読するプログラム
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7050.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: cyagwin gcc
[3.3] 言語: C
[4] 期限: 6/26 午後3時まで
暗号文(アスキーコードをずらしただけ)を解読するプログラムを作成する課題です。
よく見る課題ですが、プログラム仕様が特殊で過去ログに該当するものがなかったので
どなたかお願いします。
0637デフォルトの名無しさん
2008/06/25(水) 01:54:37手作業で小数を2進数に変換することができることに加え、浮動小数点のビット列が
どのように構成されてるかを理解する必要があるよ
それでもビット演算しますか?(y/n)
0638デフォルトの名無しさん
2008/06/25(水) 02:12:06以下のようなプログラミングはどのようにすればよいのでしょうか?
「組み合わせ」を求める数学の公式にコンビネーションがあります。このコンビネーションのプログラミングを教えてください!
nとrをscanf()で読み、nCrの値を計算して表示させます。
条件として、nとrの値はマイナスでなく、またゼロでなく、さらにここではn<=10であることを確認させて、正しい数値を入力させる。もし誤った数値を入力したら「入力ミスです」と表示させる。
0!=1も扱えるようにすることを忘れない。
これもよろしくお願いします
0639613
2008/06/25(水) 02:12:31はい…そこなんですよ…。
それが頭いっぱいになって、ここにたどり着きました。。。
1年間アセンブリ言語をやっていたことがあって、
そのとき浮動小数点に苦労しました。。。
でも原始的なアルゴリズムよりもスマートに、短くできるんだったら
大変興味があります。なのでとりあえずやりたいと考えます。
0640613
2008/06/25(水) 02:23:50丸め誤差については特にいわれてないのですが、
4ビット程度表示できればいいかなぁと考えています。
0641デフォルトの名無しさん
2008/06/25(水) 02:24:42[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7053.txt
[3] 環境
[3.1] OS: WindowsXP SP2
[3.2] コンパイラ名とバージョン: visual Studio NEt2003
[3.3] 言語: C/C++/どちらでも可
[4] 期限:今週土曜まで
[5] その他の制限: 大域変数(グローバル変数)を使う。
今あるプログラムを改善した形で書き換えてくれるとありがたい。
(プログラムの授業ではなく数値解析なので変な形にはなっていると思うが
なるべくこのような形にしてもらいたい。)自分が理解しやすいのもあるが
0642デフォルトの名無しさん
2008/06/25(水) 02:32:200643デフォルトの名無しさん
2008/06/25(水) 02:36:55yを求めた時のiの値とxn[i],xn[i+1]とxの関係を考えてみろ。
っていうか前スレのヤツならなんできちんと写さない?
0644613
2008/06/25(水) 02:37:40え、自分でしょうか??
自分はこのスレ、はじめてです。(検索で見つけました)
0645デフォルトの名無しさん
2008/06/25(水) 02:38:140646613
2008/06/25(水) 02:38:420647デフォルトの名無しさん
2008/06/25(水) 02:41:48凄いぞ東京高価
0648デフォルトの名無しさん
2008/06/25(水) 03:28:21(・∀・)ニヤニヤ
0649デフォルトの名無しさん
2008/06/25(水) 03:32:550650デフォルトの名無しさん
2008/06/25(水) 03:38:15一番最後は工夫すりゃif else 不要
0651デフォルトの名無しさん
2008/06/25(水) 03:41:480652デフォルトの名無しさん
2008/06/25(水) 04:12:170653デフォルトの名無しさん
2008/06/25(水) 05:17:34これでいいですか><?
for(i=1;i<=20;i++)
printf("%*s%d\n",i<=10?i:20-i,"",i);
0654590
2008/06/25(水) 06:42:59えっと・・・完全2分木っていうのは葉以外の全てのノードが枝を2つ持っている事が必要十分条件ではないのですか?
それならば一部のパスだけが長いという場合も考えられますよね。
それとも左右対称の三角形みたいな形の木になることを意味しているんでしょうか。
0655デフォルトの名無しさん
2008/06/25(水) 06:49:090656デフォルトの名無しさん
2008/06/25(水) 06:51:23何も考えずに昇順に挿入したりするとリスト構造の高価なシミュレーションになる
0657デフォルトの名無しさん
2008/06/25(水) 06:54:56NlogNじゃねーの?
0658デフォルトの名無しさん
2008/06/25(水) 07:01:24>子ノードの中身を比較することで、完全2分木中の任意のノードの探索が行えるとする
この意味が分からん
「左右の子ノードの中身を比較」ってどういうことだろう
普通の二分探索木なら簡単に解ける
完全二分木の高さをhとすると、N=2^h-1だから、h=log2(N+1)
比較回数の最大値は高さと同じだから、log2(N+1)回
0659デフォルトの名無しさん
2008/06/25(水) 08:39:21http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7055.txt
0660デフォルトの名無しさん
2008/06/25(水) 08:45:170661デフォルトの名無しさん
2008/06/25(水) 08:55:490662デフォルトの名無しさん
2008/06/25(水) 10:38:17[2] 問題文(含コード&リンク):()
# 下記のようにキーボードから4桁の10進数の入力を2回受付ける.
Input the 1st value > 6479
Input the 2nd value > 1497
但し,4桁の各位の数は必ず互いに異なるものが入力されるとする.
# 入力された数値に対して,次のようにに定義する「ヒット数」と「ホームラン数」を求める.
* ホームラン数: 二つの数字を同じ位ごとに比較した場合,何ヶ所の位について一致してるかを表す.
* ヒット数: 二つの数字を異なる位同士で比較した場合,一致している組み合わせの数を表す.
例
1234と1234のとき,0ヒット4ホームラン
1234と4321のとき,4ヒット0ホームラン
6479と1497のとき,2ヒット1ホームラン
# ヒット数とホームラン数を下記のように表示する.
2 hit(s) 1 home run(s)
[3] 環境
[3.1] OS: WindowsVista
[3.2] コンパイラ名とバージョン:Cygwin gcc
[3.3] 言語: C
[4] 期限: 6月26日正午
[5] 現時点で習ってるのは、条件分岐、繰り返し、配列、ソート、ポインタまでです。
よろしくお願いします。
0663デフォルトの名無しさん
2008/06/25(水) 10:54:32memcpy(n1+(2*3),n2,sizeof(int)*2*3);
これって何やってるの?
調べたんだけどよくわからないです…
0664デフォルトの名無しさん
2008/06/25(水) 11:12:060665デフォルトの名無しさん
2008/06/25(水) 11:53:36どうすれば調べきれないのかよくわからないです…
http://www.google.co.jp/search?complete=1&hl=ja&q=manpage+memcpy&lr=
0666デフォルトの名無しさん
2008/06/25(水) 12:30:32#include <stdio.h>
#include <string.h>
/*1)*/ int getUpper(){ int r=getchar(); return 'a'<=r && r<='z' ? (r-'a'+'A') : r; }
/*2)*/ void showReverse(char *s){ int i; for(i=strlen(s)-1; i>=0; putchar(s[i--])); putchar('\n'); }
/*3)*/ void letReverse(char *P, char *R){ int i,k; for(k=0, i=strlen(P)-1; i>=0; R[k++]=P[i--]); R[k]='\0';}
/*4)*/ int isCircular(char *s){ char *r=(char*)malloc(sizeof(char)*(strlen(s)+1)); int ret; letReverse(s,r); ret=strcmp(s,r)==0; free(r); return ret; }
/*5)*/
static int isCircular2s(char *s1, char *s2){ if(s1>=s2) return 1; else{if(*s1==*s2) return isCircular2s(s1+1, s2-1); else return 0; } }
int isCircular2(char *s){ return isCircular2s(s,s+strlen(s)-1); }
// なんか色々関数を利用するプログラム
void checkCircular(char *s){ printf("%s is %scircular string.\n", s, isCircular(s) ? " " : "not ");
int main(void){
char rev[10];
printf("Hit keyboard: ");fflush(stdout);
printf("getUpper() is .. %c\n", getUpper());
showReverse("abcde");
letReverse("a1b2c3", rev);
printf("reverse a1b2c3 = %s\n", rev);
checkCircular("abcba"); checkCircular("12321");
printf("12321 is %scircular string.\n", isCircular2("123321") ? " " : "not ");
}
0667デフォルトの名無しさん
2008/06/25(水) 12:56:24神様ありがとう!
でも分けかからんww 勉強せねば…
0668デフォルトの名無しさん
2008/06/25(水) 14:11:11#include <stdio.h>
int main(void)
{
char value[2][5];
int i, j, hit = 0, homerun = 0;
printf("Input the 1st value > ");
scanf("%s", value[0]);
printf("Input the 2nd value > ");
scanf("%s", value[1]);
for(i=0; i<4; i++) {
for(j=0; j<4; j++) {
if(value[0][i] == value[1][j]) {
if(i == j) homerun++;
else hit++;
}
}
}
printf("%d hit(s) %d home run(s)\n", hit, homerun);
return 0;
}
0669デフォルトの名無しさん
2008/06/25(水) 14:53:44[2] 問題文(含コード&リンク):擬似シェル(UNIX上で動く)を作る
必要な機能
・リダイレクト(>>、>、<)
・パイプ(|)
・パイプは複数つなげるように
・できればcdやaliaseも。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc 3.4.6
[3.3] 言語: C
[4] 期限:明日の午前中
[5] その他の制限:
リダイレクトとパイプの実装ができません。
お願いします。
0670デフォルトの名無しさん
2008/06/25(水) 15:05:01[1] 授業単元:コンピュータアーキテクチャー
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7057.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc32
[3.3] 言語: C
[4] 期限: 六月二十九日
[5] その他の制限: 特にありません
よろしくお願いします
0671デフォルトの名無しさん
2008/06/25(水) 15:11:16> また、使用したプログラムも提出せよ。
におんごでおk
0672670
2008/06/25(水) 15:25:06すみません
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7058.txt
↑のようにサイズ5000の配列を用いて、それを100000回程度繰り返して、 倍精度浮動小数乗算の演算性能を測定し、それをMFLOPSで求めることです。
0673 ◆DuoCt8/SKk
2008/06/25(水) 15:41:19[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7059.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual C++ 6.0
[3.3] 言語:C言語
[4] 期限:2008/06/28
[5] その他の制限:ポインタ,構造体は習っています.
全く分からないので,よろしくお願いします!
0674デフォルトの名無しさん
2008/06/25(水) 17:53:14if (a <= 10 && a % 2 == 0 && b <= 10 && b % 2 == 0)
(・∀・)ニヤニヤ
0675634
2008/06/25(水) 17:55:45問題は最後の一行(素因数展開の表示:ex.「5*5*2」)なんですけど・・・
配列作って素数を入れてかないと駄目ですかね?
#include <stdio.h>
void bunkai(int n,int i)
{
if(i==n){
printf("%d=%d\n",n,n);
}
else if(n%i==0){
printf("%d=%dx%d\n",n,i,n/i);
bunkai(n/i,i);
}
else
bunkai(n,i+1);
}
void main()
{
int n,i=2;
printf("整数:");
scanf("%d",&n);
bunkai(n,i);
}
0676デフォルトの名無しさん
2008/06/25(水) 17:58:210677デフォルトの名無しさん
2008/06/25(水) 18:01:48すいませんでした。。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7060.c
0678634
2008/06/25(水) 18:07:060679デフォルトの名無しさん
2008/06/25(水) 18:09:12[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7061.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Cygnus
[3.3] 言語: C
[4] 期限: 明日の17:00まで
[5] その他の制限: 2問同時で申し訳ありませんが、なるべくシンプルなものをお願いします。
0680デフォルトの名無しさん
2008/06/25(水) 18:09:130681637
2008/06/25(水) 18:22:06>>639
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7062.txt
きれいではなくて申し訳ないんだけど、double型の構造を元に2進変換したつもりです。
負の場合どうするのか分からなかったので、とりあえず符号だけつけてます。
Windowsならリトルエンディアンきめうちで処理をしてもいいのかもしれないけれど、一応。
0682637
2008/06/25(水) 18:25:58sizeof(double)やってたりやってなかったりで汚いんですが、
そもそも8byte以外だった場合にビット構造がどうなるのか知らないので8byteな環境
以外でどうなるかわかりませんです。
誰か教えてくれるとありがたいです。
0683デフォルトの名無しさん
2008/06/25(水) 18:27:22[1]回答レベル:検証済み?
[2] コード:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7062.txt
[3]環境 Linux?/Gcc/C
[4]コメント
きれいではなくて申し訳ないんだけど、double型の構造を元に2進変換したつもりです。
負の場合どうするのか分からなかったので、とりあえず符号だけつけてます。
Windowsならリトルエンディアンきめうちで処理をしてもいいのかもしれないけれど、一応。
0684637
2008/06/25(水) 18:38:29そうか、テンプレがw
>>613
[1]回答レベル:ある程度検証済み
[2] コード:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7062.txt
[3]環境 Windows/VC7/C およびLinux/gcc4.1.2
[4]コメント
きれいではなくて申し訳ないんだけど、double型の構造を元に2進変換したつもりです。
負の場合どうするのか分からなかったので、とりあえず符号だけつけてます。
Windowsならリトルエンディアンきめうちで処理をしてもいいのかもしれないけれど、一応。
正の整数についてはWindowsの電卓を使って検証しました。
小数についてもある程度検証してそれらしい結果を確認しています。
負数については、ごめんなさい><
0685デフォルトの名無しさん
2008/06/25(水) 18:48:0850 49 48 47 46
45 44 43 42 41
35 34 33 32 31
30 29 28 27 26
25 24 23 22 21
20 19 18 17 16
15 14 13 12 11
10 9 8 7 6
5 4 3 2 1
累計
を一次元配列のみを使ってどうやって書けますか?
0686デフォルトの名無しさん
2008/06/25(水) 18:49:07ずれてすみません
縦累計と横累計ということです><
0687デフォルトの名無しさん
2008/06/25(水) 18:57:14これと同じかな
http://pc11.2ch.net/test/read.cgi/tech/1212895856/850
http://pc11.2ch.net/test/read.cgi/tech/1212895856/920
このレスをしたの俺なんだが、ネタレスのつもりだったのに
感謝されて非常に困惑した記憶がある
0688デフォルトの名無しさん
2008/06/25(水) 18:59:59をみてCでftpクライアントのプログラムを作成しましたが
サンプルソースの224行目が実行されて
「150 Opening ASCII mode data connection」がサーバから返却された後
226行目が実行されて
「226 Transfer complete」がサーバから返却されるまで180秒かかってしまいます。
何故でしょうか?
サーバはredhatlinux上でProFTPD 1.3.1が動いています。
クライアントは上記サーバと兼ねています。下記のようなログがでます。
<-- 220 ProFTPD 1.3.1 Server (ProFTPD Default Installation) [127.0.0.1]
--> USER ユーザ名
<-- 331 Password required for ユーザ名
--> PASS パスワード
<-- 230 User ユーザ名 logged in
--> PORT 127,0,0,1,229,242
<-- 200 PORT command successful
--> RETR ファイル名のフルパス
ファイルの中身
<-- 150 Opening ASCII mode data connection for ファイル名のフルパス (13 bytes)
<-- 226 Transfer complete(これが出るのは1つ上の行が出力されてから180秒後)
--> QUIT
<-- 221 Goodbye.
0689デフォルトの名無しさん
2008/06/25(水) 19:05:26なぜここに?
とりあえずサーバのログおよびパケットキャプチャをしてみて原因探るしか。
0690デフォルトの名無しさん
2008/06/25(水) 19:07:50あ、同じですね><
明日提出なんですがさっぱりなんです
0691デフォルトの名無しさん
2008/06/25(水) 20:14:21>>685
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7063.c
0692デフォルトの名無しさん
2008/06/25(水) 20:24:00ありがとうございます
まだ入門編なので、複雑でよく分かりません><
これ以上簡単に表現できないのですか?
0693デフォルトの名無しさん
2008/06/25(水) 20:30:17理解しようとする気があるならちゃんと授業中に理解しようね
教員には「沢山勉強してわかるようになりました」って言っておけばなんとかなる
0694デフォルトの名無しさん
2008/06/25(水) 20:33:53すみません
自力でやってみます
ありがとうございました><
0695デフォルトの名無しさん
2008/06/25(水) 20:38:57もちろんそれが分かっていれば、そんなことせんでROW と COL で定義し
後はそれらを変更することでそれに応じて結果を出すソースのままにしときゃええがな
0696デフォルトの名無しさん
2008/06/25(水) 20:41:00[2] 問題: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7064.txt
[3.1] OS: WindowsXp
[3.2] コンパイラ名とバージョン:visualstdio 2008
[3.3] 言語:C
[4] 期限:6月29日
[5] その他の制限:なし。
よろしくお願いします.
0697デフォルトの名無しさん
2008/06/25(水) 20:45:22[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7065.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:無期限
0698デフォルトの名無しさん
2008/06/25(水) 20:48:41#defineは分かります!
tr,tcというのはトータルという事ですね。事故解決しました!
ありがとうございました
0699デフォルトの名無しさん
2008/06/25(水) 20:52:03[2] 問題文(含コード&リンク):
構造体person型を自己参照的構造体(下の例を参照)にし、配列に入力していたデータを単方向連結リスト構造に入力せよ。
ファイルからデータを入力したリストの先頭を引数として、入力した年齢と一致する人物をリスト内から検索し、該当人物がいれば表示するプログラムを作れ。
自己参照的構造体とは、構造体のメンバの中に自分と同じ型の構造体のポインタ変数を持つ構造体のことである。
単方向連結リスト構造とは、自己参照的構造体で次の要素をポインタを使って一定の方向に辿るデータ構造である。
(読む込むファイルの例)
入力するリストの先頭
1 20 田中
2 40 大田
3 35 井上
7 60 斉藤
4 23 佐藤
(自己参照的構造体)
struct person{
int no,age;
char name[40];
struct person *next;
}
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VisualStudio2005
[3.3] 言語:C
[4] 期限: できるだけ早くお願いします。
0700デフォルトの名無しさん
2008/06/25(水) 21:36:28http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7066.c
0701デフォルトの名無しさん
2008/06/25(水) 21:37:40http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7067.c
0702デフォルトの名無しさん
2008/06/25(水) 21:42:07[1]コード品質:模範解答(丸写ししても、独力で同じ品質のコード
書いても提出すると心証悪くします。)
[2]コード
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7067.c
[3]普通の C処理系でコンパイルできます。
[4]品質を落としたコードを提出して下さいね。(難しいですけど)
0703デフォルトの名無しさん
2008/06/25(水) 21:45:49http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7068.c
0704デフォルトの名無しさん
2008/06/25(水) 21:47:56なんでロダあらしてんの?ここのログも。
もうちょっと落ち着こw
0705デフォルトの名無しさん
2008/06/25(水) 21:52:02>[4] 期限: できるだけ早くお願いします。
じゃね?w
0706デフォルトの名無しさん
2008/06/25(水) 21:55:54意味が分からんけど >>702 は無関係
0707デフォルトの名無しさん
2008/06/25(水) 21:59:38ちょこちょこみてるけど>>700-703が同じソースだったので。
消しては次消しては次、と。なんじゃろ?
>>702は無関係なのですか。
0708デフォルトの名無しさん
2008/06/25(水) 22:06:500709デフォルトの名無しさん
2008/06/25(水) 22:10:02[2] 問題文(含コード&リンク)
2^nの計算
n=0〜30に対して、2~nを計算して出力する。結果の最大桁数は10進数10桁であるので、
long int型の変数をしようすること。
なお、再帰法を用いてもよい
実行例
2** 0=1
2** 1=2
2** 2=4
・
・
・
2**30=1073741824
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:明日まで
[5] その他の制限: (シンプルなプログラムでお願いします)
0710613
2008/06/25(水) 22:15:54(>>684)
ありがとーございますっ!
自分もcygwin(windows)でコンパイルして、
それなりに検証しましたが、十分機能しているようです!
あとは自分で一文ずつ動きを見て、内部表現を書き出し、
改良していこうかと思います。
えっと、doubleは64bitの8byteであっていたかと思います。
なんにせよ、ありがとうございました!!
0711デフォルトの名無しさん
2008/06/25(水) 22:15:57#include <stdio.h>
int main()
{
int i;
long int n = 1;
for (i = 0; i<=30; i++)
{
printf("2** %d=%d\n", i, n);
n *= 2;
}
return 0;
}
0713デフォルトの名無しさん
2008/06/25(水) 22:19:51ビットシフトの方がスマート
0714デフォルトの名無しさん
2008/06/25(水) 22:22:34シンプルなプログラムだから
これでいいのだ
0715デフォルトの名無しさん
2008/06/25(水) 22:22:36他人にケチつける前にソース書け
0716711
2008/06/25(水) 22:23:38言うのは勝手だが、せめてパッチぐらいおいてって欲しかった。
9,10c9
< printf("2** %d=%d\n", i, n);
< n *= 2;
---
> printf("2** %d=%d\n", i, 1 << i);
0717デフォルトの名無しさん
2008/06/25(水) 22:24:34勝手に自分基準でスマートとかぬかしてんじゃねーよw
0718711
2008/06/25(水) 22:24:400719デフォルトの名無しさん
2008/06/25(水) 22:25:310720709
2008/06/25(水) 22:26:55ありがとうございます。
0721デフォルトの名無しさん
2008/06/25(水) 22:28:470722636
2008/06/25(水) 22:38:06期限は後日6/26午後3時です。
課題の追加・補足はありません。
0723デフォルトの名無しさん
2008/06/25(水) 22:40:050724709
2008/06/25(水) 22:50:21できればお願いします。
[1] 授業単元: Cプログラミング演習
[2] 問題文(含コード&リンク)
2つの正の整数a,bを入力して、ユークリッドの互除法により最大公約数(GCM)を
求める。ユークリッドの互除法は次の手順により最大公約数を求める方法である。
(1)a,bの大きい方をa、小さい方bとする。
(2)aをbで割った余りをcとする。c=0ならばbが最大公約数となる。
(3)c≠0ならば
a←b
b←c
として、(2)に戻る。
実行例
入力データ:a = 88
b = 256
GCM = 8
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:明日まで
[5] その他の制限: (シンプルなプログラムでお願いします、ポインタなどはまだ使えません)
0725デフォルトの名無しさん
2008/06/25(水) 22:52:17(1)階乗を再帰を用いずに表示
という問題なんですが教えてください。
0726デフォルトの名無しさん
2008/06/25(水) 22:53:280727デフォルトの名無しさん
2008/06/25(水) 22:55:100729デフォルトの名無しさん
2008/06/25(水) 22:59:16ようするに "KOUKA" がどこに隠れてるか探せばいいんですよね?
0730709
2008/06/25(水) 23:12:49[1] 授業単元: Cプログラミング演習
[2] 問題文(含コード&リンク)
直角三角形の斜辺の長さをc、ほかの二辺の長さをa、bとしたとき、
a^2 + b^2 = c^2
が成り立つ。これを三平方の定理という。
2以上100以下の整数a,b、cに対して
a^2 + b^2 = c^2
を満たす組(a、b、c)をすべて求める。ただし、a≦b≦cとする。
max(a^2、b^2)≦ a^2+b^2
であるから、aとbの値を先に設定して、cの値をmax(a、b)から1ずつ増やし
a^2 + b^2 = c^2 (解あり)
または
a^2 + b^2 < c^2 (解なし)
となるまで変化させて求めればよい。
なお、cの値を先に設定して、aとbを求める方法もある。
実行例
a=3 b=4 c=5
a=5 b=12 c=13
a=6 b=8 c=10
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:明日まで
[5] その他の制限: (シンプルなプログラムでお願いします、ポインタなどはまだ使えません)
0731デフォルトの名無しさん
2008/06/25(水) 23:14:00[1]回答レベル:検証済み
[2] コード:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7069.txt
[3]環境 Windows/VC7/C およびLinux/gcc4.1.2
[4]コメント
ずらす方向の指定とかローテーションの必要性が明記されていなかったので
解が出た方法だけ。
すごいぞ!東京工科万歳!
0732636
2008/06/25(水) 23:14:43はい、そうですお願いします。
(例え)
暗号文:huisdfhnauid
アスキーコード1行ずらし:oujafkadmioafa これは×
アスキーコード1行ずらし:KOUKAkiasdfkao これは「KOUKA」が含まれているので複合化成功
この段階でアスキーコードをずらす処理を終了して、複合化結果の「KOUKAkiasdfkao」を表示する。
という題意です。
0733デフォルトの名無しさん
2008/06/25(水) 23:17:09[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7070.txt
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler
[3.3] C++
[4] 期限:6/27
[5] その他の制限:始めたばかりですが特に制限はありません。すみません、どうか宜しくお願いします
0734トランスレータ?ないない
2008/06/25(水) 23:20:41ばかしょうじきに。
#include <stdio.h>
int main()
{
int a, b, c;
for (a = 1; a <= 100; a++)
{
for (b = a; b <= 100; b++)
{
for (c = b; c <= 100; c++)
{
if (a*a + b*b == c*c)
{
printf ("a=%d b=%d c=%d\n", a, b, c);
}
}
}
}
return 0;
}
0735636
2008/06/25(水) 23:21:18ありがとうございます!!
それにしても動作させてみて笑いました、バレバレですねwww
まさかこんな痛い内容とは思いませんでした。
0736デフォルトの名無しさん
2008/06/25(水) 23:23:05> 例えば「ABC]という文をアスキーコードを1つ後にずらすと「BCD」となる。
> このずらした数を総当りで探索すればよい。
KOUKA というなら Kが2つあるわけだから、当然ずらす前も
その該当の5文字には同じ文字が1文字目と4文字目にあるわけだが
暗号文:huisdfhnauid
ん〜〜〜・・・、小文字と大文字両方含まれる?
0737731
2008/06/25(水) 23:23:56その例を見ると俺が作ったの全然ダメかもしれない。
1行ずらしとやらを行うと文字数増えるの?
あと問題付属のソースコードが構文エラーありまくりでした。
>>735
とおもったらこれでいいのかよ!
0738636
2008/06/25(水) 23:27:13あ〜それは例えの暗号なので解けない&解はないです。
暗号文自体は「KOUKA]の文字列が入っていれば複合化成功なので、
大文字だけ、小文字だけ、大小文字混合のどれでも大丈夫だと思います。
とくに指示はなかったので
0740トランスレータ?ないない
2008/06/25(水) 23:36:05入力方法が記載されていなかったのでカンマ区切りで入力するようにしました(ex. 4,24)
#include <stdio.h>
int main()
{
int ia, ib;
int a, b, c;
scanf("%d,%d", &ia, &ib);
if (ia >= ib) {
a = ia; b = ib;
}
else {
a = ib; b = ia;
}
c = a % b;
while(c != 0)
{
a = b;
b = c;
c = a % b;
}
printf("入力データ:a = %d\nb = %d\nGCM = %d\n", ia, ib, b);
return 0;
}
0741デフォルトの名無しさん
2008/06/25(水) 23:39:48[2] 問題文(含コード&リンク):固定長テキスト形式のファイルの内容を構造体に読み込むプログラムを作成しなさい.
[3] 環境
[3.1] Windows
[3.2] VC 6.0
[3.3] 言語: C
[4] 期限: 6/26 12:00
[5] その他の制限: 固定長テキスト形式のファイルの内容を構造体に読み込むプログラムを作成しなさい
0742デフォルトの名無しさん
2008/06/25(水) 23:42:43ファイルのレイアウト、もしくは構造体のレイアウトを提示すべきだと思う。
0743デフォルトの名無しさん
2008/06/25(水) 23:50:210744デフォルトの名無しさん
2008/06/25(水) 23:54:491
1文字ずつチェック
ヒットしたらカウンタ++
2
1行ずつチェック
ヒットしたらカウンタ++
0745デフォルトの名無しさん
2008/06/25(水) 23:55:13すいません。
typedef struct{
int num;//出席番号
char class;//クラス
char name[14];//名前
}meibo;
構造体はこんな感じです。
ファイルには最大10人分のデータがあります。
よろしくお願いします
0746デフォルトの名無しさん
2008/06/25(水) 23:57:04っつか、暗号文すべてを復元したのを比較するよりも
KOUKAを暗号化して、その暗号化されたものを含む場合で
判断した方が、暗号化する文字数を減らせないか?
0747デフォルトの名無しさん
2008/06/26(木) 00:13:32ううう…どうにも思い浮かばないんだな。
だからここのスレに質問してるんだな。
プログラムお願いしますなんだな…。
0748デフォルトの名無しさん
2008/06/26(木) 00:15:23http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7061.txt
0749デフォルトの名無しさん
2008/06/26(木) 00:17:27[2] 問題文(含コード&リンク)
問題:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7071.txt
サンプル:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7072.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:VisualStudio2005
[3.3] 言語:C++
[4] 期限:2008年6月26日12:00まで
[5] その他の制限
:問題の仕様、アルゴリズムに従うこと。
問題が長いですが、どうかよろしくお願いします。
0750デフォルトの名無しさん
2008/06/26(木) 00:20:08[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7073.txt
[3](1)LINUX
(3)C
[4]6月28日
[5]関数は使わず if for などの文だけでお願いします。
前回も投稿させてもらったのですが
桁数が3桁 4桁と増える場合にスペースを入れるという条件があるのを書き忘れてました
どなたかお願いします。
0751デフォルトの名無しさん
2008/06/26(木) 00:25:53http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7074.c
0753デフォルトの名無しさん
2008/06/26(木) 00:53:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7075.c
0754デフォルトの名無しさん
2008/06/26(木) 00:59:23http://pc11.2ch.net/test/read.cgi/tech/1212895856/961
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6960.c
0755デフォルトの名無しさん
2008/06/26(木) 01:02:07減らせますね。そのように作ってコードを載せてからいいましょうよ。
0756デフォルトの名無しさん
2008/06/26(木) 01:08:35ありがとうございます!
soremisitemo>>753hanyuuryokunagai…。
0757デフォルトの名無しさん
2008/06/26(木) 01:09:23> コードを載せてからいいましょうよ。
はぁ?コードを書いたわけでもないお前に言われたくねーよ
お前こそ言うくらいなら書けよ
0758デフォルトの名無しさん
2008/06/26(木) 01:12:25strcmp使わないでわざわざ効率悪い関数自作するのはなんで?
0759デフォルトの名無しさん
2008/06/26(木) 01:14:26http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7076.c
>>756
名前の入力が面倒なら、入力する名前を1行ずつに表示している部分をコピーして
入力受付の場面で貼り付けてやれば、連続して改行ごとに区切って取り込んでくれるよ。
不要なら後は何も入力せず改行を連打。
0761デフォルトの名無しさん
2008/06/26(木) 01:16:44お前がコードを書けよw
0762デフォルトの名無しさん
2008/06/26(木) 01:19:02> strcmp使わないで
使ったのをお前が書けば良いだろ、果たして うまく いくかな?w
口先だけってのはそういうことだ。
0763731=755
2008/06/26(木) 01:19:270764デフォルトの名無しさん
2008/06/26(木) 01:24:48それがstrcmp使わないでnamecmpを使う理由だと思っていいのかな?
strcmpじゃ比較がうまくいかないと。
0765デフォルトの名無しさん
2008/06/26(木) 01:31:080766デフォルトの名無しさん
2008/06/26(木) 01:32:52あ、もしかしたらstrncmpと勘違いしてるかも?
strcmpは完全一致したときだけ0返すお。
namecmpが桁数チェックとかしてるのって
strncmp("abc", "abcd", 3)が0返す挙動に対する考えに見える。
違ったらごめんね。
ただ、だからといってstrcmp使えよとは言わないけどなあ。
あくまでも宿題やってるうちは車輪の再発明万歳だと思うし、
俺が教授なら努力賞あげる。
0767デフォルトの名無しさん
2008/06/26(木) 01:33:230768デフォルトの名無しさん
2008/06/26(木) 01:34:46ありがとうございます
申し訳ないんですが、
何故 printf("%*c ",w,0x20); の"%?"は1つしかないのに後ろに2つ値があるんですか?
普通は printf("%d",12);みたいな感じで1対1じゃないんでしょうか?
ショボイ質問ですが分からないので教えて下さい。
0769デフォルトの名無しさん
2008/06/26(木) 01:35:230770デフォルトの名無しさん
2008/06/26(木) 01:36:54<string.h>使わないならともかく、使ってるんじゃ再発明もないと思うがなあ
0771デフォルトの名無しさん
2008/06/26(木) 01:38:35http://www.geocities.jp/ky_webid/c/040.html
適当にぐぐっただけだけど最小フィールド幅の項を参照するといいよ。
キーワードは「出力変換仕様」。scanf系に使うのは「入力変換仕様」ね。
0772デフォルトの名無しさん
2008/06/26(木) 01:40:35その%dの間にある * は、%3d といったように、最低の桁数を指定できる書式。
後ろの引数には * で桁数を指定するのに w を用いている
最初に n から桁数を求めて w に入れている
この手法が駄目なら、wの分だけfor分を使ってスペースを入れるとか
0773デフォルトの名無しさん
2008/06/26(木) 01:58:30そうだったんですかありがとうございます
問題の方なんですが
例えばn=10なら
2 3 4 5 6 7 8 9 10 11 12………98 999 1000 1001
と言うように
二桁の場合は2回スペース
3桁の場合は3回スペース
4桁の場合は4回スペース
というようにしたいのですがその場合も教えて下さいませんでしょうか?
大変すいません…
0775デフォルトの名無しさん
2008/06/26(木) 02:07:26んじゃ、そのときの最大公約数の桁数を求めて、最小限必要な桁数 w との
差をとって繰り返して入れてみては?さぁ考えてみよー
0776デフォルトの名無しさん
2008/06/26(木) 02:11:10各列幅がnの桁数 + 1になるようにしたいなら分かるんだけどね
0777デフォルトの名無しさん
2008/06/26(木) 02:14:50自分が思った通りじゃないからという理由だけで。相手が既に
こうだと言っているにも関わらず、自分はそれに対して
こうするね、という意見を出すから、お前人の話聞いてんのかっ!?
はぁ?俺はそんなことを聞いてんじゃないよって言い返される。
孤立する人間のパターンそっくりだな。
0778デフォルトの名無しさん
2008/06/26(木) 02:18:410779773
2008/06/26(木) 02:22:40ますますわかりません…orz
>>776
上に書いた例はスペースの個数が反映されなく全て1回のスペースで書かれてしまいましたが
言おうとしてることはまさにそうです
0780デフォルトの名無しさん
2008/06/26(木) 02:24:240781デフォルトの名無しさん
2008/06/26(木) 02:35:19自己紹介乙、そういう言い返しをする時点でバレバレなんだよ
0782デフォルトの名無しさん
2008/06/26(木) 02:36:16[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7077.txt
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 来週まで
[5] その他の制限: Which文は×
おねがいします
0783デフォルトの名無しさん
2008/06/26(木) 02:38:05[1]品質:未検証
[2]コード:直接記入
void main(void){
double n,i,j,a,b,tmp;
do{printf("n=(n>=3)");fscanf("%d¥n",&n);}while((n<3)||(n>=1000));
fprintf("%3 s ","");
for(i=3;i<=n;i++)printf("%-3d",i+1);
printf("¥n");
for(i=2;i<n;i++){
sprintf("%3d:",i);
for(j=3;j<i+1;j++)printf("%3 s","");
for(j=i+1;j<=n;j++){
a=i;b=j;
whlie(a!=0){tmp==b % a;b==a;a==tmp;}
fprintf("%-3d",b);
}
printf("¥r");
}
return 0;
}
[3] Windows Visual C++ 6.0 Cモードコンパイルを想定
[4]すんごく難しい課題でした。ユークリッドのアルゴリズムは
良くわかりません。参考にどーぞ
0784デフォルトの名無しさん
2008/06/26(木) 02:38:29言ってたことは 各幅が nの桁数 + 1 です。
0785デフォルトの名無しさん
2008/06/26(木) 02:41:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7078.c
>>778 >>776
クソースも書かずにクソレスとな?
0786デフォルトの名無しさん
2008/06/26(木) 02:43:18マジでありがとうございます。
マジで感謝します。
0787デフォルトの名無しさん
2008/06/26(木) 02:44:020788デフォルトの名無しさん
2008/06/26(木) 02:47:19>>773の要求とは全く違うようにしか見えないが、それで本当にいいの?
0789デフォルトの名無しさん
2008/06/26(木) 02:47:55> それで本当にいいの?
またお前か・・・自分がレスしている相手のレスが見えんのか?
0790デフォルトの名無しさん
2008/06/26(木) 02:48:44>>776 → >>777 → >>779
どっちもスタートは俺なんだけどさ、どうしたらいい?w
過去にも割と噛み付かれてるんだよねwww
>>785
クソレスじゃなくて確認しただけだお。ソース作成乙。
0791デフォルトの名無しさん
2008/06/26(木) 02:52:040792デフォルトの名無しさん
2008/06/26(木) 02:52:55お前には聞いてねーよ、引っ込んでろカス
0793デフォルトの名無しさん
2008/06/26(木) 02:55:12void main ひょっとしてギャ(ry
0794デフォルトの名無しさん
2008/06/26(木) 02:55:15IDがないからグチャグチャだぜ…
0795デフォルトの名無しさん
2008/06/26(木) 02:56:31誰でも同一人物認定して噛み付くからな。
っつか、なんか最近必死な奴が紛れ込んだよなw
新学期、4月を境に分かりやすいw
2ちゃん慣れしてないだろ、こいつ?
前々からこのスレを見ている人にはバレてんぞ、ヘタレ小僧
もちっと 煽り耐性 を身につけてから出直せ。
でなきゃ、こんな場所じゃまずやっていけないよ。
お前みたいな揚げ足取りもいるからな。
0796デフォルトの名無しさん
2008/06/26(木) 03:00:570797デフォルトの名無しさん
2008/06/26(木) 03:02:07> 気に入らない質問やその他や発言はスルーの方向で。
おいっ、新入りファビョり厨、↑が読める?読めない?w
ttp://jp.youtube.com/watch?v=RIL28wqOQGA
ファビョり厨「読めないわけないだろっ!お前日本語知ってのかっ!?日本語でおk」
ってなるのがオチだからな。触らぬ神にたたり無し、日本語が読めない奴は以後スルーで。
ここでは時には エスパー も必要さ、(チェリー)ボーイ?
あと、特徴がモロに出てるよ。余計な一言、罵倒。バカ、アホ、カスなど
陰湿に、不必要に相手を煽る、罵る。その時点でバレてるって言っただろ?
人格、人間性が言動に出ているとあれほど忠告したのに、駄目な奴は何をやっても駄目なんだな。
0798デフォルトの名無しさん
2008/06/26(木) 03:04:210799デフォルトの名無しさん
2008/06/26(木) 03:05:57>>34 >>37
とファビョることですw
0800デフォルトの名無しさん
2008/06/26(木) 03:08:32全部、お前が言うなwってことだらけじゃねーかw
0802デフォルトの名無しさん
2008/06/26(木) 03:12:230803デフォルトの名無しさん
2008/06/26(木) 03:13:34こんな時間にからかって遊ぶな
0804デフォルトの名無しさん
2008/06/26(木) 03:14:50うpして2分後のレスで実行して動作チェックまで完璧にしたと思うのか?
ただソースがあがってるのを見て御礼しただけの可能性の方が高いだろ。
0805デフォルトの名無しさん
2008/06/26(木) 03:16:47はあくした
0806デフォルトの名無しさん
2008/06/26(木) 03:19:34> うpして2分後のレスで実行して動作チェックまで完璧にしたと思うのか?
あのソースをコンパイルして実行したのなら、今になってそれすら言っても
説得力ねーよ・・・またお前は憶測で物を言ったな。相手がしていないという証拠は?
何もかもがお前の思い込みだって気づけよ。
0808デフォルトの名無しさん
2008/06/26(木) 04:08:02>>708
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7079.c
0809デフォルトの名無しさん
2008/06/26(木) 04:49:55アンカー+直リン||直ペーストだと
通りすがりの女の娘に声をかけて、股間を指差して見せて喜ぶ
露出狂のオヤジみたいで、スレが荒れる傾向にある。
やはり、コード品質とかコメントとか、書いてやったほうが
いいんではないかい?
0810デフォルトの名無しさん
2008/06/26(木) 05:03:55回答者自身のソースが無駄になるだけ
てか、自分が○○だから他人も○○だ、なんて考え持つなよ
0811デフォルトの名無しさん
2008/06/26(木) 05:11:09お前国語1だったろwww
0812デフォルトの名無しさん
2008/06/26(木) 05:35:17初心者レベルに落としたクソース ということで免罪符を貼ってます故
意見されても訂正する気がござらんので、言うくらいなら
訂正して賜う
0813デフォルトの名無しさん
2008/06/26(木) 05:55:02間違った方向に勘違いした初級者レベルってところだ。
0814デフォルトの名無しさん
2008/06/26(木) 06:06:17> 間違った方向に勘違いした
お前が理解できないだけだろ。妬み僻みをあらわす発言がしてたのお前だろ?w
0815デフォルトの名無しさん
2008/06/26(木) 06:07:05> 初級者レベル
言うまでもない、無理に初心者っぽくしているとは言え
何が初心者か?なんて基準がないから。
にしても、貶しすぎ。お前のレベルの低さが露呈しているぞ。
0816デフォルトの名無しさん
2008/06/26(木) 06:07:190817デフォルトの名無しさん
2008/06/26(木) 06:08:41何か言わなきゃ気が済まないんだよな、お前って。
マジうざい。だから周りから嫌われているって気づけよ、基地外。
そこまで言うなら、お前は必ずソースを書けよ、意見をする前に。
そして意見をするなら。間違いの指摘という指摘すらせずに
そんなのは、って自分の主観でしか言わんだろ。
あれだろ、意見をすると自分の無知を露呈するから怖くて
そんなのはと自分が気に入らなきゃ蹴るタイプだろ?
そんな奴は人生を失敗した負け組みくらいだぞ。
0818デフォルトの名無しさん
2008/06/26(木) 06:26:08前に、LISTの課題で、CSV形式とバイナリー形式での保存のときに
必死に噛み付いていて、結局お前が答えずに口先だけで負けたから
悔しいんだろ?初心者レベルに落とすってのがどれだけ難しいか
一度知ってしまうと、便利なものは使わずにはいられないもんだぞ。
ましてや、それが費用が掛かるわけでもなく、単にコードを記述するだけ。
お前のような他人を貶すような口出しをする奴は、人間としてもレベルが高くないどころか
ワレこそはと、自分の主観や主張のみを押し切るタイプだろ。
0819デフォルトの名無しさん
2008/06/26(木) 06:26:21どなたか>>749お願いできないでしょうか
0820デフォルトの名無しさん
2008/06/26(木) 06:28:21http://pc11.2ch.net/test/read.cgi/tech/1208268461/80-87
http://pc11.2ch.net/test/read.cgi/tech/1208268461/402-411
何か言うと、それに反応せずにはいられない一言居士。分かり易いだろ?
この世に後10年くらい生きて、様々なタイプの人間を見て観察してみろ。
自分という人間がどういったタイプに当てはまるか、分かるから。
この世に自分は唯一無二とは言え、大まかに性格や行動パターンってのは
過去に存在した何かに準ずるものがあって、分かりやすいんだよw
0821デフォルトの名無しさん
2008/06/26(木) 06:32:30一度今までの自分の書き込みを冷静振り返ってみることをお勧めするよ。
0822デフォルトの名無しさん
2008/06/26(木) 06:33:24冷静 → 冷静に な。
0823デフォルトの名無しさん
2008/06/26(木) 06:34:01相手に意見をするなら、それのどこが客観的にかつ
動作する上で問題か、指摘しろ。
もっとこう、効率の良いものはあるよといわれても
所詮このスレは初心者向け。標準ライブラリを用いても
それを使うなという注文もあるが、確かにそれに応じずとも
良いといえば良いが、ここで初心者をバカにしに来ているなら
性格が捻じれてんぞ。まぁ、過去にあんたが誰かにやられたのかも
しれんが、そんなの知ったこっちゃねーだろ、第三者には。
無関係な奴を罵倒するなよ?なぁ、最後に必ず罵倒レスを入れなきゃ
気が済まないあんた?
0824デフォルトの名無しさん
2008/06/26(木) 06:46:270825デフォルトの名無しさん
2008/06/26(木) 06:50:58> 気に入らない質問やその他や発言はスルーの方向で。
日本語も読めない奴が、コードを読解する能力があるとも思えん。
0826デフォルトの名無しさん
2008/06/26(木) 07:34:56http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7080.c
0827デフォルトの名無しさん
2008/06/26(木) 07:55:18いい加減、新学期から来ているなら3ヶ月以上経っているんだから
このスレの基本的な流れを理解しようや?お前一人が回答者じゃないんだぞ。
0828デフォルトの名無しさん
2008/06/26(木) 08:02:22>気に入らない質問やその他や発言はスルーの方向で。
0829デフォルトの名無しさん
2008/06/26(木) 09:46:21[2] 問題文:入力された文字列(char型配列に格納)について、1文字ずつその文字の種類を示し、最後に文字数を表示するプログラムを作成せよ。
文字の種類は大文字、小文字、数字、その他の文字の4種類とすること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2008年06月27日いっぱい
[5]配列と文字列まで習いました。ポインタや構造体は習ってません。
0830デフォルトの名無しさん
2008/06/26(木) 09:52:25#include <ctype.h>
int main(void)
{
char str[256];
int i;
scanf("%s", str);
for(i=0; str[i]; i++) {
if(isupper(str[i])) printf("%c : 大文字\n", str[i]);
else if(islower(str[i])) printf("%c : 小文字\n", str[i]);
else if(isdigit(str[i])) printf("%c : 数字\n", str[i]);
else printf("%c : その他の文字\n", str[i]);
}
printf("文字数 : %d\n", i);
return 0;
}
0831デフォルトの名無しさん
2008/06/26(木) 10:07:161] 授業単元:Cプログラミング
[2] 問題文:2つのchar型配列x[],y[]に格納された文字列を入れ替えるプログラムを作成せよ。ただし入れ替え処理には関数swap_array(char [],char [])を作成して用いること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
なのですができたらでいいので宜しくお願いします。
0832デフォルトの名無しさん
2008/06/26(木) 10:24:34解決済みみたいだけど・・・
ascii文字コード http://e-words.jp/p/r-ascii.html
#include <stdio.h>
int main()
{
char STR[256];
int i;
printf("文字列を入力してください。\n");
scanf("%s",STR);
for(i=0; STR[i]!='\0'; i++){
if(65 <= (int)STR[i] && (int)STR[i] <= 90)
printf("%c は大文字です。\n",STR[i]);
else if(97 <= (int)STR[i] && (int)STR[i] <= 122)
printf("%c は小文字です。\n",STR[i]);
else if(48 <= (int)STR[i] && (int)STR[i] <= 57)
printf("%c は数字です。\n",STR[i]);
else
printf("%c はその他の文字です。\n",STR[i]);
}
printf("文字数は %d です。\n",i);
return 0;
}
0833デフォルトの名無しさん
2008/06/26(木) 10:25:38swap_array(char a[],char b[])
{
char *tmp;
tmp = malloc(strlen(a)+1);
strcpy(tmp, a);
strcpy(a, b);
strcpy(b, tmp);
free(tmp);
}
0834デフォルトの名無しさん
2008/06/26(木) 10:37:20文字列x(20字まで)?適当な文字列
文字列y(20時まで)?適当な文字列その2
関数swap_array()を呼び出しました
入替後のx:適当な文字列その2
入替後のy:適当な文字列
となるような結果にしたいのですが。
0835デフォルトの名無しさん
2008/06/26(木) 10:41:35[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7081.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日の17:00まで
[5] その他の制限: なし
お願いしまSUm(__)m
0836デフォルトの名無しさん
2008/06/26(木) 10:41:39ですが,どうしたいのですか?
0837デフォルトの名無しさん
2008/06/26(木) 10:43:49mainも書けってことか?
int main(void)
{
char x[21], y[21];
printf("文字列x(20字まで)?");
scanf("%s", x);
printf("文字列y(20字まで)?");
scanf("%s", y);
puts("関数swap_array()を呼び出しました");
swap_array(x, y);
printf("入替後のx:%s\n", x);
printf("入替後のy:%s\n", y);
return 0;
}
0838デフォルトの名無しさん
2008/06/26(木) 10:46:29できればswap_array関数だけでなく、その関数を呼び出すプログラム含め全体のソースが知りたいのですが。
0839833
2008/06/26(木) 10:48:3220時が門限なら
void swap_array(char a[],char b[])
{
char tmp[21];
strcpy(tmp, a);
strcpy(a, b);
strcpy(b, tmp);
}
でもいいや
0840デフォルトの名無しさん
2008/06/26(木) 10:49:410841デフォルトの名無しさん
2008/06/26(木) 10:50:38#include <stdio.h>
int main(void){
char moji20[21];
wile(1){
printf("入力データ:");
fflush(stdout);
scanf("%s", moji20);
printf("出力データ: %d 文字", strlen(moji20));
}
}
0842デフォルトの名無しさん
2008/06/26(木) 11:04:50ちなみに使っている関数はstringcat(char[],char[])で呼び出すときに連結後の文字数が20字を超えたら「連結付加」と表示するようにしたのですが
0843デフォルトの名無しさん
2008/06/26(木) 11:07:11つなげる前に文字列の文字列xとyの文字数を調べればいいだけのような
0844デフォルトの名無しさん
2008/06/26(木) 11:17:42ありがとうございました。
4行目while(1){でしたYO!
0845デフォルトの名無しさん
2008/06/26(木) 11:48:230846デフォルトの名無しさん
2008/06/26(木) 14:26:03[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7082.txt
[3]
[3.1] LINUX
[3.3] C
[4]6月28日
[5]関数は使わず if forなどの文でお願いします
0847デフォルトの名無しさん
2008/06/26(木) 14:40:21[2] 問題文:
インターネットに接続されたPC同士で、同一のアプリケーションの状態を、
同期・共有させるソフトウェアの作成
つまりはフォトショップを持っている人同士で、高度なお絵かきチャット
を出来るようにするソフトみたいな。
[3] 環境
[3.1] OS: Windows
[3.2] VC++ 2005
[3.3] 言語: どちらでも可
[4] 期限: 7月1日
[5] その他の制限: 特になし
どういったことをすればそういうことが実現出来るのか、
についても可能であればご教授賜りたいです
0848デフォルトの名無しさん
2008/06/26(木) 15:20:01典型ケース確認済/多ケース確認済/リファクタリング済(変数の使い方
の見直し、フローの再設計etc)≒清書)
[2]コード:アップローダーを使う場合でも、核心部分だけでも書く。
書式は多少乱れても良いが、ギチギチに圧縮はしない。
アップローダー上のファイルが保存される保証は無いから。
これについては質問者も同様で、質問の概要でも書いておくこと。
別の組織が運営しているサイトへのリンクポインタ配列のように
掲示板を利用するのはやはりマナー違反(おとり潰しの対象に
なりますよ)
[3]環境:コンパイルに使用したコンパイラ、OSなど。特に
C/C++のどちらのモードでコンパイルしたのかは必ず
[4]コメント/説明
0849デフォルトの名無しさん
2008/06/26(木) 15:27:57一応できました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7083.c
0850デフォルトの名無しさん
2008/06/26(木) 16:46:50[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7084.txt
・部分木p から最小のキーを持つノードを削除した部分木を返す関数deleteMinNode を作成せよ.
・上の資料等 を参考にして,コマンドライン引数で指定したキーを持つノードを2 分探索木から削除するプログラムを作成せよ.
ただし,プログラム引数の「整数1 整数2 …」の各値をキーに持つノードを順に挿入して2 分探索木を生成し,
deleteNode 関数を使ってコマンドライン引数の「X1 X2 …」の各値をキーに持つノードを順に2 分探索木より削除する.
また,次のようなプログラム実行例を想定している.
% ./a.out 9 5 11 3 4 15 10 -- 4 5 9
入力データ [9 [5 3 _ 4] _ ] [ 11 10 15 ] ]
deleteNode(4)
==> [9 [5 [ 3 _ _ ] _ ] [ 11 [10 _ _ ] [ 15 _ _ ] ] ]
deleteNode(5)
==> [9 [ 3 _ _ ] [ 11 [ 10 _ _ ] [ 15 _ _ ] ] ]
deleteNode(9)
==> [10 [ 3 _ _ ] [ 11 _ [ 15 _ _ ] ] ]
%
% ./a.out 9 5 11 3 4 15 10 -- 8
入力データ [9 [5 3 _ ] [ 11 _ 15 ] ]
deleteNode(8)
deleteNode: 指定キーのノードがありません
[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まで] または [無期限] のいずれか)
6月30日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
0851デフォルトの名無しさん
2008/06/26(木) 17:46:44[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7085.zip
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:28日(金)17:00まで
宜しくお願いします。
0852デフォルトの名無しさん
2008/06/26(木) 17:52:460853デフォルトの名無しさん
2008/06/26(木) 18:04:54期限28日×→27日○ でした(;゚Д゚)
0854デフォルトの名無しさん
2008/06/26(木) 18:31:54遅くなりましたがありがとうございます!
思ったんですが制限の20回を外して無制限にするにはどうすればいいのですか?
0855デフォルトの名無しさん
2008/06/26(木) 18:35:51作っては見たもののCOM思考とかあまり題意に沿えなかったかも(+激弱)。
役に立つかわかりませんが参考程度にでもなれば。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7086.txt
0856 ◆DuoCt8/SKk
2008/06/26(木) 18:58:32>>855
回答ありがとうございました.しかしながら以下のようなエラーが出てしまい困っています.
どうしたらいいでしょうか?
c:\program files\microsoft visual studio\vc98\include\string.h(4) : warning C4182: #include のネスト レベルは 363 です; 無限再帰の可能性があります。
c:\program files\microsoft visual studio\vc98\include\string.h(4) : fatal error C1076: コンパイラの制限 : ヒープの領域を使い果たしました; 上限を設定するために /Zm オプションを使用してください。
0857デフォルトの名無しさん
2008/06/26(木) 19:19:05どなたかお願いできないでしょうか?
0858デフォルトの名無しさん
2008/06/26(木) 19:38:01返答ありがとうございます
でもすいませんが文字化けして見えないんですが…
0859デフォルトの名無しさん
2008/06/26(木) 19:42:15エンコード→Unicode
0860855
2008/06/26(木) 19:43:13エラーメッセージは「ヘッダが繰り返し読み込まれて…」と言ってるのだけど
環境違うんでどうするのがいいかはまでは分からんです。
ヘッダ読み込んでるのは標準関数のmalloc,memset,memcpy,atoi使うためなんで
それらが使えるように適当に適当にヘッダ削ったり追加したりして下さいな。
もしくはvisual studioに詳しい方、お願いします。
0861 ◆DuoCt8/SKk
2008/06/26(木) 20:01:22そうだったのですか,返事ありがとうございました.
>>標準関数のmalloc,memset,memcpy,atoi
標準関数はまだ習ってません……どうしましょう……
図々しいお願いかとは思いますが,どなたか>>855さんのプログラムを修正しては頂けないでしょうか?
もし良かったらでいいので,よろしくお願いします.
0862デフォルトの名無しさん
2008/06/26(木) 20:05:36>>855のソースをgccでコンパイル出来ない人が
Visual-Studioのような高度なC環境をまともに扱えるかど
うかは極めて懐疑的
Windowsでも、BCC5.5とかCygWinのgccとか
MinGWのgccとかのCコンパイラを使うことをおすすめする。
0863デフォルトの名無しさん
2008/06/26(木) 20:10:47切符販売機の人?
0864デフォルトの名無しさん
2008/06/26(木) 20:14:29[2] 数字をキーボードから入力し、次に割る数を入力します。
最初の数字(suji1)が2番目の数字(suji2)で
割り切れるかどうかを判断するプログラムを作成しなさい。
注:最初の数字に大きい数を入力してください。
また、2番目の数字に0は入力しないようにしてください。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: cygwin gcc
[3.3] 言語:C言語
[4] 期限:今日中
急で悪いですが宜しくお願いします
0865 ◆DuoCt8/SKk
2008/06/26(木) 20:27:56すみません,stringのヘッダを消せばいけるのですがその標準関数で
エラーが出てしまうのです.あとVisualStdioは学校の指定みたいな
ものなので,他の開発環境とか全然知らないんです.
>>863
はい
0866デフォルトの名無しさん
2008/06/26(木) 20:38:16[2] 問題文:循環小数を検出するとき、繰り返される範囲を{,}でくくり出すプログラムを作れ
例:37/330 = 0.1121212・・・ = 0.1{12}
[3] 環境
[3.1] OS: Windows XP SP2
[3.2] コンパイラ名とバージョン: VC++2007
[3.3] 言語: C++
[4] 期限: 6月27日 午前11時まで
お願いします
はい,あります.
0869デフォルトの名無しさん
2008/06/26(木) 21:19:49http://www.nicovideo.jp/watch/sm3771420
0870デフォルトの名無しさん
2008/06/26(木) 21:20:49ちょっと横槍ですまぬが、
その環境の精度の範囲内で良いんかな?
自分ところだと 1/31 は循環するが
精度の範囲内では循環しているように表示されない。
0.
032258064516129
032258064516129
0871デフォルトの名無しさん
2008/06/26(木) 21:21:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7089.c
環境の精度の範囲内で大丈夫です。
よろしくお願いします
0873デフォルトの名無しさん
2008/06/26(木) 21:28:230874デフォルトの名無しさん
2008/06/26(木) 21:39:55> 循環小数を検出するとき
して、どのように分数を指定するのかね?
適当に入力?それとも・・・1〜nまで総当り?
0875デフォルトの名無しさん
2008/06/26(木) 21:43:17問い2
cが0のとき。
(問題文中に「文字列str」とあるので、strは正しい文字列と仮定してよい。)
char *str_char(const char *str, int c)
{
for ( ; *str != c; str++) {
if (*str == '\0')
return (char *)str;
}
return ((char *)str);
}
0876デフォルトの名無しさん
2008/06/26(木) 21:47:40分数は適当に入力して、循環小数になる場合は{}でくくり出す感じです。
0878デフォルトの名無しさん
2008/06/26(木) 21:48:34[2] 問題文(含コード&リンク):2分木に関する問題
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7090.txt
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C++
[4] 期限:08年06月30日
[5]よろしくお願いします
0879デフォルトの名無しさん
2008/06/26(木) 22:48:051/977=0.[00102354145342886386898669396110542476970317297850562947799385875127942681
6786079836233367451381780962128966223132036847492323439099283520982599795291709314
2272262026612077789150460593654042988741044012282497441146366427840327533265097236
4380757420675537359263050153531218014329580348004094165813715455475946775844421699
0788126919140225179119754350051177072671443193449334698055271238485158648925281473
8996929375639713408393039918116683725690890481064483111566018423746161719549641760
4912998976458546571136131013306038894575230296827021494370522006141248720573183213
9201637666325486182190378710337768679631525076765609007164790174002047082906857727
7379733879222108495394063459570112589559877175025588536335721596724667349027635619
2425793244626407369498464687819856704196519959058341862845445240532241555783009211
8730808597748208802456499488229273285568065506653019447287615148413510747185261003
0706243602865916069600818833162743091095189355168884339815762538382804503582395087]
1/978=0.0[0102249488752556237218813905930470347648261758691206543967280163599182004
08997955]
0880864
2008/06/26(木) 23:05:13自分で解いてみましたが採点よろしくお願いします
0881デフォルトの名無しさん
2008/06/26(木) 23:10:31今日中だからガンバ
としかいいようがない。
方針はあってるが、
スペルミスなどが目につく
0882875
2008/06/26(木) 23:13:400883デフォルトの名無しさん
2008/06/26(木) 23:20:58[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7092.txt
[3]LINUX
[4]6月28日
[5]上記のプログラムを改定する形でお願いします。
よろしくお願いします。
0884867
2008/06/26(木) 23:23:09とりあえず範囲ではなく、繰り返す桁数を表示するプログラムを作ってみたのですが、
これをいじって範囲を表示できるようになるかご指導お願いします。
0885デフォルトの名無しさん
2008/06/26(木) 23:53:31[2] 問題文 文字列のコピーを実現する関数として,char *myStringCopy(char *destination, char *source)をプログラミングせよ.
ただし,コピーに失敗したときにはNULLを返し,成功したときにはdestinationを返すものとする.
自分で作った関数を使うこと.strcpyやstrncpyを使わないこと.
例を参考にすること(あくまでも参考例なのでそのままコピーしても動かない.)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7094.txt
[3] 環境
[3.1] OS: Windows/Linux/
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6/27(金)20:00
[5] その他の制限: 問題文にもありますが、strcpyやstrncpyを使わずにお願いします
0886デフォルトの名無しさん
2008/06/26(木) 23:57:24scanf("%s",...)で標準入力から読み込むとホワイトスペースで読み込みが停止するので
スペースを含めて読み込みたい場合は
fgets(speech,NMAX,stdin); とか
scanf("%[^\n]",speech); とかで読み込めばよろし
あとtypoに気をつけて
0887855
2008/06/26(木) 23:59:07入力は全てscanf()に変更(変更に伴うエラーチェックはしてない)
その他、必要なヘッダが<stdio.h>のみになるよう修正。
これで駄目なら私にゃ荷が重過ぎたってことで、他の方に御任せします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7095.txt
あとwarning C4182でググッたらなんか出てきたんで(リンク先の915-918辺り)
ttp://ir9.jp/prog/ayu/datlog/tech_cpp/1009071535/1009071535_04.html
未解決なら今後のためにも一読の上、再確認をお勧めしときます。
0888デフォルトの名無しさん
2008/06/27(金) 00:16:37[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7096.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6/28
[5] その他の制限:特になし
どなたかよろしくお願いします
0889デフォルトの名無しさん
2008/06/27(金) 00:19:15return a;
0890デフォルトの名無しさん
2008/06/27(金) 00:31:26いつもマクロだ
#define mMIN(a,b) ((a > b)?b:a)
0891144
2008/06/27(金) 01:11:42[2] 問題文(含コード&リンク):C言語で自動車エンジンの走行距離と走行時間による熱効率と燃費の算出
(エンジンのパワーと単位時間に消費される燃料の重さを入力して走行距離と時間に応じた熱効率を算出する。燃費は熱効率と逆数の関係にあるのでそこから求められる。)
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2007
[3.3] 言語:C
[4] 期限:2008/6/27
[5] その他の制限:課題に対する制限は特になし。
0892144
2008/06/27(金) 01:12:31今日大学で試しに作ってみたんだが、どうだろう?
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void){
int i,k,H,h;
double Ne,B,be,Fuel;
Fuel=50.0;
h=1;//h:走行時間
H=0;//総走行時間
Ne=24.6;//仮の値、//Ne:エンジン出力
B=8;//仮の値、//B:hだけ走ったときの燃料消費量
//be:正味燃料消費率
be=B/(Ne*h);
while(Fuel>=0){
Fuel=Fuel-B;
H=H+1;
be=B/(Ne*h);
printf("%ld\t%lf\t%lf\n",H,Fuel,be);
}
return(0);
}
ってかスレ違い??
0893デフォルトの名無しさん
2008/06/27(金) 01:13:21[2] 問題文(含コード&リンク):
2つのint型引数を受け取って、小さいほうの値を戻す関数minを作る
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7096.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6/28
[5] その他の制限:特になし
どなたかよろしくお願いします
と書いて欲しかったな
0894デフォルトの名無しさん
2008/06/27(金) 01:13:38素早い返答ありがとうございます
申し訳ございませんが何故 scanf("%[^\n]",speech); でおkなのでしょうか?
説明していただけないでしょうか?
0895デフォルトの名無しさん
2008/06/27(金) 01:15:13俺は興味無いからやらんが、微分方程式解いた方が早いんじゃね。
0896144
2008/06/27(金) 01:35:15微分方程式ですか?
とりあえず発表に使うのに時間ないから一番簡単に文献に与えられてた式を用いたんですけど。
そっちのほうがいいんですかね?
0897デフォルトの名無しさん
2008/06/27(金) 01:49:50意味合いで言ったらscanf("%[^\n]",...) は
\n以外の文字の集合を標準入力から読み込む
\nが来たら読み込みを終了する
がよく考えたらもしかしたら意図どおりに動作しない処理環境があるかもしれん
fgetsの方つかっといてくださいまし
変換指定 %[ の他の使い方の例としてはscanf("%[0-9]",buf); とかで標準入力から 123abc と
入力すると bufに 123 を格納する
詳しくは
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/scanf.3.html
この辺みてください
0898デフォルトの名無しさん
2008/06/27(金) 02:02:05[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7097.txt
[3] 環境
[3.1] OS:WindowsXP
[3.3] 言語:C++
[4] 期限:6/28
[5] その他の制限:急ですいませんがよろしくお願いします。あと出来れば省略しすぎない形でお願いします。
0899デフォルトの名無しさん
2008/06/27(金) 02:15:26燃費って走行距離/消費燃料なんじゃないの?
それ以外の何かを検討しないといけないのなら式が欲しい。
0900デフォルトの名無しさん
2008/06/27(金) 02:52:30[2] 問題文(含コード&リンク):
実対称行列の固有値問題に対するJacobi法のプログラムを作成せよ。
※そして、5〜10次程度の実対称正方行列に対しプログラムを実行せよ
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日20時くらいまで
[5] その他の制限:
講義中に学んだJacobi法の手順は、
�@行列にGivens変換(A→A~=G^(-1)AG ( = G^tAG)を繰り返し行う
�A対角行列に近づける(非対角成分が一様に0に近づく)
�B対角成分が固有値である
なので、できるだけこの手順準拠でお願いします。
0901デフォルトの名無しさん
2008/06/27(金) 02:54:043と5の倍数でウルトラゴジラになるプログラム(ry
0902デフォルトの名無しさん
2008/06/27(金) 02:56:14の意味がよくわからん
0903デフォルトの名無しさん
2008/06/27(金) 03:12:340904900
2008/06/27(金) 03:46:02・Rutishauserの計算式
z = ( aqq - app ) / 2apq
t = sign(z) / ( |z| + √(1+z^2))
c = 1 / √(1+t^2)
s = ct
u = s / (1+c)
app~ = app - t*apq
aqq~ = aqq + t*apq
apq~ = aqp~ = 0
apj~ = ajp~ = apj - s( aqj + u*apj) ( j≠p,q )
aqj~ = ajq~ = aqj + s( apj - u*aqj) ( j≠p,q )
を使って変形を繰り返す→非対角成分の中の絶対値最大の要素が0に近づいたら
(最初に定義しておいた0に限りなく近い値よりも小さくなったら)ループ終了
という形でも大丈夫そうです
0905デフォルトの名無しさん
2008/06/27(金) 03:59:26[1] 授業単元: 情報処理演習
[2] 問題文(含コード&リンク):
データ (x,y)を10個読み込んでその回帰直線を求めるプログラムを作れ.
平均値を計算する関数を作る
前回の課題のプログラムをそのまま使う (データ x とそのデータ数 n を引数で受け取り,その平均値を値として返す関数を作れ.
平均値を計算する関数
主プログラムからデータの個数と配列を受け取る
平均値を計算して,返す
君と君の友人あわせて10名の体重と身長を調べ,作成した関数を用いてそれぞれの平均値を求めよ.
主プログラム
身長のデータをサイズ10の配列 height に読み込む
体重のデータをサイズ10の配列 weight に読み込む
height を引数(パラメータ)に関数を呼び出す
weight を引数(パラメータ)に関数を呼び出す
結果を出力する
)
0906デフォルトの名無しさん
2008/06/27(金) 04:00:35回帰直線の係数 a, b を計算する関数を作る
主プログラムからデータの配列を受け取る
平均値を計算する関数を呼び出してmx,myを求める
係数 a, b を計算する
結果をポインタ引数を通じて返す
主プログラムは
データをサイズ10の配列 x, yに読み込む
x,y を引数に関数を呼び出す
結果を出力する
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:わかりませんorz
[3.3] 言語: Cのみ
[4] 期限: 2008年6月27日
[5] その他の制限:組込関数・繰返し・条件による繰返し・配列・ポインタ・関数まで習っています。
なるべく早めにやってくれると助かります。お願いします。
0907デフォルトの名無しさん
2008/06/27(金) 06:12:46ありがとうございました!
わざわざ書きなおして下さるとは……回答本当にありがとうございました.
エラーの内容も示して下さったリンク先を参照にして考えてみます.
ありがとうございました.
0909デフォルトの名無しさん
2008/06/27(金) 07:57:53■
■
■
■
■
■
■
■
こんなかんじで左端から右端まで行くと今度は左端に行くように表示する
for文のプログラムを教えてください。
OS:WindowsXP
言語:c言語
コンパイラ:VC++ 2008
0910デフォルトの名無しさん
2008/06/27(金) 08:01:000911デフォルトの名無しさん
2008/06/27(金) 08:05:13横は確か半角で40文字だったような?
コマンドプロポントで表示です
0912デフォルトの名無しさん
2008/06/27(金) 08:11:370913デフォルトの名無しさん
2008/06/27(金) 08:12:20コマンドプロンプトね
というかコンソールアプリってことねw
0914デフォルトの名無しさん
2008/06/27(金) 08:15:01そうです!
>>913
コマンドプロンプトでしたw
0915デフォルトの名無しさん
2008/06/27(金) 08:56:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7098.txt
関数名とか変数名とか結構適当なので好きなようになおしちゃってください
係数は y=a+bx としている所が多いようなのでそのようにしました
ちゃんと回帰直線になってるかは・・・いまいち自信なし(何
0916915
2008/06/27(金) 09:08:08すまんこっちで
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7099.txt
0917デフォルトの名無しさん
2008/06/27(金) 09:08:29そこ消えてるんですけど・・・・他にありませんかね?
0918デフォルトの名無しさん
2008/06/27(金) 09:09:47ありがとうございます。助かりました><
参考にさせていただきます
0919デフォルトの名無しさん
2008/06/27(金) 10:29:16#include <stdio.h>
int main(int argc, char** argv){
int i;
char buf[64];
for(i = 0; i < 40; i++){
buf[i] = ' ';
buf[i + 1] = '\0';
printf("%s■\n", buf);
}
for(i = i - 1; i > -1; i--){
buf[i] = '\0';
printf("%s■\n", buf);
}
return 0;
}
0920デフォルトの名無しさん
2008/06/27(金) 10:34:520921デフォルトの名無しさん
2008/06/27(金) 10:42:340922デフォルトの名無しさん
2008/06/27(金) 10:44:37"0110"だと受理状態にならないからこの遷移図おかしくね?
0923デフォルトの名無しさん
2008/06/27(金) 11:02:14#include <stdio.h>
int main(void)
{
int n = 0, ch;
while(1) {
printf("Input 0 or 1:");
ch = getchar();
while(getchar()!='\n');
if(ch!='0'&&ch!='1') break;
n ^= 2 - (ch - '0');
printf("状態q%d\n", n);
}
return 0;
}
0924デフォルトの名無しさん
2008/06/27(金) 11:29:14E=q10
w(qs, 1)=q1_
w(qs, 0)=q0_
w(q1_, 1)=q_0
w(q1_, 0)=q10
w(q_0, 1)=q10
w(q_0, 0)=q1_
w(q10, 1)=q_0
w(q10, 0)=q1_
偶数を正の整数に限定してみた
0925デフォルトの名無しさん
2008/06/27(金) 11:53:44言われてみればおかしいですね
多分遷移図に対応すれば良いと思います。
0と1が偶数回出現するってのはなしで
>>923>>924
ありがとうございます。
0926デフォルトの名無しさん
2008/06/27(金) 12:29:58うおおおおお!ありがとうございます!
0927デフォルトの名無しさん
2008/06/27(金) 13:25:29[2] 問題文(含コード&リンク):
線形システム
x'(t) = Ax(t) −�@
y (t) = Cx(t) −�A
のシミュレーション。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: borland C++ Compiler 5.5
[3.3] 言語: C言語
[4] 期限: 6/29
[5] その他の制限:ポインタまで既習です。
数値はキーボードから入力。
補足:1、A,Cを3×3行列で入力
2、初期ベクトルx(0)を入力
3、�@式からx(t)の解は
x(t) = e^(At)x(0) となります。
(e^(At)はルンゲ・クッタ法を用いて近似計算される)
4、これを�A式に代入してy(t)を求める、というものです。
本当にさっぱりわからないです(;´Д`)
もしわかる方いらっしゃいましたらよろしくお願い致します。
0928デフォルトの名無しさん
2008/06/27(金) 14:04:39ルンゲ・クッタ法は知らんが、行列Aをジョルダン分解してジョルダンJ行列のexp(Jt)を求め、
それを逆変換すればexp(At)は簡単に求まる。
悪いがCで書くのはだるいのでパス
0929デフォルトの名無しさん
2008/06/27(金) 14:41:450930デフォルトの名無しさん
2008/06/27(金) 14:49:07BAB^(-1)=diag[e1,e2,e3]というBを求められると
exp(At)=B diag[exp(e1t),exp(e2t),exp(e3t)]B^(-1)
だから
y(t)=CB diag[exp(e1t),exp(e2t),exp(e3t)]B^(-1)
要するにルンゲクッタ法を使わなくてもできるよと口だけ
言うとるわけだが、B,B^(-1)を求めるのはそう簡単な作業
というわけでも無いことは明記しておこう。
Aが対称というわけでもないからね。
素直にルンゲクッタの方法を使ったほうが簡単。
もっとも、こういう計算なら、Excelでやったほうが
能率がいいだろうね。Cでやるのはたるいというのは
正常な感覚かも知れない。
0931デフォルトの名無しさん
2008/06/27(金) 15:45:47[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7101.txt
[3]LINUX
C
[4]6月28日
[5]配列、関数を使わずお願いします
すいませんがよろしくお願いします
0932デフォルトの名無しさん
2008/06/27(金) 15:56:23> 関数を使わずお願いします
インラインアセンブラですか,そうですか
0933デフォルトの名無しさん
2008/06/27(金) 15:57:34[2]
まず整数nを入力する。次に実数をn個入力し、そのn個の実数の平均u、分散ρ、
最大値max、最小値minを表示するプログラムを作成せよ
ただし、配列を用いず作成すること。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7101.txt
[3]LINUX
C
[4]6月28日
[5]配列、関数を使わずお願いします。すいませんがよろしくお願いします
0934デフォルトの名無しさん
2008/06/27(金) 16:01:50こちらのスレが良いと思われ
C言語なら俺に聞け(入門篇) Part 30
ttp://pc11.2ch.net/test/read.cgi/tech/1213367888/
0936デフォルトの名無しさん
2008/06/27(金) 16:14:25ユーザー関数がNGってこと?
0937デフォルトの名無しさん
2008/06/27(金) 16:17:36int main(void){
int n, c;
double i, sum_i, sum_dbl_i, min, max;
scanf("%d", &n);
for(c = 0; c < n; c ++){
scanf("%lf", &i);
if(c == 0) min = max = i;
else {
if(min > i) min = i;
if(max < i) max = i;
}
sum_i += i;
sum_dbl_i += i * i;
}
{
double u, row;
u = sum_i / n;
row = sum_dbl_i / n - u * u;
printf("u = %f, row = %f, min = %d, max = %f\n", u, row, min, max);
}
}
未コンパイル
0938デフォルトの名無しさん
2008/06/27(金) 16:26:08一応、sum_iとsum_dbl_iは初期化しておいたほうが良さそうだね
0939デフォルトの名無しさん
2008/06/27(金) 16:54:23[2] 問題文(含コード&リンク):()
キーボードからポーランド記法で入力した計算式の演算結果を求めるプログラムを作成せよ。
例:(* (+ 4 5) (+ 2 3)と入力した場合に45と結果を表示する
[3] 環境
[3.1] OS:Windows
[3.2] borland c++ 5.5.1
[3.3] C
[4] 期限:2008/07/02/16:00
[5] その他の制限:入力する値は一桁とし、演算子は*と+の2種類に限定する。再帰呼出を活用して作成する
逆ポーランド記法は出来たのですがポーランド記法はわかりませんでした。
どうかよろしくお願いします。
0940デフォルトの名無しさん
2008/06/27(金) 16:58:47[2] 1、変数の下位16ビット中の1のビット数を数える関数 int bit_count(int x)を作成せよ。
2、シフト演算を用いて「□」と「■」を次のように表示せよ。
□□□■
□□■
□■
■
□■
□□■
□□□■
[3] 環境
[3.1] Windows
[3.2] Visual Studio .NET 2003
[3.3] C
[4] 6/30(月曜日)まで
[5] とくになし
0941デフォルトの名無しさん
2008/06/27(金) 17:08:35どなたか>>885お願いします
0942デフォルトの名無しさん
2008/06/27(金) 17:09:471.
int bit_count(int x)
{
int _cnt = 0;
int i;
for(i = 0;i < 16;i++) {
if( (x & 0xffff) & (1<<i) ) _cnt++;
}
return _cnt;
}
2.
void main() {
int bit = 8;
int i,j;
for(i = 0;i < 7;i++) {
for(j = 0;j < 4;j++) {
if( bit & (1<<j)) {
printf("■\n");
break;
} else {
printf("□");
}
}
if(i >= 3) bit <<= 1;
else bit >>= 1;
}
}
未コンパイルです。
0943デフォルトの名無しさん
2008/06/27(金) 17:13:07char *myStringCopy(char *s, char *d)
{
char *retval = d;
if(!d || !s) return NULL;
while (*s)
{
*d++ = (char)*s++;
}
*d = '\0';
return retval;
}
これでよろしい?
0944943
2008/06/27(金) 17:24:52myStringCopyの最後の
*d = '\0';
を消してください。
ただ、出来ればcoutCharの返り値にNULLも含ませるか
mallocする際にsizeに+1してください
0945デフォルトの名無しさん
2008/06/27(金) 17:25:430946デフォルトの名無しさん
2008/06/27(金) 17:43:28#include <stdio.h>
#include <stdlib.h>
char *nelm(char *s){
while(1)
switch(*s){
case ' ': case '\t': case '\r': case '\n': case '(': case ')': s++; break;
default: return s;
}
}
int evalp(char **s){
char c;
*s = nelm(*s);
c = *((*s)++);
printf("**s = %c\n", c);
switch(c){
case '*': { int lhs, rhs; lhs = evalp(s); rhs = evalp(s); printf("\t%d*%d\n", lhs, rhs); return lhs * rhs; }
case '+': { int lhs, rhs; lhs = evalp(s); rhs = evalp(s); printf("\t%d+%d\n", lhs, rhs); return lhs + rhs; }
case '\0': return 0;
default: return c - '0';
}
}
int main(void){
char input[1025], *u;
printf("input: ");fflush(stdout);
fgets(input, 1024, stdin);
printf("%d\n", evalp(&(u = input)));
}
0947144
2008/06/27(金) 17:44:09燃費算出にも色々計算式があるみたいで・・・。
ガソリンエンジンとディーゼルエンジンでも微妙に計算式違ったりしてる。
でも一般的な値を使ってある式の一つを持ってきたから、Ne(出力)とh(走行時間)を掛けると、言う通りの次元になるのかもしれん。
ま、次元解析までは手を出してないですがwww
Wordで報告書に式が掲載されているんだが、それをWebにうpする技術が自分には無くて・・・。
ここに直接書くと�dでもない事になりそうです。
0948デフォルトの名無しさん
2008/06/27(金) 17:46:270949デフォルトの名無しさん
2008/06/27(金) 17:58:18分かりにくい解説なので、もう一度丁寧にお願い。
0950デフォルトの名無しさん
2008/06/27(金) 18:02:420951デフォルトの名無しさん
2008/06/27(金) 18:07:01諦めろ。その程度の覚悟もなく頼むな
0952デフォルトの名無しさん
2008/06/27(金) 18:10:05えと、countCharの実装方法によるんだけど
char source[]="Hello";をカウントした場合に5が帰ってくる場合
>>943に書いたmyStringCopyだと、Helloをコピーした後に文字列の終端を示す為に\0を追加するので
6バイト分書き込みます
もし、カウント分の5バイトしかmallocで確保しなかった場合にメモリを破壊してしまいますので
malloc時にmalloc(size * sizeof(char) + 1);等して6バイト分確保してください
で、何で最後に\0を追加するかというと
fprintfで表示する際に
もし無かった場合、\0が出てくるまで表示しようとしますので
そうならないようにする為です。
これでOK?
そろそろ仕事あがるので、後は他の人に任せた
0953デフォルトの名無しさん
2008/06/27(金) 18:11:31[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
ncursesを使って、(初心者からすれば)少し大きめのプログラムを作れ。
↑(かなりアバウトですが、実際にこういわれたw)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: cygwin
[3.3] 言語: C限定でお願いします。
[4] 期限:2008年7月6日まででおねがいします!
[5] その他の制限:特になくてOKっす!おねがいします!
0954デフォルトの名無しさん
2008/06/27(金) 18:18:50質問しないお前が悪い。早くメールで聞き直せ
0955デフォルトの名無しさん
2008/06/27(金) 18:19:26#include <stdio.h>
void myfunc(int, int[]);
int main()
{
int input, ans[2];
printf("値を入力してください。\n");
scanf("%d", &input);
myfunc(input, ans);
printf("10加えた値は %d\n", ans[0]);
printf("10倍した値は %d\n", ans[1]);
return 0;
}
/* void myfunc(int num, int *ans) 例にあわせるならこの表記 */
void myfunc(int num, int ans[])
{
ans[0] = num + 10;
ans[1] = num * 10;
}
0956950
2008/06/27(金) 18:27:14ありがとうございました。m(__)m
0958941
2008/06/27(金) 18:27:54わけわからんからこのへんで\(^o^)/
0959941
2008/06/27(金) 18:32:370960デフォルトの名無しさん
2008/06/27(金) 18:33:49size + 1 にするなら *d = '\0' 消しちゃ駄目でしょ
0962デフォルトの名無しさん
2008/06/27(金) 18:35:53[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7102.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 06/29
[5] その他の制限: 特にありません
宜しくお願いします
0963デフォルトの名無しさん
2008/06/27(金) 18:42:53普通の人に燃費って言ったら「1リットル当たりどれだけの距離を走れるか」と考えるんでない?
少なくとも俺や周りの人間はその程度の認識。
次元解析とかいうよくわからない言葉を出さないといけないのなら、相応の情報がないと
手のつけようがないって言ってるんだが、おかしいかな。
報告書に載ってる式があるらしいことは分かったが、内容を知るすべがない。
適当なとこにうpすればいいじゃん。全部がいやなら式のとこだけテキストに起こすとかしてもいいし。
0964デフォルトの名無しさん
2008/06/27(金) 18:48:05世の中のバグの多くはこういったやりとりの果てに作られてんだなと思った。
一方は教えたつもり、他方はわかったつもりになってしまう。
正解が一つとは限らない問題を扱っている場合はとくにこうなりやすい。
何を伝えたのか、何がわかったのかをきちっとやり取りで確認しないで通信
するようなことはCプログラマとしては一番やってほしくないことだ。
通信アプリの記述に関しては、Cほど実績があるものは無いからな。
0965デフォルトの名無しさん
2008/06/27(金) 18:52:44>>885から>>941までのやりとり追跡すると、
を
>>885から>>959までのやりとり追跡すると、
に置き換えてくれ
0966デフォルトの名無しさん
2008/06/27(金) 18:53:010967デフォルトの名無しさん
2008/06/27(金) 19:04:260968デフォルトの名無しさん
2008/06/27(金) 19:13:29じゃあ回答してやれよって話だよー
ある式の一つを使用することに決めた報告書を相手は持っているが
こちらはそれがどの式であるかも分からないんだよ?
適当に回答して、その式じゃないです、って言われないためにも情報は必要。
0969デフォルトの名無しさん
2008/06/27(金) 19:24:19次元解析って名前は大仰だけど無意識でやってるだろ
0970デフォルトの名無しさん
2008/06/27(金) 19:26:38[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7103.txt
図
http://up.sussiweb.com/up3/img/4488.jpg
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: MS Visual C++
[3.3] 言語: C
[4] 期限: 2008/07/10
[5] その他の制限: よろしくおねがいします
C/C++の宿題を片付けます 111代目
http://pc11.2ch.net/test/read.cgi/tech/1214563642/
0972デフォルトの名無しさん
2008/06/27(金) 20:56:32ざっと見ただけ
恐らくシンプソンの公式で数値積分し、フーリエ係数を求めている。
積分刻み幅を増やしたりフーリエ係数の打ち切り個数を増やして
計算させてみたら
f(t) フーリエ展開から求めたもの
0.004052 0.000000
0.200007 0.200000
0.400001 0.400000
0.599999 0.600000
0.799993 0.800000
0.995948 1.000000
0.799993 0.800000
0.599999 0.600000
0.400001 0.400000
0.200007 0.200000
0.004052 0.000000
という風に、割合と良く一致しているから、全体的には
正しい解答を出せるプログラムだとは思うが、当然そのままのコードでは、このようには出ない。
0973デフォルトの名無しさん
2008/06/27(金) 21:29:31http://slashdot.jp/developers/article.pl?sid=08/06/27/1059249
英・米のコンピュータ関係の学生が課題を海外へアウトソーシングしていることが明らかになった(silicon.com・本家/.記事)。
課題は(元々は企業向けの)コーディング請負サイトに競争入札形式で出され、最低価格の入札者が契約を落札できる。
単純な課題から卒業論文までアウトソーシングされており、簡単なものだと一件5ポンド(約1050円)程で、
修士論文でも100ポンド(約21,000円)程度で請け負ってもらえる。
ここで答えてもらえないような課題でも海外なら解決してくれるようだな。
0974デフォルトの名無しさん
2008/06/27(金) 21:32:12ここに流れてきてたりしてなw
0975デフォルトの名無しさん
2008/06/27(金) 21:33:000976デフォルトの名無しさん
2008/06/27(金) 21:33:32俺には無理だ
0977デフォルトの名無しさん
2008/06/27(金) 21:39:350978デフォルトの名無しさん
2008/06/27(金) 21:44:59書くとなったら大変
0979デフォルトの名無しさん
2008/06/27(金) 22:15:17関連する洋書の教科書読めば書き方なんて大体分かる。
0980デフォルトの名無しさん
2008/06/27(金) 22:19:05日本語を英語に無理やりしたような英語を書くんだろぉ?w
バイク板で妙な奴を見かけたよ。緑色の縁のプレートという表現で
the green-rimmed plate といった漢字で 色+縁取られた という形容詞で
辞書に丸々と使い方が載っているのに、それを提示しても無理やり
green plate rimming なんて、緑のプレートが縁取っている なんて
妙な単語の並べ方、活用の仕方をしやがって、吹いちまったぜ。
そんな俺は理系に進んだが英語の成績の方が良かったという
進路を間違えた被害者の一人だ。これがジャポネーゼの教育の実態だ。
英語が使いたいというなら、1年でも留学しろ。留年じゃないぞ、留学だぞ。
0981デフォルトの名無しさん
2008/06/27(金) 22:22:44それはバイク板の当該スレでいうべきことでは
1をみて10を知るのもいいが一般化するに足るサンプル数があるのか?
0982デフォルトの名無しさん
2008/06/27(金) 22:25:49我こそは間違っていない、疑問に思うことはすべて
異例を調査してでも反論しようってタイプだろ?
世の中そんなんじゃやっていけないが、辞書で調べれば
金縁のめがねは gold-rimmed glasses で載ってますからw
0983デフォルトの名無しさん
2008/06/27(金) 22:28:03福田首相がダメだから日本の歴代首相は全てダメというくらい強引だな
0984デフォルトの名無しさん
2008/06/27(金) 22:29:11例えそうでなくても、意見をするものを封じるために相手を否定する
指摘した奴を陰湿に罵倒するような奴は、まず孤立している奴だろ。
いわゆる自分ルールで生きてきた奴。それゆえに通用しないことばかり。
だからそんなへまもする。まぁ、間違いを指摘されて反論するようじゃ
まず駄目だろう。にしても、用例や細かく分析しても納得のいく説明に
わざわざ指摘した側に圧力を掛けるって、どんだけ視野が狭いんだろうねw
0985デフォルトの名無しさん
2008/06/27(金) 22:30:19間違えたのはバイク板の何某一名じゃないのか?
0986デフォルトの名無しさん
2008/06/27(金) 22:30:290987デフォルトの名無しさん
2008/06/27(金) 22:31:110988デフォルトの名無しさん
2008/06/27(金) 22:36:02>日本語を英語に無理やりしたような英語を書くんだろぉ?w
これが妄想という名の自分ルールじゃなかったらなんなんだw
0989デフォルトの名無しさん
2008/06/27(金) 22:37:21ttp://dictionary.goo.ne.jp/search.php?MT=rimmed&kind=ej&mode=1&base=1&row=0
ttp://www.excite.co.jp/dictionary/english_japanese/?search=rim&match=beginswith&dictionary=NEW_EJJE&block=00056142&offset=0366
余裕ですね。少なくとも green plate rimming ではないし、green rimming plate とも言わない。
そこが ニュアンス の重要なポイントさ。理系なのに英語の解説している俺って
やっぱアメリカの企業で働くべきかねぇ、う〜〜ん。
0990デフォルトの名無しさん
2008/06/27(金) 22:37:47あっ、もうそういう詰まらない屁理屈しかいえなくなったんだ。
所詮お前もジャポネーゼイングリッチュw
0991973
2008/06/27(金) 22:39:310992デフォルトの名無しさん
2008/06/27(金) 22:39:47おお、ぜひともとっととアメリカ行ってくれw
0993デフォルトの名無しさん
2008/06/27(金) 22:40:55まあ、その話してなくても別のことで大暴れするだけだからあなたのせいじゃないよ
0994デフォルトの名無しさん
2008/06/27(金) 22:41:17こんな微妙な名前の変数名を見た、とか。
それにしてもどうでもいい話だけどさ
0995デフォルトの名無しさん
2008/06/27(金) 22:43:00まぁ、お前の使えない英語は、日本語を必死に英語に訳そうとして
本来の英語を無視しているからなんだよ。まずは生粋の英文を
日本語に訳して、英語を英語として意味を理解しろ。
日本語に単語単語で訳してから理解しようとしている奴は
効率が悪く、まずまともな英語は身につかない。なぜなら、
英語を英語で理解する人は、わざわざ日本語に訳してなんて
ことはしていないだろ?当然っちゃ当然だが、そういうこと。
英語を英語で理解する、わざわざ日本語に置き換えなくても良いんだよ。
英語を知っている人なら、ね?w
さっ、宿題スレなんて、俺の戯言はこの辺で。所詮ジャポネーゼ
イングリッチュは通用しないって、海外に出れば分かるからw
0996デフォルトの名無しさん
2008/06/27(金) 22:47:090997デフォルトの名無しさん
2008/06/27(金) 22:47:53ゆえに、日本人は変な英語を使う
話の流れがおかしくないか?
0998デフォルトの名無しさん
2008/06/27(金) 22:49:060999デフォルトの名無しさん
2008/06/27(金) 22:53:531000デフォルトの名無しさん
2008/06/27(金) 22:54:3110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。