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

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

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):()
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】C/C++の宿題を片付けます 109代目
http://pc11.2ch.net/test/read.cgi/tech/1212895856/
2デフォルトの名無しさん:2008/06/18(水) 22:52:16
gets使う奴は、ダンディ坂野に弟子入りすることを命ずる
3デフォルトの名無しさん:2008/06/18(水) 22:54:17
前スレの989です。
できました。
ありがとうございます。
4デフォルトの名無しさん:2008/06/18(水) 23:08:10
890 名前:デフォルトの名無しさん[sage] 投稿日:2008/06/18(水) 09:58:47
初心者レベルの宿題しか解けないだけだろw

何か一言でも言わないと気が済まない、構ってちゃんの一言居士って
マジ鬱陶しいな。自分がすべて正しいと勘違いしてんじゃね?
世の中どんだけ自分以上の人間がいるか分かってないだろ。
ネットが普及して、多種さまざまな人と意見交換する場なんて、
もう20世紀末から徐々にネットが普及して今に始まったことじゃないだろ?
最近インターネットを使い始めた、高校を出て社会を知り始めたお子ちゃまか?
少し口を閉じてろ。無駄口が多いくせに、お前の方がよっぽど
答えたとしても幼稚なソースしか書いてないことに気づくから。
5デフォルトの名無しさん:2008/06/18(水) 23:09:37
ああそうね
6デフォルトの名無しさん:2008/06/18(水) 23:15:14
>>4
スルー推奨
7デフォルトの名無しさん:2008/06/18(水) 23:18:27
>>4
http://pc11.2ch.net/test/read.cgi/tech/1212895856/890
って麻呂に対して言ってんだよね。
自分に言われたと思った?w

ネットでさまざまな人と意見交換する場を経験してきたのに誰に対する
レスかも理解できないのかしら?

> 何か一言でも言わないと気が済まない、構ってちゃんの一言居士
頭痛が痛いみたいで気持ち悪いし。
8デフォルトの名無しさん:2008/06/18(水) 23:25:31
まあ、麻呂には今後もクソースをくらえでおじゃるーとか言いながら
学生っぽさの抜けないソースを上げ続けてもらいたいな。
ある意味癒しだ。
9デフォルトの名無しさん:2008/06/18(水) 23:35:45
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):
文字列の入力を促し、入力。その文字列の先頭の文字と同じ文字が文字列の中にいくつ含まれるか
求めるプログラムをポインターを使って作りなさい。また先頭の文字も数のうちに入れること。
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:VC++6
 [3.3] 言語: C
[4] 期限:明日
[5] その他の制限:ポインターを習って間もないです
よろしくおねがいします
10デフォルトの名無しさん:2008/06/18(水) 23:47:32
一言居士の特徴
何かと自分に対して意見をする者に対しては、どうでも良いようなことでも言い返す。
別に自分に意見をしたわけでもないのに、勝手な理論で話に入り込んで
わけの分からないことを言い始める。誰も聞いてない無関係な内容を持ち出す。
相手にされないと、誰か自分に話かけてこないか、茶化す。しかし、それが
相手の気を逆撫でするような、不適切で幼稚な発言のため、逆にお叱りを受けるが
気に入らない奴はとことん罵倒して逃げる<厨房がやる決定的な特徴。
11デフォルトの名無しさん:2008/06/18(水) 23:51:28
>>9
char 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);
12デフォルトの名無しさん:2008/06/18(水) 23:51:49
>>10
一言居士の特徴とか言われましても、言葉の意味に含まれておりますので。。。
頭痛の特徴→頭が痛くなる
みたいで気持ち悪い。
挙句、厨房の特徴になってしまっている。なにがいいたいかまとめろ。
13デフォルトの名無しさん:2008/06/18(水) 23:53:51
>>9
#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;
}
14デフォルトの名無しさん:2008/06/18(水) 23:57:18
>>11
空文字列の場合に0個と出力されるほうがよさげな
15デフォルトの名無しさん:2008/06/19(木) 00:01:23
>>14
なるへそ。じゃこれで
for (p = buf, cnt = 0; *p && *p != '\n'; p++)
16デフォルトの名無しさん:2008/06/19(木) 00:29:39
>>7
いつもファビョってるやつと麻呂は同一人物
17デフォルトの名無しさん:2008/06/19(木) 00:38:14
まじで?
おじゃる口調でファビョってくれないとわからないよ!
18838:2008/06/19(木) 00:39:12
前スレの853を待ってるんだが・・
一日たっても返事が来ないって事は釣られたのか・・俺は・・
このままだと単位\(^o^)/
19デフォルトの名無しさん:2008/06/19(木) 00:41:21
>>18
授業単元は「ネットで宿題を解いてもらう方法」だっけ?
2018:2008/06/19(木) 00:43:49
>>19
そうだなww
21デフォルトの名無しさん:2008/06/19(木) 00:49:15
[1] 授業単元: Cプログラミング演習
[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] その他:組み合わさった問題を一文にしたため、分かりにくい所は聞いてください。お願いします。
22デフォルトの名無しさん:2008/06/19(木) 00:50:46
>>932=919
遅くなりましたがご丁寧にありがとうございました。

ご察しの通り#で区切った項それぞれを、逆さにするんです。
度々で失礼ですが、ご教授されたとおりにrev_flagを含む行を消すと、if文まで消さなくてはならず
他の変数まで消えてしまうため、エラー出るのですが、どうすればいいのでしょうか
23デフォルトの名無しさん:2008/06/19(木) 01:04:01
[1] 授業単元:プログラミング入門U
[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日

すいませんがお願いします。
24デフォルトの名無しさん:2008/06/19(木) 01:07:07
前スレの>>955の方
どうもありがとうございます。
25デフォルトの名無しさん:2008/06/19(木) 01:09:40
[1] 授業単元:C言語
[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] その他の制限:できるだけ簡単に
何度もすみませんもしできる方がいましたらお願いします
26デフォルトの名無しさん:2008/06/19(木) 01:17:28
>>18
これはすまんすまん。
既に回答されてたからいいかーと思ってた。
http://pc11.2ch.net/test/read.cgi/tech/1212895856/845
これじゃだめだったん?
279:2008/06/19(木) 02:00:37
>>11>>13
ありがとうございます
28デフォルトの名無しさん:2008/06/19(木) 03:05:41
>>21

char配列は、windowsちっくにソートしたw

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6964.txt
29デフォルトの名無しさん:2008/06/19(木) 03:24:01
>>28
素朴な疑問なんだが、配列の初期化の辺りは意図的にやっているんだよね?
30デフォルトの名無しさん:2008/06/19(木) 03:29:45
>>18
data.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 何で謝ってるか意味が分からん。良かったら教えて。
31デフォルトの名無しさん:2008/06/19(木) 03:37:48
意図的だろうけど、普通に "abcdef" のように書いてもおkだな
32デフォルトの名無しさん:2008/06/19(木) 04:04:38
>>30
前スレで
>ソースコードはでき次第うpする
って言ったのにその後放置したのを、期待してた18に悪いと思ったんだろ。
3331:2008/06/19(木) 04:10:03
サンク
34デフォルトの名無しさん:2008/06/19(木) 04:11:48
本人でもないのに自分が思ったことを憶測で言うお前、
間違いなくあいつだw 毎日昼夜逆転の生活乙。
どんだけ構ってチャンなんだよ、お前?w
誰も部外者のお前に意見なんて聞いてねーだろw
本人がなんで謝っているのか?本人がレスすりゃ良いだけだろw
35デフォルトの名無しさん:2008/06/19(木) 04:28:44
>>34
構ってチャン乙
36デフォルトの名無しさん:2008/06/19(木) 04:31:05
>>23
#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]);
}
}
37デフォルトの名無しさん:2008/06/19(木) 05:20:04
> 期待してた18に悪いと思ったんだろ。
本人でもないのに他人の意向を勝手に思い込む、勘違いする奴って
ぜってーどっかズレてるよな。それで相手の気分を害すると。
38デフォルトの名無しさん:2008/06/19(木) 06:21:02
勘違いかどうかは本人以外わからないんじゃ?
勘違いと決め付けることは本人でもないのに他人の意向を勝手に思い込むことだと思うけど。
39 ◆bTjnLXZVZc :2008/06/19(木) 06:24:06
[1] 授業単元: プログラミング
[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時まで

よろしくお願いします
40デフォルトの名無しさん:2008/06/19(木) 06:26:06
>>22
ちょうど上手いこと消せるかと思ったんだが…ま、いいや
変数は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';
41デフォルトの名無しさん:2008/06/19(木) 07:51:45
>>39
top=top++; /*ポインタを更新*/
これはひどい
42デフォルトの名無しさん:2008/06/19(木) 09:56:42
>>39

ヒントは”参考”にした、ヒントを元に作ってないw

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6966.txt
43デフォルトの名無しさん:2008/06/19(木) 10:15:52
>>42
これはいい感じに喧嘩売ってる
44デフォルトの名無しさん:2008/06/19(木) 10:16:40
>>41
確かに副作用完了点とか無視しまくりんぐwwwwww
45デフォルトの名無しさん:2008/06/19(木) 11:10:10
>>42
static int g_nStack[ STACK_MAX ] = {0,0,0,0,0,0,0,0,0,0};
グローバルならわざわざ初期化いらないんじゃない
STACK_MAX変更するたびに修正しないといけないし
46デフォルトの名無しさん:2008/06/19(木) 11:28:11
そもそもスタックの中身がクリアされてる必要が無いな
47デフォルトの名無しさん:2008/06/19(木) 12:13:01
>>40
動作確認完了です
わざわざ追加したこちらのご要望にも答えていただきありがとうございました
48デフォルトの名無しさん:2008/06/19(木) 12:20:17
>>36
ありがとうございました

ただ実行しても
'=' : 'void *' から 'int *' に変換できません。
のようなエラーがでてしまいます
あと厚かましいのですが
もっと簡単な、サンプルプログラムに近いソースを頂くことはできませんか
49デフォルトの名無しさん:2008/06/19(木) 12:24:23
前スレ745、期限切れですがなんとかなりませんか?
50デフォルトの名無しさん:2008/06/19(木) 12:30:46
[1] 授業単元:プログラミング言語
[2] 問題分:リスト構造
• 数値の列を入力し,それをリスト構造にデータを格納せよ.
その際,数値が大きさの順に並ぶようにせよ.
- 入力する数値の数を限定してもよい
- たとえば5個
• リストの内容を先頭から出力せよ.
- 結果として入力された数値の列が,大きさ順に並び替えられて
表示されることになる.
• リスト構成する要素(セル)はmalloc関数でヒープ領域から
確保するものとする.
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:visualstdio 2008
 [3.3] 言語:C++
[4] 期限:6月19日 12時頃まで
[5] その他の制限:特に無し。
申し訳ありませんがどうか宜しくお願いします。
51デフォルトの名無しさん:2008/06/19(木) 12:36:14
>>48
Cで書いてあるから拡張子をcにしろ
C++じゃないとだめならmallocじゃなくてnew使え
52デフォルトの名無しさん:2008/06/19(木) 12:36:25
>>48
mallocの前に(int*)をつける
53デフォルトの名無しさん:2008/06/19(木) 13:27:38
>>32
そそ。フォローども。
54デフォルトの名無しさん:2008/06/19(木) 13:28:38
ってなんかしらんけど荒れてるw
そんな誤解受ける書き方だったかなあ。気をつけるね。
55デフォルトの名無しさん:2008/06/19(木) 13:48:31
[1] ネットワーク論
[2] 基数変換
  1)基数変換プログラムを作成しなさい。
 「元:2〜16進数(選択)→変換先:2〜16進数(選択)」
 という基数の指定ができるようにすること.

[3] 環境
 [3.1] Windows
 [3.2] CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 明日まで
[5] その他の制限: 本課題は、基数変換の理解、および、そのプログラムとしての実装を
         主たる目的としています。従って、基数変換を行う関数や外部プログ
         ラム等を用いてはいけません。

         プログラムとってないけど出されてしまいましたorz
         正直まったくわかりません・・・
とりあえずロダにあげときました。
         よろしくお願いします。

福島大学 共生システム理工学類2年
吉原 千勝
56デフォルトの名無しさん:2008/06/19(木) 13:49:09
前745解こうと思って考えてるんだけど、
たとえば A B C D の順列パターン数は 4! で求まるけど、
A A B C や、 A A A B, または A A B B の順列パターン数はどう求めるんだっけ?
公式ある?
57デフォルトの名無しさん:2008/06/19(木) 13:59:41
レス番指定は正確に

tech:プログラム技術[重要削除]
http://qb5.2ch.net/test/read.cgi/saku2ch/1033032078/60
58デフォルトの名無しさん:2008/06/19(木) 14:00:33
プログラム取ってない人に明日まででこんな問題出すのはおかしい
59デフォルトの名無しさん:2008/06/19(木) 14:04:55
トリップ付けないで質問する奴が多い事について
60デフォルトの名無しさん:2008/06/19(木) 14:08:12
>>56
N個からなるパターンの総数はN!
同一種でM個の重複がある場合にはM!で割る

AABC → 4!/2!
AAAB → 4!/3!
AABB → 4!/(2!2!)
61デフォルトの名無しさん:2008/06/19(木) 14:12:19
一般化してみた

AABC → 4!/(2!1!1!)
AAAB → 4!/(3!1!)
AABB → 4!/(2!2!)
62デフォルトの名無しさん:2008/06/19(木) 14:13:05
Cの問題は解くものじゃ無く書くもの。書き残すもの
書く事と解くことを履き違えいほうがいいぞ
63デフォルトの名無しさん:2008/06/19(木) 14:13:59
>>56
重複順列ならn^m
でもサイコロの出目の合計だから重複組合せを求めるんじゃね
てか出目の合計xを求める確率密度関数p(x)がありゃいいんだけどな
64デフォルトの名無しさん:2008/06/19(木) 14:37:57
[1] 授業単元:プログラミング
[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分木で作る

どなたかお願いします。
6556:2008/06/19(木) 14:38:41
>>60 産休。
だがかなり厄介な問題だ。
めんどくさくなったw どうすっかな。
66デフォルトの名無しさん:2008/06/19(木) 15:00:57
67 ◆bTjnLXZVZc :2008/06/19(木) 15:24:52
>>42
遅くなりましたが、ありがとうございました
何も言われないことを祈りますw
68デフォルトの名無しさん:2008/06/19(木) 17:16:01
っつーか、やっぱ意図的だよね?
"012345…DEF"でもおk
6950:2008/06/19(木) 17:52:31
うわ、期限間違えてた。
19日12時じゃ書き込んだ時点で既に過ぎてるって。
すみません、08年6月20日の12時迄でした。
70デフォルトの名無しさん:2008/06/19(木) 17:52:33
[1] 授業単元:C言語
[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] その他の制限:できるだけ簡単に
何度もすみません,もしできる方がいましたらお願いします.
71デフォルトの名無しさん:2008/06/19(木) 18:29:43
>>70
要するにフィールドを9×9にして9分割して
その中に8個無かったら最後に1列1行調べるようにすればいいんじゃね?
できるだけ効率よく座標調べるようにしてさ
72デフォルトの名無しさん:2008/06/19(木) 18:30:29
またお前か、口先だけで書き込み方と言い方に特徴があるから
する分かるぞw
73デフォルトの名無しさん:2008/06/19(木) 18:49:28
突っ込んだら負けなんですね
色んなイミで
74デフォルトの名無しさん:2008/06/19(木) 19:17:12
[1]授業単元: C言語
[2] 問題文:BMP画像を読み込んで画面に出力するプログラムを作成
[3] 環境:
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: borland c++ 5.5.1
[3.3] 言語:Cのみ
[4] 期限:20日まで
[5] その他の制限:とくに無し
75デフォルトの名無しさん:2008/06/19(木) 20:32:18
宿題を解いてくれなかったのかなあ。
かわいそうに。
76デフォルトの名無しさん:2008/06/19(木) 20:33:58
>>70
前スレの回答では何がダメだったのだろう。手数が多すぎるからアウト?
ダメな理由を書かずにお願いしますお願いしますじゃ困る人もいるのでは。
7770:2008/06/19(木) 20:40:19
>>76
手数が多すぎたので…
20から30でお願いします
78デフォルトの名無しさん:2008/06/19(木) 20:57:36
参考にしてチューニングしてみたら?
自分でやる時にどうやったら効率よく宝探せるか考えるとか
割とおもしろいと思うけどなあ
79デフォルトの名無しさん:2008/06/19(木) 21:16:23
[1]簡易データベース作成[2]問題文
・入力内容
名前、年齢、メアド
・機能
追加、削除、編集、ソート(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]明後日まで。
とりあえず、追加だけでよろしくお願いいたします。
80デフォルトの名無しさん:2008/06/19(木) 21:17:08
[1]簡易データベース作成[2]問題文
・入力内容
名前、年齢、メアド
・機能
追加、削除、編集、ソート(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]明後日まで。
とりあえず、追加だけでよろしくお願いいたします。
81デフォルトの名無しさん:2008/06/19(木) 21:17:55
連続投稿すいません…。
82デフォルトの名無しさん:2008/06/19(木) 21:33:35
[1] 授業単位:プログラミング演習
[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] その他の制限:特になし

よろしくお願いします
83デフォルトの名無しさん:2008/06/19(木) 21:35:53
tmp = num[j+1];
num[j+1] = num[j];
num[j] = tmp;
84デフォルトの名無しさん:2008/06/19(木) 21:37:40
85デフォルトの名無しさん:2008/06/19(木) 21:37:41
>>82
//ここに、数を入れ替えるプログラムを追加する
tmp = num[ j ];
num[ j ] = num [ j + 1 ];
num [ j + 1 ] = tmp;
86デフォルトの名無しさん:2008/06/19(木) 22:04:25
[1] 授業単元:プログラミング
[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まで]

前スレでも聞いてた人がいたけど俺にはわからなかったので・・・
誰かよろしくお願いします
87デフォルトの名無しさん:2008/06/19(木) 22:07:20
>>86
どこが分からないか言わないと前スレと同じ回答来るだけだと思うが
88デフォルトの名無しさん:2008/06/19(木) 22:07:28
int ArraySum(int *p, int size)
{
int sum = 0;
while(size--) sum += p[sum];
return sum;
}
89デフォルトの名無しさん:2008/06/19(木) 22:07:45
int ArraySum(){
return 2+13;
}
90デフォルトの名無しさん:2008/06/19(木) 22:10:09
[1] 授業単元:C言語プログラミング
[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++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月23日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません、よろしくおねがいします
91デフォルトの名無しさん:2008/06/19(木) 22:11:21
>>70
またお前か…
8/100の8を全て選ぶ回数が20〜30回で、と言う確率がどれくらいかわかってるのか
単純に考えても8x4=32で、1つ探すのにも4手でオーバーだぞw

ズルなしで出来るか、ボケェ
自分のプレイの平均を出してみろ
92デフォルトの名無しさん:2008/06/19(木) 22:14:47
>>91
またお前か…
要らん罵倒レスが入っているから分かりやすいぞw

わざわざ改行して最後に句読点をつけない特徴もそのまんまw
93デフォルトの名無しさん:2008/06/19(木) 22:30:07
アデランスへ行け
94デフォルトの名無しさん:2008/06/19(木) 22:30:25
>>92
あなたもわざわざ改行をして最後に句読点をつけないねw
最後に読点をつける人がいたら結構な特徴になるだろうか

でも>>91はせっせとソース上げてるから>>92よりしっかりしてるよね
95デフォルトの名無しさん:2008/06/19(木) 22:31:01
>>91
まあ一回で九マス十一回で九十九マス調べられるからな
被らないようにすればぎりぎりいける…かも
96デフォルトの名無しさん:2008/06/19(木) 22:32:53
>>95
爆弾ビンゴの時に周囲が分からないのと、盤面が10*10であるというのがあるですよ。
97 :2008/06/19(木) 22:33:31
[1] 授業単元:プログラミング
[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] その他の制限:添付ファイルに少し書きました。
         ポインタやポインタ配列を習い始めて少ししか経ってないくらいです。

98デフォルトの名無しさん:2008/06/19(木) 22:39:04
#include <stdio.h>

int 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;
}
99デフォルトの名無しさん:2008/06/19(木) 22:39:37
>>96
>>71のやり方でいいのでは?
あとビンゴの時は座標の数開いたら次行って宝がまだ残ってなら周囲探すとか だめ?
100 :2008/06/19(木) 22:46:12
>>98

ありがとうございます。
検索文字のカウントをmainではなく別関数でやってほしいのですが・・・
101デフォルトの名無しさん:2008/06/19(木) 22:52:38
大学もそろそろ前期が終わる時期なんですね。
102デフォルトの名無しさん:2008/06/19(木) 22:55:23
#include <stdio.h>

int 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;
}
103デフォルトの名無しさん:2008/06/19(木) 22:57:19
>>70

俺のプレイ平均回数とほぼ同じだ…
俺では理論上もうこれ以上は減らせないw

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6981.txt

104デフォルトの名無しさん:2008/06/19(木) 23:01:42
[1] 授業単元:課題研究(自由研究みたいなもの)
[2] 問題文(含コード&リンク):C言語で自動車エンジンの走行距離と走行時間による熱効率と燃費の算出
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: Microsoft Visual Studio でいいのか?
 [3.3] 言語:C言語
[4] 期限:2008/6/27
[5] その他の制限:Cの基本は一通り習ったはず

こんな感じなんですがお願いできますかね?
105 :2008/06/19(木) 23:04:14
102>>

ありがとうございました。
感謝してます。
106デフォルトの名無しさん:2008/06/19(木) 23:05:39
出来たけど、うpは来週水曜日くらいしとこっと。
107デフォルトの名無しさん:2008/06/19(木) 23:12:02
>>91
自分でやったら30手以内でできるね
自分の思考をコンピュータにやらせるのはめんどくさそうだが
108デフォルトの名無しさん:2008/06/19(木) 23:12:34
>>104
いくらなんでも情報が少なすぎだろう
109デフォルトの名無しさん:2008/06/19(木) 23:20:51
前スレの1000は知識遅れか?少なくとも、このスレ的にも
そしてどの環境、プログラマでも共通して gets はご法度なのに
擁護して、また憶測で勝手につじつまを合わせようと都合よく解釈して
授業でやるかもしれないよ?なんてこのスレ的にはどうでも良いことを
言い掛かってきて、何が楽しいんだ?
110デフォルトの名無しさん:2008/06/19(木) 23:21:19
104です。
あとどのような情報があればいいですか?
教授から出された課題がこれだけで課題に関してはこれ以上は俺自身もどうしようもない・・・。
あとVisual Studioのバージョンはおそらく2007年のもの。
特に制限はされてないのでCでてきることなら好きなようにやってもらえれば・・・。
課題のイメージとしてはガソリンエンジン車とディーゼルエンジン車をそれぞれ走らせ続けて適当な距離と時間を刻んでデータを取って保存できるようにしてもらえれば・・・。
グラフも作って出せとか言っていたからな、あの教授。
11186:2008/06/19(木) 23:30:04
何とかなりました。ありがとうございました
112デフォルトの名無しさん:2008/06/19(木) 23:42:44
>>110
入力されるものは何?
出力すべきものは何?
113104:2008/06/19(木) 23:54:09
出力されるべきはエンジンの熱効率と燃費。
入力するのはエンジンの出力と単位時間に消費される燃料の重さ。
走行時間と走行距離はループで回す方向で。
上記両方をループで回すのはきついかもしれんのでどちらか固定してもらってもおkかと
114デフォルトの名無しさん:2008/06/20(金) 00:02:49
>>99
マインスイーパ的な、なので、ビンゴの時はそのマスの周囲8マスにある
宝の数は不明かと。
もうちょっと込み入った何かをやらないと手数が足りないのではないかな。
…と見せかけて今までので実現できるならごめん。
115デフォルトの名無しさん:2008/06/20(金) 00:08:53
>>109
あんたもしつこいね。getsがよくないのは後から知ればいい。
それよりもくみ上げる力をつけることのほうが優先だっていってんの。
まず言語になれること。そこからやっていいこと悪いことを知ればいい。

日本語を書くときに「の」の連続はよくないよ、ということを知ったのは
「の」の連続をしてしまうくらいには日本語を知ったあとだろう?

ご法度であることを次の授業で云々と言っている人は他の人だからパス。
116デフォルトの名無しさん:2008/06/20(金) 00:11:21
>>50の並べ替えの部分がよくわからないんだが、どういう風にやればいいんだ?
117デフォルトの名無しさん:2008/06/20(金) 00:14:02
>>116
リストに追加する際、それらしいところに入れてあげれば勝手にソートされる
大きい順なので、たとえば、
3 が既にあるときに1を追加する場合は3の後ろにつなげる。
さらに2を追加する時は3と1の間にいれる。
118デフォルトの名無しさん:2008/06/20(金) 00:14:44
>>51>>52
C++じゃないとダメなのでnewに変えたのですがエラーが発生します
恐らく>>52さんのは試したものの、Cなのでダメなのでしょうが
119デフォルトの名無しさん:2008/06/20(金) 00:18:18
>>118
何がダメなのか知らないが、mallocでキャストするのは実にC++っぽい行為だぞ
120デフォルトの名無しさん:2008/06/20(金) 00:24:26
> C++っぽい
それCですから、mallocでキャスト
121デフォルトの名無しさん:2008/06/20(金) 00:25:59
Cはキャスト必要無いだろ
122デフォルトの名無しさん:2008/06/20(金) 01:38:55
>>121
あれ?蛇足って言ったけど、蛇足じゃないと指摘されたのに
まだ主張しますか?そんなにキャストしてもらえることを
期待しているなら、お前は絶対に今後はキャスツすんなよ
123デフォルトの名無しさん:2008/06/20(金) 01:46:07
型変換は明確なCの規格。
一人わかってないバカがファビョってるだけ。
124デフォルトの名無しさん:2008/06/20(金) 01:51:46
キャストしてはいけない、ならギャーギャー言ってもいいけど
してもしなくてもいいんだからどっちでもいいじゃん
125デフォルトの名無しさん:2008/06/20(金) 01:56:55
>>124
キャストしなくてもいいところに、キャストしろってギャーギャー言ってるアホがいるんだが。
126デフォルトの名無しさん:2008/06/20(金) 01:57:56
C++はmalloc非推奨ってことで終了。
127デフォルトの名無しさん:2008/06/20(金) 02:00:44
それよりも>>23が本当にC++の宿題なのかどうかが気になるんだが
128デフォルトの名無しさん:2008/06/20(金) 02:27:20
[1] 授業単元:
[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] その他の制限:特になし
つい最近始めたばかりです。どなたかお願いします
129デフォルトの名無しさん:2008/06/20(金) 02:36:59
>>123 っと、キャストの意味を知らない素人が申しております
130デフォルトの名無しさん:2008/06/20(金) 02:52:20
>>94
言動がキモイ・・・言い返し方もキモイ・・・だから一言居士はきめぇって
わざわざ改行?お前の真似をしてやったんだよ、皮肉だよ、気づけよ
構ってチャンw
131デフォルトの名無しさん:2008/06/20(金) 02:55:01
>>91の分かりやすい特徴
ズルなしで出来るか、ボケェ < 何か相手に意見するとき、
勢いづいて罵倒レスをつける癖がついてしまっている

> 自分のプレイの平均を出してみろ
命令口調。押し付けるタイプ。
132デフォルトの名無しさん:2008/06/20(金) 02:55:13
C研究
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

スルーされたのでもう一度書きます。
お願いします。
133デフォルトの名無しさん:2008/06/20(金) 03:14:40
>>130
どこまで恥の上塗りするのか見てみたいけど、
>>91 = >>94だと思ってる時点でアウトだ。
134デフォルトの名無しさん:2008/06/20(金) 03:41:48
>>133
彼に反論すると漏れなく同一人物認定されます。
135デフォルトの名無しさん:2008/06/20(金) 05:49:34
[1] 授業単元:プログラミング
[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
136デフォルトの名無しさん:2008/06/20(金) 06:09:34
[1] 授業単元: プログラミング演習基礎
[2] 問題文(含コード&リンク):成績データを処理するために実験用データを,乱数により生成するプログラムを作成せよ.
ただし,成績データは

学生番号,英語,数学,物理,化学,国語,社会

の6科目の得点を1行毎に学生番号毎に並んでいるものとする.得点は0点?100点の範囲に収まっている必要がある.
また,学生番号が1001番から9999番まで存在するとする.実験用データは全ての人数について作成する必要がないので,
コマンドライン引数から作成するデータ数を与え,その人数のデータを,同じくコマンドラインから与える
ファイル名のファイルに出力すること(標準出力を使わないこと).

[3] 環境
 [3.1] OS: Windows/Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 6/20 23:00
137デフォルトの名無しさん:2008/06/20(金) 06:45:53
>>136
#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;
}
138デフォルトの名無しさん:2008/06/20(金) 07:10:28
[1] 授業単元:プログラミング
[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] その他の制限:ポインタまで習いました

全然わからないのでよろしくお願いします
139デフォルトの名無しさん:2008/06/20(金) 08:13:49
>>79 >>80
明後日ってことは明日までまだ時間があるね。
よーーし、パパ、ちょっとがんばっちゃうぞぉ〜。
とりあえず、追加は出来たが、そのほかもやってみたいんで
それらも含めて出来たらうpしまつ。
140hoge ◆F6cdlTCMHg :2008/06/20(金) 09:54:28
>>135
ちょっとlexとか造りたくなったから自力でトークナイザ書いてみたよ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6984.txt
141デフォルトの名無しさん:2008/06/20(金) 09:55:56
>>139
構造体というものがよくわからないので配列で作ってもらえないですか?
と、言われるかと思うとしびれるよねw
気にせず満足いくものを作ってみるといいお
142デフォルトの名無しさん:2008/06/20(金) 10:40:31
[1] 授業単元:通信ソフトウェア
[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
143デフォルトの名無しさん:2008/06/20(金) 13:11:25
[1]CとC++
[2]テキストサウンドノベルを作成する事。
キー入力でメッセージを表示し、途中で選択肢を含める。(最大3つまで)
画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。
テキスト行数は、最低50行から最大100行までとする。
画面全消去方法は、先生に聞くこと。

#include"stdlib.h"
system("CLS");
    この時に画面すべて消せる
144104: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] その他の制限:課題に対する制限は特になし。

これでお分かり頂けるでしょうか?
145135:2008/06/20(金) 14:53:43
>>140
あ、ありがとうございます。
内容は全然わからなかったのですが、取り敢えずコンパイルしてみました。
概ね動作しました。何故か前回正常にOKが返った値(4.39183e32)
がNGと返ってくることがあったような感じです。入力ミスなのかも
しれません。
ネット上のソースを写して提出したら単位認定しないという
結構厳しい授業なので、参考にさせて頂いて、自分で書き直して
みます。
146デフォルトの名無しさん:2008/06/20(金) 15:13:36
>>145
>ネット上のソースを写して提出したら単位認定しない
このスレで言うのも何だがあたりまえだろ
全然厳しくないぞ
147デフォルトの名無しさん:2008/06/20(金) 15:33:59
>>145
それはきびしいねwwwww
148デフォルトの名無しさん:2008/06/20(金) 15:56:44
出題者も当然このスレはチェックしています
俺の出した課題が出てると喜んでいるでしょう
149デフォルトの名無しさん:2008/06/20(金) 16:40:40
[1] 授業単元: プログラミング演習基礎
[2] 問題文(含コード&リンク):
複数の成績データを1度に読み込んで,それぞれのファイルに含まれる学生数と,
各科目の平均点を求めて,ファイル名と共に出力するプログラムを作成せよ.
成績ファイルは,
学生番号(整数),英語(整数),数学(整数),物理(整数)
の得点が一行に記載されている.ただし,学生番号順には並んでないし,抜けがあるかもしれないものとする.
学生番号は整数のみ,0〜番などは考慮しなくてよい
[3] 環境
 [3.1] OS: Windows/Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 6/20 23:00
[5] >>137ありがとう、これもどなたかお願いします\(^o^)/
150149:2008/06/20(金) 16:42:55
書き忘れ・・・
argvとかを使って

% 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
となる感じでお願いします(数値は適当
151デフォルトの名無しさん:2008/06/20(金) 17:50:55
[1] 授業単元:Cプログラミング
[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;
}
152デフォルトの名無しさん: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] 言語:どちらでも可
153デフォルトの名無しさん:2008/06/20(金) 18:05:47
ナップサック問題の亜種だな
演習でやるなら動的計画法でも使えばいい。
154デフォルトの名無しさん:2008/06/20(金) 18:50:44
[1] 授業単元:情報処理
[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行だけを反転して出力ならできるのですが・・・。
15550:2008/06/20(金) 18:59:17
なんとか頼みこんで期限を数時間遅らせて貰い、
自分でも調べたりしてるのですが全く理解ができません。
過去ログ探してみるも同じのはあったけどソースが消されていたり。
何とかならないでしょうか。
しつこいかもですがどうか御願いします。
156デフォルトの名無しさん:2008/06/20(金) 19:23:57
>>139
ぜひお願いします。
157>>155 やっつけ:2008/06/20(金) 19:26:10
#include <iostream>
#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);
}
158デフォルトの名無しさん:2008/06/20(金) 19:53:50
>>79
> 名前、年齢、メアド
> ソート(No.)、
えっ!?
159デフォルトの名無しさん:2008/06/20(金) 20:17:00
>>158
主キーというか登録順でいいんじゃない?
160デフォルトの名無しさん:2008/06/20(金) 20:45:33
>>157 これじゃmalloc使ってないよ。よし。
#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
  }
}
161デフォルトの名無しさん:2008/06/20(金) 20:46:10
>>50 C言語指定だと勝手に解釈してみた
#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;
}
162デフォルトの名無しさん:2008/06/20(金) 20:56:09
>>154
こんなんでいいのかな?

#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;
}
163デフォルトの名無しさん:2008/06/20(金) 20:56:48
>>50

c++でmalloc?
164デフォルトの名無しさん:2008/06/20(金) 21:02:58
>>50 の人気に shit!
165デフォルトの名無しさん:2008/06/20(金) 21:05:33
>>83-85
遅れましたが、ありがとうございました
166デフォルトの名無しさん:2008/06/20(金) 21:20:38
>>162
ありがとうございます。
ですが、コンパイルしたファイルを単体で実行するとフプログラムが終了しないのですが・・・。
これはどうしようもないのでしょうか?
167デフォルトの名無しさん:2008/06/20(金) 21:24:45
繰り返し処理についてなんですが
168デフォルトの名無しさん:2008/06/20(金) 21:27:15
>>166
Ctrl+D
16950:2008/06/20(金) 21:27:20
何とか提出に間に合いました。
>>157 様、>>160 様、>>161 様、
お手数おかけました。本当に有難う御座います。
何とか提出が間に合いました。

>>164
C++のを使ってますね。
170デフォルトの名無しさん:2008/06/20(金) 21:28:47
Cなの?C++なの?という疑問をすべてスルーして提出まで
やってのけた>>50はある意味大物か
171デフォルトの名無しさん:2008/06/20(金) 21:28:50
>>162
>*(str+i)=buf;
まさかこれで文字列がコピーされてるとか思ってる?
17250:2008/06/20(金) 21:29:08
何か同じの2回言ってる orz
期限のとかも間違えてたし…。
すみません、次からはちょっと落ち着いて書き込もうと思います。
173デフォルトの名無しさん:2008/06/20(金) 21:31:25
>>171
少なくともそれを期待したコードにはなってないから分かってると思うよ
174デフォルトの名無しさん:2008/06/20(金) 21:32:59
>>173
そうか?
str[i]に毎回同じbuffのアドレスいれてるからわかってないと思うんだが。
175デフォルトの名無しさん:2008/06/20(金) 21:34:10
一見簡単そうにみえるようにちょちょっとやるのがここの醍醐味
printf とか scanf とか再帰とかw
176 ◆qQYVX6rY3I :2008/06/20(金) 21:41:35
1.授業単元:データ構造

2.問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6987.txt

3.環境:vista C++
visual studio2008

4.期限: 6/21(土)夕方6時まで

5.その他の制限:基本事項は習ってます。期限が近くてかなり焦ってます。
         どうかよろしくおねがいします。

177152:2008/06/20(金) 21:44:26
>>153
ありがとうございます
調べてみます
178デフォルトの名無しさん:2008/06/20(金) 22:00:26
>>174
しかも毎回*(str+i)にbuffを入れておきながら、関数に渡してるのは*strという事実
意味ねーw
179デフォルトの名無しさん:2008/06/20(金) 23:47:50
[1] 授業単元:アルゴリズム
[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
180179:2008/06/20(金) 23:51:43
改行するの忘れました・・・
読みにくくて申しわけないですorz
181デフォルトの名無しさん:2008/06/20(金) 23:53:25
[1] 授業単元: プログラミング演習
[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] その他の制限: ポインタ使用可です。

よろしくお願いします。
182デフォルトの名無しさん:2008/06/21(土) 00:08:47
#include <stdio.h>

void 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;
}
183デフォルトの名無しさん:2008/06/21(土) 00:13:20
>>182
while(*str) {
*str = 'a' + (*str - 'a' + n) % 26;
str++;
ここを少し説明していただけませんか?
184デフォルトの名無しさん:2008/06/21(土) 00:45:23
単にchar配列をn文字前に進めてるだけだろ
185デフォルトの名無しさん:2008/06/21(土) 00:46:51
[1] 授業単元:C言語
[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] その他の制限:特になし

よろしくお願いします
186デフォルトの名無しさん:2008/06/21(土) 00:56:06
>>185
double mean(int a[] , int length)
{
int i;
double ave=0.0;
for(i=0;i<length;i++)
ave+=a[i];
return ave / (double)length;/*キャストいらないかもしれないけど明示するために一応付けとく*/
}
187デフォルトの名無しさん:2008/06/21(土) 01:14:56
>>158
ソートは出題者のほうもよくわかってない感じなんで、とりあえず追加だけお願いします。
188デフォルトの名無しさん:2008/06/21(土) 01:36:03
>>187
ういっ、もう少しでうpするでおじゃる●のクソースが見られるでおじゃるよ
189デフォルトの名無しさん:2008/06/21(土) 01:43:10
190デフォルトの名無しさん:2008/06/21(土) 01:45:08
191デフォルトの名無しさん:2008/06/21(土) 01:47:04
クソースとへりくだりつつも、内心、「作品」だと思っている
ところがイタい
192デフォルトの名無しさん:2008/06/21(土) 01:48:02
>>183
a〜zまでは文字コードが昇順に並んでいることと、a〜zまでは26文字あること。
それくらいしか気になる点はないと思う。
193デフォルトの名無しさん:2008/06/21(土) 01:56:23
>>191
何をおっしゃるか、これは紛れもなく初心者向けにレベルを落とした
クソースでおじゃっ
194デフォルトの名無しさん:2008/06/21(土) 02:08:40
195デフォルトの名無しさん:2008/06/21(土) 02:42:30
どうみても初心者向けとは思えないプロ教育を受けた人のコード
である件について
196デフォルトの名無しさん:2008/06/21(土) 02:46:43
ねーよw
197デフォルトの名無しさん:2008/06/21(土) 03:01:18
えぇ〜〜、思いつきで書いたクソースゆえ、しかも
プロとしてコードを書いてないゆえ、クソースということで
我慢してもらっているでおじゃる。上には上がいるゆえ、
まだまだ精進するでごじゃるよ。
198デフォルトの名無しさん:2008/06/21(土) 05:52:41
199デフォルトの名無しさん:2008/06/21(土) 06:36:40
[1] 授業単元:プログラミング
[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] その他の制限:ポインタまで習いました

全然わからないのでよろしくお願いします
200デフォルトの名無しさん:2008/06/21(土) 09:58:43
>>199
汚いソースですが。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6996.txt
MOJIで文字の種類、HANIで範囲を指定できるようにしました。
範囲チェックとかしてないので入力不可文字を範囲に含めないように。
マスターの文字列については一応重複チェックしてます。
201デフォルトの名無しさん:2008/06/21(土) 10:02:34
実行してみた?
202デフォルトの名無しさん:2008/06/21(土) 10:09:33
あー、環境書いてなかった。
gccでやってるからbccだと動かないかもしれない。
203デフォルトの名無しさん:2008/06/21(土) 10:12:17
環境関係なく無限ループになる可能性があるんだが。
204デフォルトの名無しさん:2008/06/21(土) 10:20:16
うむ。単純ミスorz
今のままだと重複したら無限ループするので
makerandomstrのi--;の次の行にc=0;入れてください。
205デフォルトの名無しさん:2008/06/21(土) 10:32:21
ソースを上げる時は、せめて

テスト済みなのか、
コンパイル済み(文法エラー無し)
未コンパイルなのか、コメントに書きませんか?
206デフォルトの名無しさん:2008/06/21(土) 10:36:14
宿題を片付けてほしい側
 ちゃんと動くソースコードがほしい
 題意を満たしていてほしい
 何も出来ない初心者なので全部やってください><

           ↑
   このギャップは埋められない
           ↓

宿題を片付ける側
 面白そうだからやってみた

(^ω^ がんばったお
207デフォルトの名無しさん:2008/06/21(土) 10:43:10
>>205
コンパイル通らなきゃソース上げないと思うんだが。
未コンパイルの可能性があるのはレスに直接ソースを書いてる場合位のような。

>>205が質問側なのか回答側なのか知らないけど
回答してる側としてはそこまで要求されてもなあ、と思う。
質問者が単位落としたとしてもこっちには関係ないことだし。
208199:2008/06/21(土) 10:58:21
>>200
ありがとうございます!
えーとbccでコンパイルしてみましたがヒットもブロウも0になってしまいます・・
209>>132:2008/06/21(土) 11:23:14
>>132お願いします
210デフォルトの名無しさん:2008/06/21(土) 11:38:39
[1] 授業単元:Cプログラミング
[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;
}
211デフォルトの名無しさん:2008/06/21(土) 11:48:14
山形大学ですねわかります
212デフォルトの名無しさん:2008/06/21(土) 11:54:15
>>205
なんか不具合があればここで報告しなよ。

せっかくアップしてもノーレスなら対処しようが無い。
あとレスがあれば回答者のモチベーションも上がると思うが。
213デフォルトの名無しさん:2008/06/21(土) 12:12:25
質問者のモティベーションのほうが大切なような気がしないでも
ないのだが...
214デフォルトの名無しさん:2008/06/21(土) 12:13:09
ここに丸投げする奴にやる気があるとでも?
215デフォルトの名無しさん:2008/06/21(土) 12:30:03
まぁ軽く藁をも掴む気概でいるんだろ
216デフォルトの名無しさん:2008/06/21(土) 12:39:52
なんかあれだなここで丸投げしてる奴が、実務の一次請けとか発注元の卵だったりすると最悪だな。
丸投げの予行演習といったところか(w
217デフォルトの名無しさん:2008/06/21(土) 13:14:37
>>216
そういうときは、クソースで返すでおじゃるよ
218デフォルトの名無しさん:2008/06/21(土) 13:19:05
それが命取りだった
219デフォルトの名無しさん:2008/06/21(土) 14:13:34
>>199
つ http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6997.txt
一応正常に動きますが マスタが含む文字を5文字連続で入力するとバグります。
例:マスタ "yoooo" 入力 "yyyyy".etc・・・
テスト用に不必要なものまで表示しています。気になるようでしたら削除してください。
220219:2008/06/21(土) 14:28:21
>>219の訂正
マスタが含む文字を複数入力するとバグる orz
バイトいってくるわ
221デフォルトの名無しさん:2008/06/21(土) 15:50:11
こんな課題でそんな糞コード出されても困る。
222デフォルトの名無しさん:2008/06/21(土) 16:09:28
[1] Cプログラミング演習
[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] とくになし

初心者なので、出来れば分かりやすいコードでお願いします。
お手数おかけしまして、申し訳ないです。
宜しく、お願いします。
223デフォルトの名無しさん:2008/06/21(土) 16:16:19
224デフォルトの名無しさん:2008/06/21(土) 16:20:24
>>219
ありがとうございます。
そこの部分考えてみます( ^ω^)
225デフォルトの名無しさん:2008/06/21(土) 16:24:55
226デフォルトの名無しさん:2008/06/21(土) 17:30:24
[1]プログラミング基礎
[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
極力↑に近い解答をいただけると嬉しいです
よろしくお願いします
227デフォルトの名無しさん:2008/06/21(土) 17:37:56
>>226
int 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;
}
}
}
228デフォルトの名無しさん:2008/06/21(土) 17:52:40
>>226
for(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];
}
}
}
229デフォルトの名無しさん:2008/06/21(土) 18:19:30
[1] 授業単元: ドイツ言語入門
[2] 問題文:次に打ち込まれた文字列に対して適切な文章をそれぞれ返すプログラムをハッシュテーブルを用い、ドイツ言語で書きなさい。"Guten tag","Sie du Japaner?","unko"
[3] 環境 家賃三万円のそれなりの環境
 [3.1] OS: VISTA
 [3.2] コンパイラ名とバージョン:コンパイラとは何ですか?
 [3.3] 言語:ドイツ言語
[4] 期限:私の気が向くまで
[5] その他の制限:門限が7時です
230デフォルトの名無しさん:2008/06/21(土) 18:20:17
反応がない見捨てられたようだ
231デフォルトの名無しさん:2008/06/21(土) 18:20:43
ここの住人は冷たい・・・
232デフォルトの名無しさん:2008/06/21(土) 18:21:06
VIPなら一分と待たずにレスが返ってくるのに・・・
233デフォルトの名無しさん:2008/06/21(土) 18:21:37
やはりプログラマーの心は荒んでいるという噂は本当だったんですね
234デフォルトの名無しさん:2008/06/21(土) 18:24:16
もう期限切れか
235デフォルトの名無しさん:2008/06/21(土) 18:53:55
>>227>>228
ありがとうございます
236デフォルトの名無しさん:2008/06/21(土) 20:24:51
>>226
ninzuu = 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++)
237デフォルトの名無しさん:2008/06/21(土) 20:45:40
>>194
どうも素晴らしいソースありがとうございました。
余裕があればでいいので、削除と編集も作っていただきたいです。
238デフォルトの名無しさん:2008/06/21(土) 20:48:49
>>236さんもありがとうございます
239デフォルトの名無しさん:2008/06/21(土) 21:08:43
>>90お願いします。
240デフォルトの名無しさん:2008/06/21(土) 21:11:21
241デフォルトの名無しさん:2008/06/21(土) 21:14:20
>>240
ありがとうございました。ちなみにここって、自分の作ったソースのどこが悪いかって見てもらえるんですか?
242デフォルトの名無しさん:2008/06/21(土) 21:16:42
>>241
さすがにそりゃスレ違い、となる。質問なら↓で
C言語なら俺に聞け(入門篇) Part 30
http://pc11.2ch.net/test/read.cgi/tech/1213367888/
243 ◆qQYVX6rY3I :2008/06/21(土) 21:54:51
すいません>>176です。
提出期限を完全に間違えてました。。
6/23
夕方6です。
いずれにせよ焦ってます;;
どなたか目を通してくれるとありがたいです;;
244デフォルトの名無しさん:2008/06/21(土) 22:05:08
せ、せめてリアクションがほしかった・・・orz
245デフォルトの名無しさん:2008/06/21(土) 22:15:28
何を問うているのかわかりずらいな、>>176
246デフォルトの名無しさん:2008/06/21(土) 22:18:33
247デフォルトの名無しさん:2008/06/21(土) 22:25:04
248デフォルトの名無しさん:2008/06/21(土) 22:31:49
【本日VIP投票日ですた】●第3回全板人気トナメ●【反省会会場】
http://yutori.2ch.net/test/read.cgi/news4vip/1214054829/

vipを助けてくれ!!!!!!!!
負けそうだ!!!!!
シベリア超特急に負けそうなんだ!!!!!!!!!!!


 俺 達 の v i p が 無 く な る ! ! ! ! ! ! ! !

ニュー速の本部を荒らして俺らに投票してくれ!!!!!!!!
 P C ケ ー タ イ 友 達 家 族 を フ ル 動 員 し て
コードをとってきてくれ!!!!!!!!!!!!!


ここで勝ったら二回戦もよろしく!!!!!!!!!!!


つまんねー話してないで協力するんだ!!!!!!!!!!!!!!!!
2chが変わってしまうぞ!!!!!!!!!!!!!!
助けてくれ!!!!!!!!!!!


まだまだ俺たちはおわれねぇ!!!!!!!!!!!!!!!!!!
249デフォルトの名無しさん:2008/06/21(土) 22:43:04
>>176
>>243
問題文が悪い、そんなんじゃ誰も手を付けない
結局、逆ポーランド記法と通常の計算を数値入力でやれって事か?
やって欲しいなら、具体例をだしなよ
250 ◆qQYVX6rY3I :2008/06/22(日) 01:29:43
>>176です。

すいません。
問題文をそのまま載せたんですが
要点をまとめるべきでした。

つまり>>249さんの通りです。

例としては

入力数式
25.18,#,+,8,*,6,7,10,+,*,-,8,/

に対する答えは -5

となっています。
251デフォルトの名無しさん:2008/06/22(日) 01:39:03
>>250
余計わからん

25.18,#,+,8,*,6,7,10,+,*,-,8,/
が-5になる流れを書いてくれ
252デフォルトの名無しさん:2008/06/22(日) 02:15:19
まあ、この調子じゃ期限内に>>176が行なわれる事はないだろう
ヒントに3つの数字を3桁の数値に変換する関数とかあるのに、いきなり 25.18 とか…
本人が問題を理解してないか、問題文以外に課題の仕様があるのを正確に伝えて無いかがオチかと
253デフォルトの名無しさん:2008/06/22(日) 02:17:19
まあ恐らく25,18の書き間違えだろう
それならば-5になる
254デフォルトの名無しさん:2008/06/22(日) 02:51:54
25,18
だとしても逆ポーランド記法なら-6ではあるまいか…
255デフォルトの名無しさん:2008/06/22(日) 02:53:28
スマン、桁落ちさせるのか、四捨五入だと思ってた…
256デフォルトの名無しさん:2008/06/22(日) 03:23:52
”書き間違え”は”書き間違い”の書き間違えだろう
257デフォルトの名無しさん:2008/06/22(日) 05:54:21
どなたか>>64をお願いします!
258デフォルトの名無しさん:2008/06/22(日) 06:36:18
25,18,#,+,8,*,6,7,10,+,*,-,8,/

25
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

こんな感じになった
259デフォルトの名無しさん:2008/06/22(日) 07:11:13
260デフォルトの名無しさん:2008/06/22(日) 11:53:48
>>148
そういう発言をしてるあなたはどこにお住まいの方ですか?
あなたの出した課題が載ってたとか?
261デフォルトの名無しさん:2008/06/22(日) 12:23:24
気にすんなよ
最悪バレても単位が出ないだけだろ
もっとどうどうとしろ
262デフォルトの名無しさん:2008/06/22(日) 13:39:55
1.授業単元:分岐演算テーブル作成

2.問題文:http://www-2ch.net:8080/up/download/1214109450610634.GbvlBe

3.環境:C言語がコンパイル環境できるならどれでも可

4.期限: できるだけ早く

5.その他
他の分岐演算テーブルは解けたんですが、
最後がどうしても解けません・・・・数学に自信のある方お願いしますorz
※例題とかそういった説明補足に関してはreadme.txtを参照ください。
263デフォルトの名無しさん:2008/06/22(日) 14:09:39
>>247
お願いした通り作って下さってありがとうございました。
質問なんですが16行目のtypedefってなんの処理なんですか?
何せまだC初めて3ヶ月しか経ってなくて…。
264デフォルトの名無しさん:2008/06/22(日) 14:15:46
265デフォルトの名無しさん:2008/06/22(日) 15:02:09
だ、誰か>>144を頼みます><
266デフォルトの名無しさん:2008/06/22(日) 15:07:56
> ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください
267179:2008/06/22(日) 15:09:28
とりあえず騎士巡歴のソースを見つけたのですが、
これに時間計算量の評価回数と実行時間を
どういうやって出力させればいいか全く解りません。

どなたか・・・よろしくお願いします・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7008.c
268デフォルトの名無しさん:2008/06/22(日) 15:43:38
269262:2008/06/22(日) 15:47:19
int main(void)
{
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の課題の算出方法に関する縛りですが、
上記ループ内の様な式で算出する事が条件です。
270デフォルトの名無しさん:2008/06/22(日) 16:15:42
>>269
それは、読めば分かるから。余計な茶々はいれないで。
縛りについて、ほかには? S
271262:2008/06/22(日) 16:22:16
>>270
すみません。一応スレ側にも書いておこうかと思って。
他の縛りは特にないです。
272デフォルトの名無しさん:2008/06/22(日) 17:05:42
>>179
5x5, 6x6のそれぞれの解の個数わかる?

あってるのかどうかわからないから
アップできない。
ちなみにまだ課題1だけしか・・・
273デフォルトの名無しさん:2008/06/22(日) 17:17:40
>>262
for(i=0; i<256; i++) chTable[i] = (int)(16-i/8.0) * (int)(16-i/8.0);
274272:2008/06/22(日) 17:23:34
あ、C言語じゃん
C++で作ってしまった
もういいや
275デフォルトの名無しさん:2008/06/22(日) 17:25:37
>>273
見た瞬間、間違ってるかと…
最初の値は0じゃね
276デフォルトの名無しさん:2008/06/22(日) 17:26:52
見た瞬間とか言っていいレベルじゃないから、実行してから口から糞たれろ。
277デフォルトの名無しさん:2008/06/22(日) 17:29:18
>>276
おまいさん、バイナリエディタすら持ってないのか…?
278デフォルトの名無しさん:2008/06/22(日) 17:31:57
256をunsigned char に代入したらどうなると思ってんだよ、このボケが
279デフォルトの名無しさん:2008/06/22(日) 17:33:02
0xFFです
280デフォルトの名無しさん:2008/06/22(日) 17:36:11
(int)(16-0/8.0) * (int)(16-0/8.0)
これが256になるのか?
281デフォルトの名無しさん:2008/06/22(日) 17:39:45
>>280
どうみても0
282デフォルトの名無しさん:2008/06/22(日) 17:40:22
にはならない
283デフォルトの名無しさん:2008/06/22(日) 17:40:31
16 * 16 が256にならないでどうすんだよw
284270:2008/06/22(日) 17:41:55
unsigned char j;
unsigned 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]);
}
285デフォルトの名無しさん:2008/06/22(日) 17:45:06
270の登場で、更に盛り上がってまいりましたw
286デフォルトの名無しさん:2008/06/22(日) 17:49:05
(i==0) ? 0 : (int)(16-i/8.0) * (int)(16-i/8.0);

こうだろw
片落ち代入じゃ、同じデータを作っても式があってないって事だろ?
違うのか…
287デフォルトの名無しさん:2008/06/22(日) 17:49:12
盛り上がるもなにも、猿以下のアホが湧いてるだけだろ。
288デフォルトの名無しさん:2008/06/22(日) 17:49:23
[1] 授業単元: 実験
[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でプロットするからです。
289デフォルトの名無しさん:2008/06/22(日) 17:54:18
280は(int)(16-0/8.0) * (int)(16-0/8.0)がいくつになると思ったのか答えてくれ
290デフォルトの名無しさん:2008/06/22(日) 17:56:02
0x00000100です
291デフォルトの名無しさん:2008/06/22(日) 17:59:31
ID無しのスレでは何事も諸行無常なり
292デフォルトの名無しさん:2008/06/22(日) 18:00:17
-と/の優先順位がわからないって小学生以下だなw
293デフォルトの名無しさん:2008/06/22(日) 18:03:47
顔真っ赤な人がいると聞いて。
294デフォルトの名無しさん:2008/06/22(日) 18:04:10
>>289
0/8.0ってプログラム落ちないか?
295デフォルトの名無しさん:2008/06/22(日) 18:05:43
8.0/0なら落ちます
296デフォルトの名無しさん:2008/06/22(日) 18:07:11
どこまで釣りでどこまで本気かわからないスレだw
297デフォルトの名無しさん:2008/06/22(日) 18:09:21
270が可哀相だよ
合ってるよスゲーよ
298デフォルトの名無しさん:2008/06/22(日) 18:10:09
この流れはwwwwwwwwwww
299デフォルトの名無しさん:2008/06/22(日) 18:12:21
>>294
void main(){0/8.0;}
300デフォルトの名無しさん:2008/06/22(日) 18:37:08
8x8のナイトの旅がなかなか解き終わらない(´・ω・`)

やっぱり総当り厳しいのかな・・・
301デフォルトの名無しさん:2008/06/22(日) 18:37:10
[1] 授業単元:暇潰し
[2] 問題文(含コード&リンク):
平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
nは10万以上のため、全ての重みをメモリ上で保持してソートするのは現実的でない。現実の計算機上で高速に計算しソートする方法を示せ

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: g++
 [3.3] 言語: C++
[4] 期限: (無期限]
[5] その他の制限: なし

前スレで回答がもらえなかったので再掲載。
302デフォルトの名無しさん:2008/06/22(日) 18:47:54
>>288
h*の位置がおかしくねーか?
h*(fk1[i] + fk2[i])/2だと思うんだが。
303 ◆hN02YkuTxM :2008/06/22(日) 18:56:40
[1] 授業単元: プログラミング
[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] その他の制限:
本文内にある三箇所の()の中にのみ手を加えて下さい
304デフォルトの名無しさん:2008/06/22(日) 18:57:14
>>301
nが10万程度の場合ならば、主記憶が128GBの計算機を用いれば簡単。
S社の製品の場合、最も廉価なものであれば200万円程度で購入できる。
305デフォルトの名無しさん:2008/06/22(日) 19:06:47
>>301
データをディスクに書き込んで、ディスク上でマージソート
再帰が深くなって断片がメモリに載るサイズになったら、好きなアルゴリズムを使ってメモリ上でソート
306デフォルトの名無しさん:2008/06/22(日) 19:15:08
307デフォルトの名無しさん:2008/06/22(日) 19:17:03
どうでもいいことだが

>>301
> 平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
# 平面上にn個の点について 〜中略〜 昇順にソートする。
なの?
それとも辺をソートするの?><;;
308デフォルトの名無しさん:2008/06/22(日) 19:18:33
>>307
日本語でおk
309 ◆hN02YkuTxM :2008/06/22(日) 19:23:42
>>306
ありがとうございました
310デフォルトの名無しさん:2008/06/22(日) 19:36:27
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク)
10進数の正の整数を入力し、2進数に変換して表示せよ
可能ならば、正の実数も変換できるものを作成せよ
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:明日まで

よろしくお願いします
311262:2008/06/22(日) 19:43:08
様々な解答ありがとうございます
上記の解答を元に自分なりに色々思考を
凝らしていきたいと思います


本当にありがとうございました
312デフォルトの名無しさん:2008/06/22(日) 19:44:01
>>310
#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;
}
313デフォルトの名無しさん:2008/06/22(日) 19:47:01
314デフォルトの名無しさん:2008/06/22(日) 19:48:07
315デフォルトの名無しさん:2008/06/22(日) 19:55:11
>>288
func(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*/
}
}
316デフォルトの名無しさん:2008/06/22(日) 20:09:00
>>310
#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;
}
317デフォルトの名無しさん:2008/06/22(日) 20:14:52
>>103
微妙ですがありがとうございます
318デフォルトの名無しさん:2008/06/22(日) 20:15:55
何様だw
319デフォルトの名無しさん:2008/06/22(日) 20:19:35
ワロタ
320デフォルトの名無しさん:2008/06/22(日) 20:21:17
>>263
>>247 に不要なゴミコードが残ってた・・・気づいたら消しておいて。
> printf("p : %p \n",p);
データ追加、コピーの辺り。あと、一番最後に free(list); を忘れてた。

>>264 に説明があるけど、コードの中では
struct p_dataの構造をDATA型として、struct node_listの構造をLIST型
として定義し、変数の宣言のときに、わざわざ struct p_data と書かずに
DATA以下適当に変数を宣言できるようになってる。
321デフォルトの名無しさん:2008/06/22(日) 20:21:32
>微妙ですがありがとうございます
微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
微妙ですが
322デフォルトの名無しさん:2008/06/22(日) 20:23:08
>>103
> 俺のプレイ
> もうこれ以上は減らせないw
そうかそうか、何回も何回もやりまくってやりまくってぇ〜
323デフォルトの名無しさん:2008/06/22(日) 20:24:12
>>312>>316
ありがとうございます
>>演算子(?)は初見なんでぐぐってきます
324hoge ◆ZdPTx91qxk :2008/06/22(日) 20:36:18
>>312
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7013.txt
まぁもう回答でてるっぽいけどな
325デフォルトの名無しさん:2008/06/22(日) 20:39:45
ありがとうございます!!!!
微妙ですが
326デフォルトの名無しさん:2008/06/22(日) 20:41:11
微妙ですが
が、今後のスタンダードかなるほど
327デフォルトの名無しさん:2008/06/22(日) 20:41:39
このスレで笑ったのは初めてかもしれない
328デフォルトの名無しさん:2008/06/22(日) 20:49:02
>>317
最近の人間はプログラムの意識が高いんだな…
構造体習って無いから使うな、簡単なコードで、人間と同等以上のAIプログラムを作れって…
と、作った本人が言って見るテスト

キミの周りの学生が、余裕でその課題をこなしてるなら
キミは今居る場所に居つづける事を考え直した方が良いかもよw
329デフォルトの名無しさん:2008/06/22(日) 20:51:48
揚げ足取りがミイラ取りになってる件
330デフォルトの名無しさん:2008/06/22(日) 20:57:17
微妙ですが私も揚げ足取りになってしまうかもしれません ><;
331デフォルトの名無しさん:2008/06/22(日) 21:05:18
[1] 授業単元: Cプログラミング実習
[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言語は習ってないので簡単な関数でお願いします)
332デフォルトの名無しさん:2008/06/22(日) 21:11:35
>>331
なんか、前スレにマイナスにも対応しているものがあった・・・
ちと探してくる
333デフォルトの名無しさん:2008/06/22(日) 21:14:37
>>332
わざわざすいません<(_ _*)>
334デフォルトの名無しさん:2008/06/22(日) 21:20:35
>>331
int型は16bitでいいの?
335デフォルトの名無しさん:2008/06/22(日) 21:25:17
336デフォルトの名無しさん:2008/06/22(日) 21:29:04
>>331
#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");
}

数値は引数で入力、エラーチェックはしてない
337デフォルトの名無しさん:2008/06/22(日) 21:33:54
>>331
#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;
}
338デフォルトの名無しさん:2008/06/22(日) 21:34:00
微妙だな
339デフォルトの名無しさん:2008/06/22(日) 21:40:10
いや、絶妙だ
340デフォルトの名無しさん:2008/06/22(日) 21:42:20
>>334
VS2005でWinが対象だから32bitじゃない?
341デフォルトの名無しさん:2008/06/22(日) 21:42:51
絶妙ですがありがとうございます
342デフォルトの名無しさん:2008/06/22(日) 21:45:06
まっ、待ってたもう、麻呂の16進数まで対応したクソースを拝むでおじゃるよ
もう少し待ってたもう
343デフォルトの名無しさん:2008/06/22(日) 21:51:37
>>340
実行例が16桁だから…
344デフォルトの名無しさん:2008/06/22(日) 21:52:05
int i,n;
int bit=sizeof(int)*8;
//nをキーボードから入力
for(i=bit-1; i>=0; i--)
printf("%d", n>>i&1);
345デフォルトの名無しさん:2008/06/22(日) 21:52:46
>>343
それは確かに気になった…。
346331:2008/06/22(日) 22:02:29
テキストの問題なんですけど、何ビットとか書いてないんですよ・・・
多分16ビットでOKだと思います。
347デフォルトの名無しさん:2008/06/22(日) 22:03:37
Winでint型だと普通は32bitだけどね
348デフォルトの名無しさん:2008/06/22(日) 22:07:13
普通にsizeof演算子使えよ
でも1byteが9bitの環境もあるって聞いたことあるな
349デフォルトの名無しさん:2008/06/22(日) 22:11:32
テキストってことは16bit時代の参考書をそのまま使ってるんじゃね?
あくまで「int型」の内部表現を出力するんであれば32bitが正解だろうなぁ
350デフォルトの名無しさん:2008/06/22(日) 22:12:10
せっかくがんばったのでうpっときます。

>>179
C++だけど参考にでもしてください。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7016.cpp
351350:2008/06/22(日) 22:14:09
一番最後のcoutではCtrl+Gだったけど、ダメみたいね・・・
352350:2008/06/22(日) 22:15:29
あら、コピったら生きてた

さばら
353デフォルトの名無しさん:2008/06/22(日) 22:15:42
DWORD
WORD
BYTE表現でいいだろ
354デフォルトの名無しさん:2008/06/22(日) 22:22:32
>>301 nが小さいときだけおk
#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;
}
355デフォルトの名無しさん:2008/06/22(日) 22:22:44
16進数表示ならこんな漢字かな
実行して無いからわからんが

for(i=bit-4; i>=0; i-=4)
printf("%c", "0123456789abcdef"[n>>i&15]);
356デフォルトの名無しさん:2008/06/22(日) 22:25:32
>>331
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7017.c
まっ、麻呂の、麻呂のクソースを見てたもうぅ〜〜
10進数の数値を2〜16進数まで変換できるでおじゃる
357デフォルトの名無しさん:2008/06/22(日) 22:28:53
>>350
ちょ、俺のコンパイラ(BCC5..9.3)だと
direction++;で
エラー E2277 chess1.cpp 362: 左辺値が必要
(関数 CAnalyzeTourOfKnight::AnalyzeTourOfKnight(ANALYZETYPE) )
358デフォルトの名無しさん:2008/06/22(日) 22:29:23
微妙だな
359デフォルトの名無しさん:2008/06/22(日) 22:33:05
クソースとしては絶妙でおじゃ
360デフォルトの名無しさん:2008/06/22(日) 22:33:11
まあ出題者がgcc指定してるからgccで通ればよいのか
361デフォルトの名無しさん:2008/06/22(日) 22:37:44
>>357
>>360
いや
俺もbccなんだけど
そこで落ちる理由はわからん・・・??
俺の環境じゃ落ちないぞ?
362デフォルトの名無しさん:2008/06/22(日) 22:39:20
それは奇妙だな
363デフォルトの名無しさん:2008/06/22(日) 22:42:57
C:\Documents and Settings\knight>bcc32 TourOfKnight
Borland 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

これだけ
364デフォルトの名無しさん:2008/06/22(日) 22:44:11
>>361
BCC(今はCodeGearCCだからCCCか)のバージョンは同じ?
5.9.3ってBCB2007の付属品だよ。
フリーで配布されているのは5.5.1。
365デフォルトの名無しさん:2008/06/22(日) 22:44:39
>>364
5.5.1
366デフォルトの名無しさん:2008/06/22(日) 22:46:08
enum値のインクリメントは許されないのか・・・・
367デフォルトの名無しさん:2008/06/22(日) 22:46:42
ちなみにVC9のエラーログ
c:\documents and settings\********\my documents\visual studio 2008
\projects\learn1\chess1\chess1.cpp(367) : error C2676: 二項演算子 '++' :
'CAnalyzeTourOfKnight::DIRECTION' は、この演算子または定義済の演算子に
適切な型への変換の定義を行いません。(新しい動作; ヘルプを参照)
368デフォルトの名無しさん:2008/06/22(日) 22:51:13
>direction++;で
>エラー E2277 chess1.cpp 362:

ファイル名を chess1.cにするか
direction = direction + 1;
にしたらいいんでない?
369デフォルトの名無しさん:2008/06/22(日) 22:51:49
>>366
そのままではできないが、演算子多重定義すればできる。
370デフォルトの名無しさん:2008/06/22(日) 22:52:59
>>368
ああそうか。てっきり>>350

>C++だけど参考にでもしてください。

と書いてあったからcppしてたわ。
<time>も通らないので<ctime>にしてたしおかしいわと
思ってたんだ
371デフォルトの名無しさん:2008/06/22(日) 22:53:35
direction = static_cast<Month>(direction+1);
でどうだ!!?


ということでごめんなさい。
372デフォルトの名無しさん:2008/06/22(日) 22:55:04
>>370
いやcppだけどね。
timeは通ってるけど
たしかにctimeだわな('A`)
スマソ
373350:2008/06/22(日) 22:56:14
俺のレス
>>361
>>363
>>365
>>366
>>371
>>372
374デフォルトの名無しさん:2008/06/22(日) 22:56:27
要するにC++モードでもenumに++演算子を適用できる
コンパイラと弾くコンパイラがあるわけだ
規格書ではどうなってるのかな
375デフォルトの名無しさん:2008/06/22(日) 22:57:09
ウォッチでは通るのに
376350:2008/06/22(日) 23:01:35
まあ普通に考えたら
enum{
    A=1,
    B=10,
    C=100,
    D=1000
};

とかがあることもあるわけだから、やっぱり++は許されないのかな
377179:2008/06/22(日) 23:23:16
>>350

返事遅れてごめんなさい・・・
自分C++全く知らないのですが、やっていただいたことに関しては
本当に感謝してます!
聞いてばかりで申し訳ないのですが、
このソースをCに書き換えるにはどのようにすればよいのでしょうか?


ちなみに調べてみたんですが5x5は解の個数が304個みたいです。
378デフォルトの名無しさん:2008/06/23(月) 00:21:32
全部関数にしたらどう?
379350:2008/06/23(月) 00:22:56
>>377
304><
感動><

変数がめんどくさいかも・・・
全部staticでいいならいいけど・・・
380デフォルトの名無しさん:2008/06/23(月) 00:26:52
Cってことはfor内での変数宣言とかも直さなきゃならんか
381デフォルトの名無しさん:2008/06/23(月) 00:37:11
382 ◆15lIZBDwz6 :2008/06/23(月) 00:37:22
[1] 授業単元:プログラミングU
[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] その他の制限: 習った範囲は文字列まで。その他の制限は問題文参照

自分で解いていたらこの問題だけ上手くいかないのでお願いします
383350:2008/06/23(月) 00:38:42
>>377
書き換えてみた。
static変数使いまくりでひどいけど

ちなみに100行目に入れる値を変えればいろいろ変化します。
Bには非対応ですね。
自分で盤を初期化すれば多分できるのかな・・・
384350:2008/06/23(月) 00:39:13
385デフォルトの名無しさん:2008/06/23(月) 00:55:26
>>382
#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;
}
386デフォルトの名無しさん:2008/06/23(月) 00:56:09
>>382
#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 );
}
387デフォルトの名無しさん:2008/06/23(月) 00:57:38
今だっ!おまいらうpロダ(ry
388386:2008/06/23(月) 00:59:01
>main関数内で,str_maxlen 関数の返却値を元に文字列を出力することで,動作確認すること.
これやってないわ
スマソ
389デフォルトの名無しさん:2008/06/23(月) 01:00:51
返すのは長さじゃなくて添え字
390デフォルトの名無しさん:2008/06/23(月) 01:02:19
>>389
まぁ結局は添え字だが、
返すべきはkじゃなくてiだわな
391デフォルトの名無しさん:2008/06/23(月) 01:05:41
>まぁ結局は添え字だが、
何を言ってるんだ?
392377:2008/06/23(月) 01:07:21
>>383>>384

書き換えまでやってくださったとは・・・!

本当何から何まですみません。
ありがとうございます!(>_<)

393デフォルトの名無しさん:2008/06/23(月) 01:14:32
>>350 コンパイルは通ったけど、解が見つからなかったので報告。
// 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;
}
*/
394デフォルトの名無しさん:2008/06/23(月) 01:17:27
6x6の盤でナイトの旅を始めます。
解析中...
正しく解析できました。

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秒です。
395393:2008/06/23(月) 01:21:25
//盤面のサイズ。
#define SIZE 5
です。遅れました Express 2005 + SDK
396デフォルトの名無しさん:2008/06/23(月) 01:24:45
以下のようなプログラミングはどのようにすればよいのでしょうか?

「組み合わせ」を求める数学の公式にコンビネーションがあります。このコンビネーションのプログラミングを教えてください!

1.nとrをscanf()で読み、nCrの値を計算して表示させます。
条件として、nとrの値はマイナスでなく、またゼロでなく、さらにここではn<=10であることを確認させて、正しい数値を入力させる。もし誤った数値を入力したら「入力ミスです」と表示させる。

2.0!=1も扱えるようにすることを忘れない。
397デフォルトの名無しさん:2008/06/23(月) 01:25:06
統計計算のプログラミングの例を教えてください。

最大20個までの実数値をscanf()で、配列に読み、呼んだデータの、平均値、分散、最大値、最小値を計算して表示するプログラムを教えてください!

条件として、データは-999.0から999.0の範囲とし、入力終了の合図として1000.0より大きい値のデータを入力すると、その数値は入力されずに入力作業を終了する。
平均値と分散については、
データ数をn、各データをXi(i=1〜n)とすると、(ΣXi)/n (データの個数で割ったもの)が平均値
(Σ(Xi-(データの相加平均))^2)/nが分散であるとする。

よろしくお願いします!!
398デフォルトの名無しさん:2008/06/23(月) 01:26:18
5x5の盤でナイトの旅を始めます。
解析中...
解析できませんでした。
評価回数は15615711回です。

要した時間は0.07秒です。
399デフォルトの名無しさん:2008/06/23(月) 01:26:43
>>391
maxlen=k;
return maxlen;
はどう見ても添え字を返してるだろ
400350:2008/06/23(月) 01:30:24
>>395
マスの数が奇数の場合、周遊は解なし

>>398
お前のPCのスペックが知りたいわw

401デフォルトの名無しさん:2008/06/23(月) 01:32:32
>>396
つ パスカルの三角形
>>397
探せば見つかるようなありきたりの課題じゃ〜・・・
402デフォルトの名無しさん:2008/06/23(月) 01:33:46
>>397
#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;
}
403デフォルトの名無しさん:2008/06/23(月) 01:34:44
>>399
アホか
添え字って言っても
>最長の文字列が格納されている配列の添え字(行の要素番号)
だぞ。
kは文字列の長さにしかなんねーよ
404 ◆15lIZBDwz6 :2008/06/23(月) 01:35:35
>>385-386
ありがとうございます。
それにしても…早いw
次の問題解き終わってきてみたら20分後にはもうできてるし…
405デフォルトの名無しさん:2008/06/23(月) 01:39:37
406デフォルトの名無しさん:2008/06/23(月) 01:39:47
>>396
> 2.0!=1も扱えるようにすることを忘れない。
階乗を求めるやり方か・・・
407デフォルトの名無しさん:2008/06/23(月) 01:49:24
408デフォルトの名無しさん:2008/06/23(月) 01:50:59
>>394
最近のコンピュータははやいな!
409デフォルトの名無しさん:2008/06/23(月) 02:01:50
>>396
あ〜、入力エラーの表示は適当に追加しておいて。
あと、nもrも0のときでも考慮されてる。
0個の中から9個のものを選ぶという事象も1つの事柄として扱っているし
n個の中から0個のものを選ぶ、すなわち何も選ばないということも
1通りの事象として扱われているから。
410デフォルトの名無しさん:2008/06/23(月) 02:02:27
×0個の中から9個のものを選ぶという
○0個の中から0個のものを選ぶという
411デフォルトの名無しさん:2008/06/23(月) 02:04:32
>>397
#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;
}
412395:2008/06/23(月) 02:48:26
>>400
有り難う御座います、見逃していました。
>ちなみに100行目に入れる値を変えればいろいろ変化します。

所で、よく見るとCのほう(float)キャストが無いので、経過時間が0.000秒でした。
413デフォルトの名無しさん:2008/06/23(月) 03:04:20
軽作業用に使っている AthlonXP 2800+ 2GHzじゃ2.78秒
C2D E7200でも試してみようかのぅ
414 ◆dH2ZMCPPns :2008/06/23(月) 09:34:10
[1] 授業単元: プログラミング
[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時まで

よろしくお願いします。二問あります
415デフォルトの名無しさん:2008/06/23(月) 10:06:26
[1]CとC++
[2]テキストサウンドノベルを作成する事。
キー入力でメッセージを表示し、途中で選択肢を含める。(最大3つまで)
画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。
テキスト行数は、最低50行から最大100行までとする。
画面全消去方法は、先生に聞くこと。

#include"stdlib.h"
system("CLS");
    この時に画面すべて消せる
416デフォルトの名無しさん:2008/06/23(月) 10:11:46
>>415
サウンドはどうやって鳴らすの?
417デフォルトの名無しさん:2008/06/23(月) 10:46:04
あいまいな問題にはまともに回答する必要無し
418415:2008/06/23(月) 10:59:11
サウンドはほっといていいらしいです。
419デフォルトの名無しさん:2008/06/23(月) 11:04:36
それただのノベル。
420デフォルトの名無しさん:2008/06/23(月) 11:11:11
プログラム部分なら作れるけど、ノベルはどうすんだよw
421デフォルトの名無しさん:2008/06/23(月) 11:21:44
サウンドノベルみたいに選択肢で分岐するテキストアドベンチャーを作れば良いと理解した。
まってろ、今作ってる。
422sage:2008/06/23(月) 11:42:17
[1] 授業単元:プログラミング
[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] その他の制限:特になし
423デフォルトの名無しさん:2008/06/23(月) 11:47:31
#include <stdio.h>

double 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;
}
424デフォルトの名無しさん:2008/06/23(月) 12:12:47
>>415
マルチでもいいけどさ、環境と期限書こうぜ
425415:2008/06/23(月) 12:32:18
環境はvista
言語はC++
起源ははっきりとは言ってなかったが夏休み前だと思います。
426デフォルトの名無しさん:2008/06/23(月) 12:40:32
お前の夏休みなんか知らねーよww
427350:2008/06/23(月) 12:43:59
>>412
動作に現れる部分を修正するのは大いに結構だが
現れない部分の修正しないで提出すると痛い目見るよ

例えばラインコメント(//)とか//コンストラクタとか//デストラクタとか
アルゴリズムだとかstaticばかりなのかとか
428デフォルトの名無しさん:2008/06/23(月) 13:00:16
421だが、飽きた。
他の人に任せた。
429デフォルトの名無しさん:2008/06/23(月) 13:00:43
微妙ですがage
430425:2008/06/23(月) 13:26:52
期限だろ。字間違うなよ
431デフォルトの名無しさん:2008/06/23(月) 13:29:51
夏休みの宿題になっちまうなw
432デフォルトの名無しさん:2008/06/23(月) 14:03:54
[1] 授業単元:画像処理 [2] 環境  [2.1] OS:Linux  [2.2] 言語:C言語
#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 の境界点を抽出した画像を作成するプログラムを作成せよ。


433432:2008/06/23(月) 14:07:01
return 0;
}最後にこれを忘れてました。分かりにくくてすみませんが問題はこれです。

logo-bin.gray の境界点を抽出した画像を作成するプログラムを作成せよ。
434142:2008/06/23(月) 14:27:47
>>142ですがどうかよろしくお願いします。
435デフォルトの名無しさん:2008/06/23(月) 15:02:30
>>415何気に難しいな。セリフしか作れん
436デフォルトの名無しさん:2008/06/23(月) 15:11:15
[1] 授業単元:
C
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

お願いします。
437デフォルトの名無しさん:2008/06/23(月) 15:14:09
>>435
バッチファイルで書いた方が早い気がするw
438デフォルトの名無しさん: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;
}
439デフォルトの名無しさん:2008/06/23(月) 15:48:45
440デフォルトの名無しさん:2008/06/23(月) 15:53:19
>>439
すまん、関数の名前間違ってたので修正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7025.txt
441デフォルトの名無しさん:2008/06/23(月) 15:54:10
>>439
微妙ですが我慢しておきます。
442デフォルトの名無しさん:2008/06/23(月) 16:01:44
>>441
の優しさに世界が泣いた
443デフォルトの名無しさん:2008/06/23(月) 16:11:09
こんなの書くような子じゃなかったんだけど...
444デフォルトの名無しさん:2008/06/23(月) 16:13:59
トリ付けてないからなりすましの可能性も…
更に言うとこれも含めて自演の可能性もあるなww
445デフォルトの名無しさん:2008/06/23(月) 16:15:39
1以上の正の整数の値をキーボードから入力し、1からNまでの和を求める
プログラムをC言語で作成せよ。 また、1から999までの和はいくらか?
お願いします。
446445:2008/06/23(月) 16:21:31
間違えた問題の続きです。 1+2+・・・+N=Σi

あともうひとつ
1以上の正の整数の値をキーボードから入力し、1からNまでの2乗の和を求める
プログラムをC言語で作成せよ。 また、1から100までの和はいくらか?

1の2乗+2の2乗+・・・+Nの2乗=Σiの2乗
これもお願いします。 問題分かりにくくてごめんなさい。


447デフォルトの名無しさん:2008/06/23(月) 16:22:55
>>445
#include <stdio.h>
int main(void)
{
int N;
printf("入力");
scanf("%d", &N);
printf("1から%dの和は%d\n", N, (1+N)*N/2);
return 0;
}
448445:2008/06/23(月) 16:23:18
誰か432をお願い!
449445:2008/06/23(月) 16:25:44
>>447

ありがとうございます。
450デフォルトの名無しさん:2008/06/23(月) 16:29:47
ずいぶんとレベルの違う宿題が出る授業だなw
小学校と大学院が校舎共有してるのか?
451デフォルトの名無しさん:2008/06/23(月) 16:32:35
外径、内径、高さの値を入力して、中空円筒の体積を計算するプログラム
をC言語で作成せよ。
#include<stdio.h>
#include<math.h>
main()
{
double pi,r1,r2,h,V;
途中までやりました。お願いです。

452447:2008/06/23(月) 16:32:38
>>449
本当はforループで計算するのを求めていると思う
453445:2008/06/23(月) 16:36:06
>>450
1年の授業と3年の授業ですw
432と446の問題を誰かお願いします。
期限は今週末です。
454デフォルトの名無しさん:2008/06/23(月) 16:38:59
[1] 授業単元:
プログラミング
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ポインタ習ったばっかりです。

おねがいします。
455デフォルトの名無しさん:2008/06/23(月) 16:40:02
>>432
"logo.gray"ってファイルは?
無くとも、もっと説明しなきゃ

”境界点を抽出”って意味は?
"logo.gray"が無いと説明出来ないならUPしなきゃ
456454:2008/06/23(月) 16:41:08
問題文のリンク間違えました・・・ すいません
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7026.txt
457デフォルトの名無しさん:2008/06/23(月) 16:43:33
次の関数を計算するプログラムを作成せよ。C言語で。
y=3エックス2乗+2エックス-6

これ簡単だからやってみそ!
458デフォルトの名無しさん:2008/06/23(月) 16:48:13
お前がやれ。
459436:2008/06/23(月) 16:50:45
>>440
ありがとうございます。
>>441
貴方は誰ですか?
460432:2008/06/23(月) 16:54:17
>>455

境界点を抽出の意味は僕もよく分からないです。ほんとにちんぷんかんぷんです。
単元は2値画像処理というところです。
461デフォルトの名無しさん:2008/06/23(月) 16:56:00
>>460
輪郭抽出って事?
2x2 sobel フィルタとか使うの?
462デフォルトの名無しさん:2008/06/23(月) 16:56:01
>>457
そんなこと言わないでさー やってよーん
463デフォルトの名無しさん:2008/06/23(月) 16:57:14
>>457
意味不明なりよ
464デフォルトの名無しさん:2008/06/23(月) 16:58:54
>>460
それじゃ、誰も出来ないだろw
もっと説明がいるぞ

"logo.gray"ってのは存在して、それの境界点抽出なのか
それとも任意の2値画像なのか

友達でも誰でも良いから聞いてきなw
465432:2008/06/23(月) 16:59:55
輪郭抽出だと思います!
2x2 sobel フィルタは使わないと思います。
とにかくそういうc言語のプログラムを作成しろと言われて。
432を少し改良すればできると教授に言われました。
466432:2008/06/23(月) 17:01:19
>>464

"logo.gray"は存在して、それの境界点抽出です!
467デフォルトの名無しさん:2008/06/23(月) 17:06:34
>>457
y = 3*x*x+2*x-6;
468デフォルトの名無しさん:2008/06/23(月) 17:16:00
>>466

なんだ?意図的にとぼけてるのか?
それなら"logo.gray"をUPしなきゃ、誰も出来ないだろ
って言ってるんだけど…
469デフォルトの名無しさん:2008/06/23(月) 17:18:41
>>466
16.bitグレイスケール画像を作ってうp!
470デフォルトの名無しさん:2008/06/23(月) 17:21:18
>>451
#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;
}
471デフォルトの名無しさん:2008/06/23(月) 17:22:57
1] 授業単元:授業じゃないんですが、質問スレがここしか分からなかったのでお願いします。
[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] その他の制限:基礎は一通りやって、授業ではそれを応用して色々やらされてます。
が、ところどころ分からないので一人で最初から勉強し直してます。
472デフォルトの名無しさん:2008/06/23(月) 17:25:48
[1] 授業単元: 実験
[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] その他の制限:
 特になし
473デフォルトの名無しさん:2008/06/23(月) 17:25:48
>>471
切り捨てたいの?切り上げたいの?四捨五入したいの?
474デフォルトの名無しさん:2008/06/23(月) 17:35:50
>>473
なんでもいいです。
参考にしてるサイトのやり方に従ってそこまで作りました。
やっぱ(int)が影響してるんですかね?
と思って全部それ取って実数型にしたら直りました。
どんな原因なんでしょう…
475デフォルトの名無しさん:2008/06/23(月) 17:42:35
>>474
浮動小数点数は条件が合わない限り小数ぴったりの数値を扱えないので
内部ではその数値に近い値に丸められている

0.7 はコンピュータ内部では 0.7 より小さな値で格納されていて
0.9 と 0.2 は少し大きな値になってるんだろう
476デフォルトの名無しさん:2008/06/23(月) 17:58:49
>>475
やはりコンピュータ上の問題ですか。
プログラムの作り方を変えるとかしないと解決できないわけですね。
ありがとうございました。
477デフォルトの名無しさん:2008/06/23(月) 18:04:56
>>453
アンカー付けろ
テンプレ使え
数字は半角(まぁ全角でも困らないけどさ)
478デフォルトの名無しさん:2008/06/23(月) 18:08:55
>>471
3割引だったら7倍してから10で割ってみてはどうだろう。
teika * 7 / 10
479デフォルトの名無しさん:2008/06/23(月) 18:12:32
>>415
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7027.txt
宿題っぽくしてみた。
入力されたデーターが不正な場合は飛ぶので、それがダメなら適当に直して
480デフォルトの名無しさん:2008/06/23(月) 18:18:20
>>471
1円どっちにずれてる?
割る前に2円足すか1円引けばいいんじゃね?
481デフォルトの名無しさん:2008/06/23(月) 18:20:06
>>480
定価を入力してからENTERを押してください。
1000
1割引だと 900円
2割引だと 800円
3割引だと 699円
4割引だと 599円
5割引だと 500円
6割引だと 400円
7割引だと 299円
8割引だと 200円
9割引だと 100円
482デフォルトの名無しさん:2008/06/23(月) 18:22:46
>>481
round ceil floor のいずれを使ってもピッタリの数値になるのに
キャスト(int)による型変換のときだけ1円ずれる
めんどくせー
483デフォルトの名無しさん:2008/06/23(月) 18:36:31
どなたか>>90お願いします
484デフォルトの名無しさん:2008/06/23(月) 18:46:59
>>478
なるほど。
そういう風にすればいいのですね。
ありがとう。

>>480
>>481の通りです。

>>482
めんどいっすねw

でも宿題じゃなくてなんとなく答えも見えたんでおkです!
皆様ありがとう。
485デフォルトの名無しさん:2008/06/23(月) 18:51:51
>>446
いくらなんでも簡単すぎだろ。
丸投げしすぎ。
486デフォルトの名無しさん:2008/06/23(月) 19:03:05
487446:2008/06/23(月) 19:07:34
>>485
そうですか。反省します。
488451:2008/06/23(月) 19:09:41
>>470

サンクス
489デフォルトの名無しさん:2008/06/23(月) 19:41:33
>>483>>90
〜省略〜
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;
}
490デフォルトの名無しさん:2008/06/23(月) 19:55:16
[1]プログラミング言語C
[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]今年の春から始めたので、まだ基礎のほうです。
よろしくお願いします。
491デフォルトの名無しさん:2008/06/23(月) 20:38:26
[1] 授業単元: 課題
[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] その他の制限:
 特になし

身を晒す事になりますが、お願いします。
492デフォルトの名無しさん:2008/06/23(月) 20:46:24
493491:2008/06/23(月) 20:52:41
h ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7030.txt

πの計算のコンパイルが通るところまで作りました。
Cはじめて2ヶ月で出た課題です。
ほとんど回答は載せてあるからこのレベルらしいですが、
正直見直しても全く分からないです。
494491:2008/06/23(月) 20:55:59
h ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7030.txt

πの計算のコンパイルが通るところまで作りました。
Cはじめて2ヶ月で出た課題です。
ほとんど回答は載せてあるからこのレベルらしいですが、
正直見直しても全く分からないです。
495デフォルトの名無しさん:2008/06/23(月) 20:58:38
>>492
マヂ助かった!!ありがとう!!
496デフォルトの名無しさん:2008/06/23(月) 21:03:23
>>413
8x8の解がいくつあるのか試してみて欲しいな
497デフォルトの名無しさん:2008/06/23(月) 21:08:47
498デフォルトの名無しさん:2008/06/23(月) 21:14:04
499デフォルトの名無しさん:2008/06/23(月) 21:20:12
>>489
ありがとうございます。
./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分木の基本的な操作関数をそのまま貼り付けただけです
500デフォルトの名無しさん:2008/06/23(月) 21:28:06
比較的簡単な問題が出るとここぞとばかりに回答が提示されるよね
501デフォルトの名無しさん:2008/06/23(月) 21:29:24
簡単な問題解いてなんの意味があるって感じだよな
502デフォルトの名無しさん:2008/06/23(月) 21:31:25
肩慣らし
503デフォルトの名無しさん:2008/06/23(月) 21:32:29
簡単な問題をだらだらと置いておいても意味ないし
504デフォルトの名無しさん:2008/06/23(月) 21:33:01
>>500
だから何?お前基準で簡単とか言われても基準が曖昧なんだが。
お前が簡単だと思っているだけで、実際にお前が解いてもミスだらけなんじゃね?
505デフォルトの名無しさん:2008/06/23(月) 21:33:13
>>501
それが解けない奴の為のスレだw
506デフォルトの名無しさん: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]コメント

なーんてね
507デフォルトの名無しさん:2008/06/23(月) 21:45:21
>>504
ひとつの問題に対して複数者から解答が上がったら概ね平易
ひとつの問題に対して複数者が議論を始めたら面白みのある問題

ミスだらけかもね
508デフォルトの名無しさん:2008/06/23(月) 21:51:39
誰かの解答に対して議論が始まることもあるけどなー
509デフォルトの名無しさん:2008/06/23(月) 21:53:40
>>507
うん、だから お前基準 ほど 難易度 として当てにならないっつってんだが?
一言居士はうざいって意味が分からない?四の五の言わずにてめぇレスしろよw
510デフォルトの名無しさん:2008/06/23(月) 21:55:56
>>492 はなぜ (i+1) やら、i=0からスタートしているのかと?
>>490
> 入力された上限の数未満
おかげで未満じゃなくなってるし・・・
511デフォルトの名無しさん:2008/06/23(月) 21:58:41
なんという自己参照定義 循環論証
512デフォルトの名無しさん:2008/06/23(月) 22:07:59
>>509
もうお前一言居士ってコテハンにしろよ
513デフォルトの名無しさん:2008/06/23(月) 22:10:56
ってか>>507が自分基準で難易度の話をしているように読めるのなら文盲だな
あ、文盲って言葉も使っていいよ。自分が知らない他人を批判する言葉とか大好きそうw
514デフォルトの名無しさん: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] その他の制限: (自分のレベルはかなり低いので難しい関数はなしでお願いします・・・)
515デフォルトの名無しさん:2008/06/23(月) 22:21:31
すみませんがこの問題をお願いします。

変数(int型 または double型 または 両方),入出力(scanf関数,printf関数),条件分岐(if else文)をすべて用いて,
各自自由なプログラムを作成する.
課題提出のメールには,必ずそのプログラムの仕様の説明文をつけること
(そのプログラムが何をするものなのかを説明すること).
516デフォルトの名無しさん:2008/06/23(月) 22:24:08
>>515
なんという独創的なw
517デフォルトの名無しさん:2008/06/23(月) 22:27:08
>>515
楽しすぎるwww
大まかに、どんなの作りたいかとか買いてけよw
テストの点数とか、体重の判定とかなんでもいいからよw
518デフォルトの名無しさん:2008/06/23(月) 22:31:31
HDDをクラッシュさせるプログラムはどうかな?
成績表を破壊するプログラムとか
519デフォルトの名無しさん:2008/06/23(月) 22:32:52
>>515
このスレの解答を適当に拾えばおk
520デフォルトの名無しさん:2008/06/23(月) 22:41:15
むしろwikiの回答例でも持って池。
521デフォルトの名無しさん:2008/06/23(月) 22:41:37
>>515
int scanf printf if else
でググると良い
522デフォルトの名無しさん:2008/06/23(月) 22:44:02
>>515
wikiのマスターマインド(Hit&Blow)がいいんじゃない?
523デフォルトの名無しさん:2008/06/23(月) 22:46:24
流れ的にサウンドノベルしかないだろ
524デフォルトの名無しさん:2008/06/23(月) 22:49:44
CG曲シナリオシステム全部1人でか
525デフォルトの名無しさん:2008/06/23(月) 22:50:07
むしろなんかシューティング系を(ry
526デフォルトの名無しさん:2008/06/23(月) 22:52:50
>>523
が言ってるのは>>438だな
527デフォルトの名無しさん:2008/06/23(月) 23:04:07
528デフォルトの名無しさん:2008/06/23(月) 23:07:53
>>514
> long型を対象にして2から2^31-1までの素数を求めてみよ。
PCの性能にもよるけど、物理的に時間が掛かるんで却下。
529デフォルトの名無しさん:2008/06/23(月) 23:12:20
>>526
yes
530デフォルトの名無しさん:2008/06/23(月) 23:22:56
>>499
BITREE_NODE *inputBITree(char *str[], int len, int *end){
〜〜省略〜〜
*end = i + i;
return p;
}

*end = i + i; を *end = i + 1;
に変更
531デフォルトの名無しさん:2008/06/23(月) 23:41:29
>>522
>wikiのマスターマインド(Hit&Blow)

実行してみたんですが、どうやって終わらせるんですか?
532デフォルトの名無しさん:2008/06/23(月) 23:42:56
Ctrl と c 同時押しすれば終わるんじゃない
533デフォルトの名無しさん:2008/06/23(月) 23:47:29
>>528
70.3秒かかったよ
これって長すぎる?

アルゴリズムはエラトステネスの篩使用
534デフォルトの名無しさん:2008/06/23(月) 23:54:44
>>533
>>514の条件はエラトステネスの篩じゃないだろ
535デフォルトの名無しさん:2008/06/23(月) 23:58:59
エラトステネスの篩じゃね?
536デフォルトの名無しさん:2008/06/24(火) 00:00:12
全然違う
537デフォルトの名無しさん:2008/06/24(火) 00:00:27
ふるいじゃないよ
538デフォルトの名無しさん:2008/06/24(火) 00:11:13
>>530
ありがとうございます。数字はしっかりでました!
実行例にある

入力データ [ 6 [ 8 [ 1 _ _ ] 5 _ _ ] ] [3 _ [ 9 _ _ ] ] ]

というのはどうやって出せばいいのでしょうか?
539デフォルトの名無しさん:2008/06/24(火) 00:13:27
[1] 授業単元:C言語実習
[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] その他の制限: 特に無し

就活で浦島状態です、助けてください
540デフォルトの名無しさん:2008/06/24(火) 00:14:54
>>539
浦島状態って。
C#ならまだしも、いつの時代の人?
541デフォルトの名無しさん:2008/06/24(火) 00:34:36
>>538
printBITree(p, 0, 0);
値の間にスペース入れたいならprintSubtreeの中をいじくる
542デフォルトの名無しさん:2008/06/24(火) 00:37:42
>>539
#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;
}
543デフォルトの名無しさん:2008/06/24(火) 00:52:47
#include <string.h>忘れてた
544デフォルトの名無しさん:2008/06/24(火) 00:55:44
strcmp関数は作ってしまえ
545デフォルトの名無しさん:2008/06/24(火) 01:09:56
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
8パズルを解く上で、状態の重複をチェックするにはどのようなプログラムを加えればよいか考えよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 明日
どなたかよろしくお願いします。
546デフォルトの名無しさん:2008/06/24(火) 01:14:14
[1] 授業単元: アルゴリズム
[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時
547デフォルトの名無しさん:2008/06/24(火) 01:17:08
>>506
よろしく
548デフォルトの名無しさん:2008/06/24(火) 01:18:30
8パズルとやらをググってみたけど
>状態の重複
ってどんな状況だ?
こんなんか?
bool bCheckOverlap(int x, int y){
if(puzzle[x][y]>0){
return false;
}
return true;
}
549デフォルトの名無しさん:2008/06/24(火) 01:22:59
動かしたとき同じ状態に戻らないようにするためのチェックじゃない?
550デフォルトの名無しさん:2008/06/24(火) 01:25:05
>>546
A
void func(int *a, int *b);

B
void func(int *a, int *b)
{
if(*a < *b) {
int temp = *a:
*a = *b;
*b = temp;
}
}
551545:2008/06/24(火) 01:26:32
>>549さんの仰るとおり、過去と同じ状態になっていないかチェックして無駄な処理をしないようにというものです。
言葉足らずで申し訳ありません。
552デフォルトの名無しさん:2008/06/24(火) 01:32:44
>>550
ありがとうございます。
「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時
553デフォルトの名無しさん:2008/06/24(火) 01:39:25
>>545
1 2 3
4 5 6
7 8 -
という状態なら123456780という数字を覚えておくとか。
3 4 2
1 7 -
8 5 6
という状態なら342170856という数字
こういうのをソートされた線形リストにいれておけばまあ悪くないのでは?
554デフォルトの名無しさん:2008/06/24(火) 01:42:38
555デフォルトの名無しさん:2008/06/24(火) 01:46:55
>>545

[1]回答レベル:ヒント
[2]コード:なし
[3]環境:省略
[4]コメント:
つ9進数
556デフォルトの名無しさん:2008/06/24(火) 01:49:16
>>554
本当に回答がお早いです。自分もそれくらいになりたいですorz
なにはともあれ、ありがとうございます。
本当に助かりました。
557553:2008/06/24(火) 02:01:26
>>553
線形リストじゃ手が長くなった場合の探索コストが大きいかな。メモリも食うし。
静的に9^9Byte≒370MB確保しておくのもなんだかアレだしなんか良い案あるかしら
558デフォルトの名無しさん:2008/06/24(火) 02:04:30
[1] 授業単元: C言語演習U
[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
559デフォルトの名無しさん:2008/06/24(火) 04:14:08
>>558
空白、アルファベット以外は出現順
#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;
}
560デフォルトの名無しさん:2008/06/24(火) 04:15:24
561デフォルトの名無しさん:2008/06/24(火) 04:30:18
>>559
>>560
両方、ありがとうございます。
どちらもせっかく作ってもらったので、両方使いたいところですが
今回は>>560さんのコードを使わせていただきます。
コード中の説明やコードの作りが分かりやすかったので

>>559さんのコードもアスキーコード使用が基本的で良かったのですが、
文字列の並び替え部分が若干難しかったので、今回はごめんなさい。
562デフォルトの名無しさん:2008/06/24(火) 05:40:13
文字列を並び替える関数であって、並び替えた文字列を表示する関数じゃないと思うんだが。
563デフォルトの名無しさん:2008/06/24(火) 05:43:49
それなら、順番に表示する部分を配列に格納すりゃ良い
564デフォルトの名無しさん:2008/06/24(火) 05:49:39
n個の文字列って指定からガン無視してるソースに突っ込むなんてw
565デフォルトの名無しさん:2008/06/24(火) 05:58:18
でたよ、ソースを書きもせず、自分のアイデアも提示せずに
批判しかしない基地外。
566デフォルトの名無しさん:2008/06/24(火) 05:59:34
>>561 本人?が良しとした時点で後からいちゃもんつけてもなぁ・・・
後は本人が出来るなら、適当にやるだろうし。
567デフォルトの名無しさん:2008/06/24(火) 06:11:23
並び替えならバブルソートだ!
void 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);
}
}
}
568デフォルトの名無しさん:2008/06/24(火) 06:13:02
ソースを書かずに口出しする奴の方がどうかとw
569デフォルトの名無しさん:2008/06/24(火) 06:14:08
>>561
>>567のコードを使ったら、>>559,>>560両方から殴られることを
覚悟したほうがいい。w
570質問者のマナー遵守のお願い:2008/06/24(火) 06:40:52
宿題を片付けるという趣旨とは言えども、回答テンプレに沿っていない
すなわち、コードの品質に対する明示が無かったり、コメントが一切
無くコードそのものやコードへのリンクだけの場合は、参考に留める
だけに留め、あくまでも独力でトライすることをおすすめします。
多くのコードは良心的で真面目ですが、中には>>438のような悪辣
なコードもありますので、参考以上の扱いをすると災難に合う場合も
あります。

なお、小さなプログラムコードの場合、簡単にその優劣は判断出来ま
せん。コードは数学の問題と異なり、一度解いてしまえばおしまい
というわけではなく、何度も実行されて書き直されて真価が評価され
るものです。
宿題を自力で解けないレベルの人がその優劣の判断を出来ると
は到底思えません。
複数の回答が出た場合でも、それに優劣を付けていると取られかね
ない言動を取ることは質問者は絶対に避けて下さい。
571デフォルトの名無しさん:2008/06/24(火) 06:44:23
自分のソースにミスがあった場合、ソース書かなくても突っ込んでくれると有難いがな。
572デフォルトの名無しさん:2008/06/24(火) 08:56:20
[1] 授業単元:プログラミング
[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] その他の制限:ポインタまで習いました

ヒントをくれました。それでもわからないのでよろしくお願いします
573デフォルトの名無しさん:2008/06/24(火) 09:41:26
[1] 授業単元:プログラミング

[2] 問題文 
   3×3の行列の掛け算を行う関数を作り、標準入力から入力した行列を掛け算するプログラムを書け
       (ヒント 2重配列が必要。 double matrix[3][3];を使用)

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 6月26日まで
[5] その他の制限:
 おねがいします><
574491:2008/06/24(火) 10:00:41
自己解決しますた

いないかもしれないけど、協力して下さった方々 どうもです
575456:2008/06/24(火) 10:54:36
>>486
わかりやすい回答ありがとうございます!
次からは自分でもできるよう参考してがんばります。
576デフォルトの名無しさん:2008/06/24(火) 12:08:56
>>573 環境: 2005 Express + SDK
#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]);
}
577デフォルトの名無しさん:2008/06/24(火) 12:16:06
>>408
いろいろ試してみたが、AMDのプロセッサ(AthlonX2)はL1 Data
Cacheが2Way-Set AssosiativeのためにCore 2 Duoのような
8Way-Set Assosiativeのマシンに特定の場面で大幅に負ける事がある。

データ・テーブルも今回は2個だがこれが10個〜20個と増えてくると
AMDとIntelではあまり差がなくなってくるだろう。
578デフォルトの名無しさん:2008/06/24(火) 12:41:06
[1] 授業単元:プログラミング
[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] その他の制限:特になし

お願いします!
579デフォルトの名無しさん:2008/06/24(火) 13:12:49
>>578
#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;
}
580デフォルトの名無しさん:2008/06/24(火) 13:16:30
>>577
ちょっとスレ違いになるかも知れないが、何故L1Chacheの構造が
原因であると断定できるのか教えて欲しいと思います。
581デフォルトの名無しさん:2008/06/24(火) 13:17:30
1] 授業単元:
[2] 問題文(含コード&リンク):
次々に入力される値を合計する処理である。
変数dtにデータを入力する処理を繰り返し行い、
入力終了後その合計sumと平均aveを出力する。
なお、入力データは正の整数とし、
入力するデータがなくなったら、
終わりの印として負の値を入力する。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限:
[5] その他の制限:
582デフォルトの名無しさん:2008/06/24(火) 13:18:58
1] 授業単元:
[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問ありますが、よろしくお願いします
583デフォルトの名無しさん:2008/06/24(火) 13:46:07
>>581
#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;
}
}
584デフォルトの名無しさん:2008/06/24(火) 13:54:48
>>582
#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;
}
585デフォルトの名無しさん:2008/06/24(火) 14:27:16
>>581
[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で
行っています。駄コードですがご参考にどうぞ。
586デフォルトの名無しさん:2008/06/24(火) 14:35:16
駄コードってレベルじゃねーぞ
587デフォルトの名無しさん:2008/06/24(火) 14:48:46
>>585みたいな明らかにおかしい、見てるだけで頭が痛くなるようなコードにも
ソースを書かなきゃ文句言っちゃいかんのか?
588デフォルトの名無しさん:2008/06/24(火) 14:53:10
チラシの裏にでも書いてろ
589デフォルトの名無しさん:2008/06/24(火) 15:25:15
>>541
できました!ありがとうございます。
ところで、資料に書いてあったようにbitree.hを作ってインクルードする意味ってなんなんでしょうか?
また、bitree.hを作る場合は、bitree.hに一応
int main(int args, char **argv);
BITREE_TYPE sumValue(BITREE_NODE *p);

なども書き加えておいたほうがよいのでしょうか?意味はない気がしますが・・
590デフォルトの名無しさん:2008/06/24(火) 16:18:17
かなり考えましたが、綺麗な形の木じゃない場合の計算がわからなかったのでお願いします。
[1] 授業単元:プログラミング
[2]問題リンク:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7042.txt
[3]期限:2008年6月27日
591デフォルトの名無しさん:2008/06/24(火) 16:19:08
このスレをいろんな大学に通報すればいいんですねわかります
592デフォルトの名無しさん:2008/06/24(火) 16:53:51
通報なんかしなくてもこんな所で丸投げする奴はどうせ卒業できん
593デフォルトの名無しさん:2008/06/24(火) 17:28:14
>>585 点○虫か。コード品質なんて項目要らない。
>>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);
}
594お願いします:2008/06/24(火) 19:20:36
C++言語を使ってスタックを実現するクラスを定義し,その実行を確認するプログラム(main関数)を書く.

クラス名はstackとする.

要素のデータの型はintとする.
格納できる要素の最大数は10とする.
公開されているインターフェースは下記のものとする.

void push(int data);
int pop();

初期設定は,以下のいずれかにより行う.
(1) クラスのコンストラクタ(constructor)の機能を用いる.
(2) 初期設定用のインターフェース(init)を定義し,スタックを使用する前に,initを呼び出す.

機能確認のためのインターフェース(たとえばスタック内のデータを表示させる)を追加してもよい.

上記の仕様を満たさない(インターフェース名が上記と一致しない等)プログラムは対象としない.
595デフォルトの名無しさん:2008/06/24(火) 19:50:28
#include <iostream>
#include <vector>
using namespace std;

int main()
{
vector<int> stack;
stack.push(1);
stack.push(2);
cout << stack.pop() << endl;
cout << stack.pop() << endl;
}

じゃ駄目ですか(><;
596デフォルトの名無しさん:2008/06/24(火) 19:53:19
>>594
#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;
}
597デフォルトの名無しさん:2008/06/24(火) 20:02:32
添削屋が虫作ってどーすんだよw
598デフォルトの名無しさん:2008/06/24(火) 21:23:54
麻呂のクソースはいらんかえぇ〜
599デフォルトの名無しさん:2008/06/24(火) 21:32:00
>>589
main関数はヘッダで宣言したらダメ
sumValue関数はヘッダで宣言してもいい
bitree.hを作ってincludeさせてるのは勉強のためじゃない?
main関数と同じファイルに関数を定義してるなら普通はわざわざ宣言部をヘッダに分けない
main関数以外をbitree.cとかいうファイルにでも定義するならbitree.hを作る必要がある
分割コンパイルについて知りたいなら、ググるか他のC言語質問スレに質問しましょう
600デフォルトの名無しさん:2008/06/24(火) 21:40:24
>>590
完全2分木って書いてあるけど、綺麗な形の木じゃない場合ってことは
完全2分木ではない場合を考えろってこと?
601デフォルトの名無しさん:2008/06/24(火) 21:40:44
>>599
わかりました、ありがとうございました!
602デフォルトの名無しさん:2008/06/24(火) 22:06:29
[1] 授業単元:情報処理
[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] その他の制限:もしやっていただけるなら出来るだけ簡単に、分かりやすく(初心者でも理解できる構成)
603デフォルトの名無しさん:2008/06/24(火) 22:10:31
問1
A : [] B : 0 C : * D : * E : * F : 0 G : vc
604デフォルトの名無しさん:2008/06/24(火) 22:21:00
>>603
エスパーいないなー
605デフォルトの名無しさん:2008/06/24(火) 22:21:45
問3
A : d B : d C : s
606デフォルトの名無しさん:2008/06/24(火) 22:50:35
1
607デフォルトの名無しさん:2008/06/24(火) 22:53:53
[1] 授業単元:Cプログラミング
[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日いっぱい
608デフォルトの名無しさん:2008/06/24(火) 23:03:35
[1] 授業単元:数学演習3
[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
609608 ◆k4INPBPZ3E :2008/06/24(火) 23:04:30
トリップ忘れてた
610デフォルトの名無しさん:2008/06/24(火) 23:11:40
1] 授業単元:基礎プログラミング
[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] その他の制限:
611デフォルトの名無しさん:2008/06/24(火) 23:12:48
>>607
#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;
}
612607:2008/06/24(火) 23:26:48
>>611
ありがとうございます
613デフォルトの名無しさん:2008/06/24(火) 23:34:49
2進数変換の問題を出されました。。。基本的な部分は作ってみたのですが、完璧にできません…小数変換の工程などは手ではできるのですが…
どなたかご助力宜しくお願いします。


[1] 授業単元:実験
[2] 問題文(含コード&リンク):
10進数を2進数に変換するプログラムを作成せよ。
その際、入力する10進数が小数点ありの数値(例:2.56)でも変換可能なものとする。

[3] 環境
 [3.1] OS:XP
 [3.3] 言語: C
[4] 期限: 08年06月27日
[5] その他の制限:
基本的に習ったことの利用がメインなので、特殊な関数などは使えません。原始的なアルゴリズムでないとだめなようです。
もちろん、構造体、配列、ポインタなどの基本は習いました。

614デフォルトの名無しさん:2008/06/24(火) 23:35:34
作ってみたプログラムです。(また、どうしてもMSBに0が羅列してしまって…変換した数値のみを表示させたいのですが…。つまり、000000000000000000010110とかではなく10110と。)

#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;}
615デフォルトの名無しさん:2008/06/24(火) 23:36:38
あ、すみません、

>613 = >614

です。
616デフォルトの名無しさん:2008/06/24(火) 23:44:06
for(i=BitSize-1; c[i]=='0'; i--); //最初に1が出るまでスルー
for( ; i>=0; i--) putchar(c[i]);  //後は普通に表示
617デフォルトの名無しさん:2008/06/24(火) 23:55:50
>616

レスありがとうございます!
なるほど〜ちょっと改良してみます。

あとは小数点が問題ですね。。。
やっぱりとりあえず、整数部分と小数点以下をわけてスキャンしなきゃだめですよね
618デフォルトの名無しさん:2008/06/25(水) 00:01:46
>>604
ん?>>603間違えてる?
619デフォルトの名無しさん:2008/06/25(水) 00:05:49
[1] 授業単元:プログラミング演習
[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]問題文でわかりにくいところがありましたら、聞いてください。
620デフォルトの名無しさん:2008/06/25(水) 00:14:27
>>614
んー?その課題ってそういう解き方を期待してるのかな。
それでもいいんだけど、初歩的な段階ということを考慮すると
整数部なら2で割ったあまりをせっせと詰めていくように思えた。
小数部は2倍したものの整数部を詰める、みたいな。

その段階でビット演算でできるという発想をしたなら優秀な
生徒さん(もしくは経験者)なんだなあって思う。
// 皮肉じゃないです。念のため
621デフォルトの名無しさん:2008/06/25(水) 00:20:03
何を習ったのかお前知ってるのかよw
622デフォルトの名無しさん:2008/06/25(水) 00:25:57
[1] 授業単元:基礎プログラミング
[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
623デフォルトの名無しさん:2008/06/25(水) 00:26:37
>>621
あーもーそういう煽りが欲しいわけじゃなくてな。
関数、ポインタ習いました。とか原始的なアルゴリズムで、とか前置きしなきゃならない段階でしょ?
その段階でビット演算を直感的に理解できる子は少ないでしょ。
わかんないかなー。

学生の頃周りがどうだったか、自分がどうだったか思い出しなよ。
学校では習ってません独学です、ならビット演算をスムーズに理解できたのはいつのことだった?
624デフォルトの名無しさん:2008/06/25(水) 00:29:33
>基本的に習ったことの利用がメイン
って書いてあるのに、ビット演算を習ってないと思うほうがおかしいだろ。
625デフォルトの名無しさん:2008/06/25(水) 00:37:27
ってか>>613にアドバイスしたらどうなん?

>>622
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7047.txt
626デフォルトの名無しさん:2008/06/25(水) 00:38:02
>623 >624 さん方

お二人ともすみません(汗)

自分の書き方がまぎらわしかったです・・・
ビット演算は習っていません。

柴田先生の本を読みまして、
内部表現とビット などの説明あたりを読んでいるときに
先生が以前ビット演算でやればサマートなんだけどな・・・ブツブツと
ボソっといってたのを思い出して、
それから少し自分で勉強してみました。

ですが、挫折しかけてこのサイトに、、です。(汗)

というか途中で疑問に思ったのですが、なんでC言語には2進数で表示する機能がないのでしょうか・・・?

627デフォルトの名無しさん:2008/06/25(水) 00:40:40
>>623
相手するだけ無駄
>>624
宿題解いてもらえなくて涙目なんですよね、わかります。
催促していいよw
628613:2008/06/25(水) 00:41:18
あ、ちなみに
原始的なアルゴリズム とはありますが、
たぶんビット演算くらいはOKかと思います。

先生は期待してはいないと思いますが…。

その、手計算でやるときのアルゴリズムと
まったくそのままのほうが、わかりやすいのだとは思うのですが、
違う方向性でやりはじめてしまったので…。

最終的にダメそうなら、ホントに原始的な方向でいくつもりですが。
629デフォルトの名無しさん:2008/06/25(水) 00:51:30
[1] 授業単元:プログラミング実験
[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] その他の制限: ポインタは使わない感じで授業やってます。再帰必須です。あとは上に書いた通りです。

よろしくお願いします。
630608 ◆k4INPBPZ3E :2008/06/25(水) 01:03:52
ヘルプ!ヘールプ!!!
631デフォルトの名無しさん:2008/06/25(水) 01:06:35
>>629
void 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);
}
632デフォルトの名無しさん:2008/06/25(水) 01:11:17
633デフォルトの名無しさん:2008/06/25(水) 01:20:45
>>631
あなたが神か
ありがとうございます!
超絶感謝!!!
634デフォルトの名無しさん:2008/06/25(水) 01:20:49
[1] 授業単元:プログラミング演習
[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)に関しては十分な実行結果は得られました。
蛇足があれば指摘していただきたいです。
635デフォルトの名無しさん:2008/06/25(水) 01:21:56
(1)の作成したプログラムです。(2)の参考になればよいのですが。
#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);
}
636デフォルトの名無しさん:2008/06/25(水) 01:45:23
[1] 授業単元: アルゴリズム
[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時まで

暗号文(アスキーコードをずらしただけ)を解読するプログラムを作成する課題です。
よく見る課題ですが、プログラム仕様が特殊で過去ログに該当するものがなかったので
どなたかお願いします。
637デフォルトの名無しさん:2008/06/25(水) 01:54:37
>>628
手作業で小数を2進数に変換することができることに加え、浮動小数点のビット列が
どのように構成されてるかを理解する必要があるよ
それでもビット演算しますか?(y/n)
638デフォルトの名無しさん:2008/06/25(水) 02:12:06
前回教えてくださったありがとうございます!!

以下のようなプログラミングはどのようにすればよいのでしょうか?

「組み合わせ」を求める数学の公式にコンビネーションがあります。このコンビネーションのプログラミングを教えてください!

nとrをscanf()で読み、nCrの値を計算して表示させます。
条件として、nとrの値はマイナスでなく、またゼロでなく、さらにここではn<=10であることを確認させて、正しい数値を入力させる。もし誤った数値を入力したら「入力ミスです」と表示させる。

0!=1も扱えるようにすることを忘れない。

これもよろしくお願いします
639613:2008/06/25(水) 02:12:31
>637
はい…そこなんですよ…。
それが頭いっぱいになって、ここにたどり着きました。。。

1年間アセンブリ言語をやっていたことがあって、
そのとき浮動小数点に苦労しました。。。

でも原始的なアルゴリズムよりもスマートに、短くできるんだったら
大変興味があります。なのでとりあえずやりたいと考えます。
640613:2008/06/25(水) 02:23:50
ちなみに
丸め誤差については特にいわれてないのですが、
4ビット程度表示できればいいかなぁと考えています。
641デフォルトの名無しさん:2008/06/25(水) 02:24:42
[1] 授業単元:数値解析
[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] その他の制限: 大域変数(グローバル変数)を使う。
今あるプログラムを改善した形で書き換えてくれるとありがたい。
(プログラムの授業ではなく数値解析なので変な形にはなっていると思うが
なるべくこのような形にしてもらいたい。)自分が理解しやすいのもあるが
642デフォルトの名無しさん:2008/06/25(水) 02:32:20
前スレの人?
643デフォルトの名無しさん:2008/06/25(水) 02:36:55
>>641
yを求めた時のiの値とxn[i],xn[i+1]とxの関係を考えてみろ。
っていうか前スレのヤツならなんできちんと写さない?
644613:2008/06/25(水) 02:37:40
>642

え、自分でしょうか??

自分はこのスレ、はじめてです。(検索で見つけました)
645デフォルトの名無しさん:2008/06/25(水) 02:38:14
いや641のこと。
646613:2008/06/25(水) 02:38:42
あ、すみません m()m
647デフォルトの名無しさん:2008/06/25(水) 02:41:48
東京高価万歳
凄いぞ東京高価
648デフォルトの名無しさん:2008/06/25(水) 03:28:21
>>611
(・∀・)ニヤニヤ
649デフォルトの名無しさん:2008/06/25(水) 03:32:55
ニヤニヤするぐらいならどこがおかしいか指摘ぐらいしたら?
650デフォルトの名無しさん:2008/06/25(水) 03:38:15
おかしくなんかないよ、ただ、おそらく等差数列の差を使うとか
一番最後は工夫すりゃif else 不要
651デフォルトの名無しさん:2008/06/25(水) 03:41:48
ループの中にムダな分岐つっこんで効率と可読性下げるより、あのままで十分だと思うけど。
652デフォルトの名無しさん:2008/06/25(水) 04:12:17
>>619 お願いします。
653デフォルトの名無しさん:2008/06/25(水) 05:17:34
>>650
これでいいですか><?
for(i=1;i<=20;i++)
    printf("%*s%d\n",i<=10?i:20-i,"",i);
654590:2008/06/25(水) 06:42:59
>>600
えっと・・・完全2分木っていうのは葉以外の全てのノードが枝を2つ持っている事が必要十分条件ではないのですか?
それならば一部のパスだけが長いという場合も考えられますよね。
それとも左右対称の三角形みたいな形の木になることを意味しているんでしょうか。
655デフォルトの名無しさん:2008/06/25(水) 06:49:09
完全二分木は、「すべての葉の深さが等しい二分木」という定義が普通だと思う
656デフォルトの名無しさん:2008/06/25(水) 06:51:23
AVL木とか赤黒木なら回転を伴うが常にバランスした二分木が作れる
何も考えずに昇順に挿入したりするとリスト構造の高価なシミュレーションになる
657デフォルトの名無しさん:2008/06/25(水) 06:54:56
あ、質問の意図を誤解してたかも
NlogNじゃねーの?
658デフォルトの名無しさん:2008/06/25(水) 07:01:24
>親ノードから左右の
>子ノードの中身を比較することで、完全2分木中の任意のノードの探索が行えるとする
この意味が分からん
「左右の子ノードの中身を比較」ってどういうことだろう

普通の二分探索木なら簡単に解ける
完全二分木の高さをhとすると、N=2^h-1だから、h=log2(N+1)
比較回数の最大値は高さと同じだから、log2(N+1)回
659デフォルトの名無しさん:2008/06/25(水) 08:39:21
660デフォルトの名無しさん:2008/06/25(水) 08:45:17
>fscanf(fp, "%s", p->name);
661デフォルトの名無しさん:2008/06/25(水) 08:55:49
#include<stdlib.h>いれろよ
662デフォルトの名無しさん:2008/06/25(水) 10:38:17
[1] 授業単元: プロC演習
[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] 現時点で習ってるのは、条件分岐、繰り返し、配列、ソート、ポインタまでです。

よろしくお願いします。
663デフォルトの名無しさん:2008/06/25(水) 10:54:32
memcpy(n1,n1,sizeof(int)*2*3);
memcpy(n1+(2*3),n2,sizeof(int)*2*3);
これって何やってるの?
調べたんだけどよくわからないです…
664デフォルトの名無しさん:2008/06/25(水) 11:12:06
だれか610を助けて…
665デフォルトの名無しさん:2008/06/25(水) 11:53:36
>>663
どうすれば調べきれないのかよくわからないです…
http://www.google.co.jp/search?complete=1&hl=ja&q=manpage+memcpy&lr=
666デフォルトの名無しさん:2008/06/25(水) 12:30:32
>>610
#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 ");
}
667デフォルトの名無しさん:2008/06/25(水) 12:56:24
>>666
神様ありがとう!
でも分けかからんww 勉強せねば…
668デフォルトの名無しさん:2008/06/25(水) 14:11:11
>>662
#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;
}
669デフォルトの名無しさん:2008/06/25(水) 14:53:44
[1] 授業単元:計算機システム
[2] 問題文(含コード&リンク):擬似シェル(UNIX上で動く)を作る
必要な機能
・リダイレクト(>>、>、<)
・パイプ(|)
・パイプは複数つなげるように
・できればcdやaliaseも。

[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc 3.4.6
 [3.3] 言語: C
[4] 期限:明日の午前中
[5] その他の制限:
リダイレクトとパイプの実装ができません。
お願いします。
670デフォルトの名無しさん: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] その他の制限: 特にありません

よろしくお願いします
671デフォルトの名無しさん:2008/06/25(水) 15:11:16
> 1.gettimeofday関数を用いて、サイズ5000の配列を用い、 それを100000回程度繰り返して、 倍精度浮動小数乗算の演算性能を測定し、それをMFLOPSで求めよ。 
> また、使用したプログラムも提出せよ。 
におんごでおk
672670:2008/06/25(水) 15:25:06
>>671
すみません
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7058.txt
↑のようにサイズ5000の配列を用いて、それを100000回程度繰り返して、 倍精度浮動小数乗算の演算性能を測定し、それをMFLOPSで求めることです。
673 ◆DuoCt8/SKk :2008/06/25(水) 15:41:19
[1] 授業単元:プログラミング演習
[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] その他の制限:ポインタ,構造体は習っています.
全く分からないので,よろしくお願いします!
674デフォルトの名無しさん:2008/06/25(水) 17:53:14
>>625
if (a <= 10 && a % 2 == 0 && b <= 10 && b % 2 == 0)
(・∀・)ニヤニヤ
675634: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);
}
676デフォルトの名無しさん:2008/06/25(水) 17:58:21
うpロダー使えYO!
677デフォルトの名無しさん:2008/06/25(水) 18:01:48
678634:2008/06/25(水) 18:07:06
すいません、自己解決しました。
679デフォルトの名無しさん:2008/06/25(水) 18:09:12
[1] 授業単元:C 文字の処理
[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問同時で申し訳ありませんが、なるべくシンプルなものをお願いします。
680デフォルトの名無しさん:2008/06/25(水) 18:09:13
いや、もうおせーYO!w
681637:2008/06/25(水) 18:22:06
>>613
>>639
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7062.txt
きれいではなくて申し訳ないんだけど、double型の構造を元に2進変換したつもりです。
負の場合どうするのか分からなかったので、とりあえず符号だけつけてます。

Windowsならリトルエンディアンきめうちで処理をしてもいいのかもしれないけれど、一応。
682637:2008/06/25(水) 18:25:58
補足で、doubleが8byteであることを期待したコードになってる箇所がいくつかあります。
sizeof(double)やってたりやってなかったりで汚いんですが、
そもそも8byte以外だった場合にビット構造がどうなるのか知らないので8byteな環境
以外でどうなるかわかりませんです。
誰か教えてくれるとありがたいです。
683デフォルトの名無しさん:2008/06/25(水) 18:27:22
637をテンプレに沿って清書すると

[1]回答レベル:検証済み?
[2] コード:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7062.txt

[3]環境 Linux?/Gcc/C

[4]コメント
きれいではなくて申し訳ないんだけど、double型の構造を元に2進変換したつもりです。
負の場合どうするのか分からなかったので、とりあえず符号だけつけてます。
Windowsならリトルエンディアンきめうちで処理をしてもいいのかもしれないけれど、一応。
684637:2008/06/25(水) 18:38:29
>>683
そうか、テンプレが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の電卓を使って検証しました。
小数についてもある程度検証してそれらしい結果を確認しています。
負数については、ごめんなさい><
685デフォルトの名無しさん:2008/06/25(水) 18:48:08
累計
   50 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
累計

を一次元配列のみを使ってどうやって書けますか?
686デフォルトの名無しさん:2008/06/25(水) 18:49:07
>>685
ずれてすみません
縦累計と横累計ということです><
687デフォルトの名無しさん:2008/06/25(水) 18:57:14
>>685
これと同じかな
http://pc11.2ch.net/test/read.cgi/tech/1212895856/850

http://pc11.2ch.net/test/read.cgi/tech/1212895856/920
このレスをしたの俺なんだが、ネタレスのつもりだったのに
感謝されて非常に困惑した記憶がある
688デフォルトの名無しさん:2008/06/25(水) 18:59:59
http://x68000.q-e-d.net/~68user/net/c-ftp-1.html
をみて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.
689デフォルトの名無しさん:2008/06/25(水) 19:05:26
>>688
なぜここに?
とりあえずサーバのログおよびパケットキャプチャをしてみて原因探るしか。
690デフォルトの名無しさん:2008/06/25(水) 19:07:50
>>687
あ、同じですね><
明日提出なんですがさっぱりなんです
691デフォルトの名無しさん:2008/06/25(水) 20:14:21
692デフォルトの名無しさん:2008/06/25(水) 20:24:00
>>691
ありがとうございます

まだ入門編なので、複雑でよく分かりません><
これ以上簡単に表現できないのですか?
693デフォルトの名無しさん:2008/06/25(水) 20:30:17
>>692
理解しようとする気があるならちゃんと授業中に理解しようね
教員には「沢山勉強してわかるようになりました」って言っておけばなんとかなる
694デフォルトの名無しさん:2008/06/25(水) 20:33:53
>>693
すみません
自力でやってみます
ありがとうございました><
695デフォルトの名無しさん:2008/06/25(水) 20:38:57
#define が見慣れないだけか?ROWを10にCOLを5に書き換えれば良いが
もちろんそれが分かっていれば、そんなことせんでROW と COL で定義し
後はそれらを変更することでそれに応じて結果を出すソースのままにしときゃええがな
696デフォルトの名無しさん:2008/06/25(水) 20:41:00
[1] 授業単元:プログラミングT

[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] その他の制限:なし。

   よろしくお願いします.
697デフォルトの名無しさん:2008/06/25(水) 20:45:22
[1] 授業単元: プログラミング演習
[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] 期限:無期限

698デフォルトの名無しさん:2008/06/25(水) 20:48:41
>>695
#defineは分かります!
tr,tcというのはトータルという事ですね。事故解決しました!
ありがとうございました
699デフォルトの名無しさん:2008/06/25(水) 20:52:03
[1] 授業単元:プログラミング演習
[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] 期限: できるだけ早くお願いします。
700デフォルトの名無しさん:2008/06/25(水) 21:36:28
701デフォルトの名無しさん:2008/06/25(水) 21:37:40
702デフォルトの名無しさん:2008/06/25(水) 21:42:07
>>699
[1]コード品質:模範解答(丸写ししても、独力で同じ品質のコード
書いても提出すると心証悪くします。)

[2]コード
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7067.c

[3]普通の C処理系でコンパイルできます。

[4]品質を落としたコードを提出して下さいね。(難しいですけど)
703デフォルトの名無しさん:2008/06/25(水) 21:45:49
704デフォルトの名無しさん:2008/06/25(水) 21:47:56
>>700-703
なんでロダあらしてんの?ここのログも。
もうちょっと落ち着こw
705デフォルトの名無しさん:2008/06/25(水) 21:52:02
>>704
>[4] 期限: できるだけ早くお願いします。
じゃね?w
706デフォルトの名無しさん:2008/06/25(水) 21:55:54
>>704
意味が分からんけど >>702 は無関係
707デフォルトの名無しさん:2008/06/25(水) 21:59:38
>>704
ちょこちょこみてるけど>>700-703が同じソースだったので。
消しては次消しては次、と。なんじゃろ?
>>702は無関係なのですか。
708デフォルトの名無しさん:2008/06/25(水) 22:06:50
どなたか>>572お願いします
709デフォルトの名無しさん:2008/06/25(水) 22:10:02
[1] 授業単元: Cプログラミング演習
[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] その他の制限: (シンプルなプログラムでお願いします)
710613:2008/06/25(水) 22:15:54
>>637
(>>684)

ありがとーございますっ!
自分もcygwin(windows)でコンパイルして、
それなりに検証しましたが、十分機能しているようです!

あとは自分で一文ずつ動きを見て、内部表現を書き出し、
改良していこうかと思います。

えっと、doubleは64bitの8byteであっていたかと思います。

なんにせよ、ありがとうございました!!
711デフォルトの名無しさん:2008/06/25(水) 22:15:57
>>709

#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;
}
712637:2008/06/25(水) 22:18:35
>>710
きれいじゃなくてごめんね。
やったことない内容だったのでこちらも楽しめました。
こちらこそありがとうw
713デフォルトの名無しさん:2008/06/25(水) 22:19:51
>>711
ビットシフトの方がスマート
714デフォルトの名無しさん:2008/06/25(水) 22:22:34
>>713
シンプルなプログラムだから
これでいいのだ
715デフォルトの名無しさん:2008/06/25(水) 22:22:36
>>713
他人にケチつける前にソース書け
716711:2008/06/25(水) 22:23:38
>>713
言うのは勝手だが、せめてパッチぐらいおいてって欲しかった。

9,10c9
< printf("2** %d=%d\n", i, n);
< n *= 2;
---
> printf("2** %d=%d\n", i, 1 << i);
717デフォルトの名無しさん:2008/06/25(水) 22:24:34
>>713
勝手に自分基準でスマートとかぬかしてんじゃねーよw
718711:2008/06/25(水) 22:24:40
ちょw擁護されてたwありがとうwww
719デフォルトの名無しさん:2008/06/25(水) 22:25:31
>>713 の人気にぃ〜〜 shit!
720709:2008/06/25(水) 22:26:55
うお、早いですねw
ありがとうございます。
721デフォルトの名無しさん:2008/06/25(水) 22:28:47
まるで日本語、C言語トランスレータ君だなw
722636:2008/06/25(水) 22:38:06
どなたか636をお願いします。
期限は後日6/26午後3時です。
課題の追加・補足はありません。
723デフォルトの名無しさん:2008/06/25(水) 22:40:05
>>636 暗号文でおk
724709:2008/06/25(水) 22:50:21
すいません、あと2問分からないのがあるので
できればお願いします。


[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] その他の制限: (シンプルなプログラムでお願いします、ポインタなどはまだ使えません)
725デフォルトの名無しさん:2008/06/25(水) 22:52:17
失礼します

(1)階乗を再帰を用いずに表示

という問題なんですが教えてください。
726デフォルトの名無しさん:2008/06/25(水) 22:53:28
printf("階乗");
727デフォルトの名無しさん:2008/06/25(水) 22:55:10
ワロタ
728636:2008/06/25(水) 22:56:16
>>723
いえ、内容は指定の暗号文を復号するプログラムを作成せよです。

課題内容で仕様など不明な箇所があったら言ってください。
729デフォルトの名無しさん:2008/06/25(水) 22:59:16
>>728
ようするに "KOUKA" がどこに隠れてるか探せばいいんですよね?
730709:2008/06/25(水) 23:12:49
もう1問。 すいません、よろしくお願いします。

[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] その他の制限: (シンプルなプログラムでお願いします、ポインタなどはまだ使えません)
731デフォルトの名無しさん:2008/06/25(水) 23:14:00
>>636
[1]回答レベル:検証済み
[2] コード:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7069.txt
[3]環境 Windows/VC7/C およびLinux/gcc4.1.2
[4]コメント
ずらす方向の指定とかローテーションの必要性が明記されていなかったので
解が出た方法だけ。
すごいぞ!東京工科万歳!
732636:2008/06/25(水) 23:14:43
>>729
はい、そうですお願いします。

(例え)
暗号文:huisdfhnauid
アスキーコード1行ずらし:oujafkadmioafa これは×
アスキーコード1行ずらし:KOUKAkiasdfkao これは「KOUKA」が含まれているので複合化成功
この段階でアスキーコードをずらす処理を終了して、複合化結果の「KOUKAkiasdfkao」を表示する。
という題意です。
733デフォルトの名無しさん:2008/06/25(水) 23:17:09
[1] 授業単元: Cプログラミング
[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] その他の制限:始めたばかりですが特に制限はありません。すみません、どうか宜しくお願いします
734トランスレータ?ないない:2008/06/25(水) 23:20:41
>>730
ばかしょうじきに。
#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;
}
735636:2008/06/25(水) 23:21:18
>>731
ありがとうございます!!

それにしても動作させてみて笑いました、バレバレですねwww
まさかこんな痛い内容とは思いませんでした。
736デフォルトの名無しさん:2008/06/25(水) 23:23:05
>>636
> 例えば「ABC]という文をアスキーコードを1つ後にずらすと「BCD」となる。
> このずらした数を総当りで探索すればよい。
KOUKA というなら Kが2つあるわけだから、当然ずらす前も
その該当の5文字には同じ文字が1文字目と4文字目にあるわけだが

暗号文:huisdfhnauid
ん〜〜〜・・・、小文字と大文字両方含まれる?
737731:2008/06/25(水) 23:23:56
>>732
その例を見ると俺が作ったの全然ダメかもしれない。
1行ずらしとやらを行うと文字数増えるの?
あと問題付属のソースコードが構文エラーありまくりでした。

>>735
とおもったらこれでいいのかよ!
738636:2008/06/25(水) 23:27:13
>>736
あ〜それは例えの暗号なので解けない&解はないです。
暗号文自体は「KOUKA]の文字列が入っていれば複合化成功なので、
大文字だけ、小文字だけ、大小文字混合のどれでも大丈夫だと思います。
とくに指示はなかったので
739636:2008/06/25(水) 23:29:53
>>737
まぎらっこしくてすいません。
自分は>>731の回答で満足なので、本当にありがとうございます。
740トランスレータ?ないない:2008/06/25(水) 23:36:05
>>724
入力方法が記載されていなかったのでカンマ区切りで入力するようにしました(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;
}
741デフォルトの名無しさん:2008/06/25(水) 23:39:48
1] 授業単元: c言語
[2] 問題文(含コード&リンク):固定長テキスト形式のファイルの内容を構造体に読み込むプログラムを作成しなさい.
              
[3] 環境
 [3.1] Windows
 [3.2] VC 6.0
 [3.3] 言語: C
[4] 期限: 6/26 12:00
[5] その他の制限: 固定長テキスト形式のファイルの内容を構造体に読み込むプログラムを作成しなさい
742デフォルトの名無しさん:2008/06/25(水) 23:42:43
>>741
ファイルのレイアウト、もしくは構造体のレイアウトを提示すべきだと思う。
743デフォルトの名無しさん:2008/06/25(水) 23:50:21
679です。どなたかよろしくお願いします…。
744デフォルトの名無しさん:2008/06/25(水) 23:54:49
>>743

1文字ずつチェック
ヒットしたらカウンタ++


1行ずつチェック
ヒットしたらカウンタ++
745デフォルトの名無しさん:2008/06/25(水) 23:55:13
>>742
すいません。

typedef struct{
int num;//出席番号
char class;//クラス
char name[14];//名前
}meibo;

構造体はこんな感じです。
ファイルには最大10人分のデータがあります。

よろしくお願いします
746デフォルトの名無しさん:2008/06/25(水) 23:57:04
>>739
っつか、暗号文すべてを復元したのを比較するよりも
KOUKAを暗号化して、その暗号化されたものを含む場合で
判断した方が、暗号化する文字数を減らせないか?
747デフォルトの名無しさん:2008/06/26(木) 00:13:32
>>744
ううう…どうにも思い浮かばないんだな。
だからここのスレに質問してるんだな。
プログラムお願いしますなんだな…。
748デフォルトの名無しさん:2008/06/26(木) 00:15:23
749デフォルトの名無しさん:2008/06/26(木) 00:17:27
[1] 授業単元:プログラミングU
[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] その他の制限
:問題の仕様、アルゴリズムに従うこと。

問題が長いですが、どうかよろしくお願いします。
750デフォルトの名無しさん:2008/06/26(木) 00:20:08
[1]C
[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桁と増える場合にスペースを入れるという条件があるのを書き忘れてました
どなたかお願いします。
751デフォルトの名無しさん:2008/06/26(木) 00:25:53
752709:2008/06/26(木) 00:29:55
>>734
>>740

普通に動きました♪
ありがとうございます。

753デフォルトの名無しさん:2008/06/26(木) 00:53:29
754デフォルトの名無しさん:2008/06/26(木) 00:59:23
755デフォルトの名無しさん:2008/06/26(木) 01:02:07
>>746
減らせますね。そのように作ってコードを載せてからいいましょうよ。
756デフォルトの名無しさん:2008/06/26(木) 01:08:35
>>751,>>753
ありがとうございます!
soremisitemo>>753hanyuuryokunagai…。
757デフォルトの名無しさん:2008/06/26(木) 01:09:23
>>755
> コードを載せてからいいましょうよ。
はぁ?コードを書いたわけでもないお前に言われたくねーよ
お前こそ言うくらいなら書けよ
758デフォルトの名無しさん:2008/06/26(木) 01:12:25
>>753
strcmp使わないでわざわざ効率悪い関数自作するのはなんで?
759デフォルトの名無しさん:2008/06/26(木) 01:14:26
>>750
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7076.c

>>756
名前の入力が面倒なら、入力する名前を1行ずつに表示している部分をコピーして
入力受付の場面で貼り付けてやれば、連続して改行ごとに区切って取り込んでくれるよ。
不要なら後は何も入力せず改行を連打。
760755:2008/06/26(木) 01:14:54
>>757
俺コード書いたよ。>>731がそれ。
文脈で分かると思ったんだけど、ごめんな。
761デフォルトの名無しさん:2008/06/26(木) 01:16:44
>>758 = >>755
お前がコードを書けよw
762デフォルトの名無しさん:2008/06/26(木) 01:19:02
>>758
> strcmp使わないで
使ったのをお前が書けば良いだろ、果たして うまく いくかな?w
口先だけってのはそういうことだ。
763731=755:2008/06/26(木) 01:19:27
本人じゃないとわめかれても困るのでソース削除しといた。
764デフォルトの名無しさん:2008/06/26(木) 01:24:48
>>762
それがstrcmp使わないでnamecmpを使う理由だと思っていいのかな?
strcmpじゃ比較がうまくいかないと。
765デフォルトの名無しさん:2008/06/26(木) 01:31:08
1人幼い子がますね
766デフォルトの名無しさん:2008/06/26(木) 01:32:52
>>762
あ、もしかしたらstrncmpと勘違いしてるかも?
strcmpは完全一致したときだけ0返すお。

namecmpが桁数チェックとかしてるのって
strncmp("abc", "abcd", 3)が0返す挙動に対する考えに見える。
違ったらごめんね。

ただ、だからといってstrcmp使えよとは言わないけどなあ。
あくまでも宿題やってるうちは車輪の再発明万歳だと思うし、
俺が教授なら努力賞あげる。
767デフォルトの名無しさん:2008/06/26(木) 01:33:23
>>761 = >>762 のことですね、わかります
768デフォルトの名無しさん:2008/06/26(木) 01:34:46
>>759
ありがとうございます
申し訳ないんですが、
何故 printf("%*c ",w,0x20); の"%?"は1つしかないのに後ろに2つ値があるんですか?
普通は printf("%d",12);みたいな感じで1対1じゃないんでしょうか?
ショボイ質問ですが分からないので教えて下さい。
769デフォルトの名無しさん:2008/06/26(木) 01:35:23
strncmpって一致したのにfalseを返すのかって一時思ってたことがある
770デフォルトの名無しさん:2008/06/26(木) 01:36:54
>>766
<string.h>使わないならともかく、使ってるんじゃ再発明もないと思うがなあ
771デフォルトの名無しさん:2008/06/26(木) 01:38:35
>>768
http://www.geocities.jp/ky_webid/c/040.html
適当にぐぐっただけだけど最小フィールド幅の項を参照するといいよ。
キーワードは「出力変換仕様」。scanf系に使うのは「入力変換仕様」ね。
772デフォルトの名無しさん:2008/06/26(木) 01:40:35
>>768
その%dの間にある * は、%3d といったように、最低の桁数を指定できる書式。
後ろの引数には * で桁数を指定するのに w を用いている
最初に n から桁数を求めて w に入れている
この手法が駄目なら、wの分だけfor分を使ってスペースを入れるとか
773デフォルトの名無しさん:2008/06/26(木) 01:58:30
>>772
そうだったんですかありがとうございます
問題の方なんですが
例えばn=10なら
2 3 4 5 6 7 8 9 10 11 12………98 999 1000 1001
と言うように
二桁の場合は2回スペース
3桁の場合は3回スペース
4桁の場合は4回スペース
というようにしたいのですがその場合も教えて下さいませんでしょうか?
大変すいません…
774773:2008/06/26(木) 01:59:39
>>773
間違えました
2桁なら3回スペース
3桁なら4回スペース
4桁なら5回スペース
でした…
775デフォルトの名無しさん:2008/06/26(木) 02:07:26
>>774
んじゃ、そのときの最大公約数の桁数を求めて、最小限必要な桁数 w との
差をとって繰り返して入れてみては?さぁ考えてみよー
776デフォルトの名無しさん:2008/06/26(木) 02:11:10
それよりも本当にそのように表示したいのかが気になるところではある
各列幅がnの桁数 + 1になるようにしたいなら分かるんだけどね
777デフォルトの名無しさん:2008/06/26(木) 02:14:50
またおまいか、憶測野郎。自分が思った疑問なら何でも投げかける
自分が思った通りじゃないからという理由だけで。相手が既に
こうだと言っているにも関わらず、自分はそれに対して
こうするね、という意見を出すから、お前人の話聞いてんのかっ!?
はぁ?俺はそんなことを聞いてんじゃないよって言い返される。
孤立する人間のパターンそっくりだな。
778デフォルトの名無しさん:2008/06/26(木) 02:18:41
このスレで孤立してるのはお前だけだからw
779773:2008/06/26(木) 02:22:40
>>775
ますますわかりません…orz
>>776
上に書いた例はスペースの個数が反映されなく全て1回のスペースで書かれてしまいましたが
言おうとしてることはまさにそうです
780デフォルトの名無しさん:2008/06/26(木) 02:24:24
できたら問題文を一字一句正確に写したものをあげてくれない?
781デフォルトの名無しさん:2008/06/26(木) 02:35:19
>>778
自己紹介乙、そういう言い返しをする時点でバレバレなんだよ
782デフォルトの名無しさん:2008/06/26(木) 02:36:16
[1] 授業単元:C言語
[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文は×

おねがいします
783デフォルトの名無しさん:2008/06/26(木) 02:38:05
>>750
[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]すんごく難しい課題でした。ユークリッドのアルゴリズムは
良くわかりません。参考にどーぞ
784デフォルトの名無しさん:2008/06/26(木) 02:38:29
あくまでオプション的な事なのでできる人だけやれと講義の最後に口伝えで言われたので書くにも書けないんです…すいません
言ってたことは 各幅が nの桁数 + 1 です。
785デフォルトの名無しさん:2008/06/26(木) 02:41:29
>>774 >>750
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7078.c

>>778 >>776
クソースも書かずにクソレスとな?
786デフォルトの名無しさん:2008/06/26(木) 02:43:18
>>785
マジでありがとうございます。
マジで感謝します。
787デフォルトの名無しさん:2008/06/26(木) 02:44:02
っつか、やっぱ普通に %*d 使えYO!w
788デフォルトの名無しさん:2008/06/26(木) 02:47:19
>>786
>>773の要求とは全く違うようにしか見えないが、それで本当にいいの?
789デフォルトの名無しさん:2008/06/26(木) 02:47:55
>>788
> それで本当にいいの?
またお前か・・・自分がレスしている相手のレスが見えんのか?
790デフォルトの名無しさん:2008/06/26(木) 02:48:44
>>755>>757>>760
>>776>>777>>779
どっちもスタートは俺なんだけどさ、どうしたらいい?w
過去にも割と噛み付かれてるんだよねwww

>>785
クソレスじゃなくて確認しただけだお。ソース作成乙。
791デフォルトの名無しさん:2008/06/26(木) 02:52:04
誰でも同一人物認定して噛み付くからな。
792デフォルトの名無しさん:2008/06/26(木) 02:52:55
>>789
お前には聞いてねーよ、引っ込んでろカス
793デフォルトの名無しさん:2008/06/26(木) 02:55:12
>>783
void main ひょっとしてギャ(ry
794デフォルトの名無しさん:2008/06/26(木) 02:55:15
もうお前らトリ付けろよwww
IDがないからグチャグチャだぜ…
795デフォルトの名無しさん:2008/06/26(木) 02:56:31
>>792
誰でも同一人物認定して噛み付くからな。
っつか、なんか最近必死な奴が紛れ込んだよなw
新学期、4月を境に分かりやすいw
2ちゃん慣れしてないだろ、こいつ?
前々からこのスレを見ている人にはバレてんぞ、ヘタレ小僧
もちっと 煽り耐性 を身につけてから出直せ。
でなきゃ、こんな場所じゃまずやっていけないよ。
お前みたいな揚げ足取りもいるからな。
796デフォルトの名無しさん:2008/06/26(木) 03:00:57
長文書いて、レス回数が一番多いヤツのことを必死って言うんだよw
797デフォルトの名無しさん:2008/06/26(木) 03:02:07
>>1
> 気に入らない質問やその他や発言はスルーの方向で。
おいっ、新入りファビョり厨、↑が読める?読めない?w
ttp://jp.youtube.com/watch?v=RIL28wqOQGA

ファビョり厨「読めないわけないだろっ!お前日本語知ってのかっ!?日本語でおk」
ってなるのがオチだからな。触らぬ神にたたり無し、日本語が読めない奴は以後スルーで。
ここでは時には エスパー も必要さ、(チェリー)ボーイ?

あと、特徴がモロに出てるよ。余計な一言、罵倒。バカ、アホ、カスなど
陰湿に、不必要に相手を煽る、罵る。その時点でバレてるって言っただろ?
人格、人間性が言動に出ているとあれほど忠告したのに、駄目な奴は何をやっても駄目なんだな。
798デフォルトの名無しさん:2008/06/26(木) 03:04:21
「またお前か」←これはもう勘弁してくださいwww
799デフォルトの名無しさん:2008/06/26(木) 03:05:57
彼のいうエスパーとは、一般人なら普通に理解できる>>26のすまんの意味が理解できずに
>>34 >>37
とファビョることですw
800デフォルトの名無しさん:2008/06/26(木) 03:08:32
>>797
全部、お前が言うなwってことだらけじゃねーかw
801790:2008/06/26(木) 03:10:44
>>799
アラヤダ!申し上げにくいんだが>>26も俺なんだorz
802デフォルトの名無しさん:2008/06/26(木) 03:12:23
そして俺は32だったりするw
803デフォルトの名無しさん:2008/06/26(木) 03:13:34
おまえらもう寝ろ
こんな時間にからかって遊ぶな
804デフォルトの名無しさん:2008/06/26(木) 03:14:50
>>789
うpして2分後のレスで実行して動作チェックまで完璧にしたと思うのか?
ただソースがあがってるのを見て御礼しただけの可能性の方が高いだろ。
805デフォルトの名無しさん:2008/06/26(木) 03:16:47
>>802-803
はあくした
806デフォルトの名無しさん:2008/06/26(木) 03:19:34
>>804
> うpして2分後のレスで実行して動作チェックまで完璧にしたと思うのか?
あのソースをコンパイルして実行したのなら、今になってそれすら言っても
説得力ねーよ・・・またお前は憶測で物を言ったな。相手がしていないという証拠は?
何もかもがお前の思い込みだって気づけよ。
807802:2008/06/26(木) 03:19:35
そういや>>26のリンク先も俺だったわw
808デフォルトの名無しさん:2008/06/26(木) 04:08:02
809デフォルトの名無しさん:2008/06/26(木) 04:49:55
回答者もテンプレに従えとは言わんが、
アンカー+直リン||直ペーストだと
通りすがりの女の娘に声をかけて、股間を指差して見せて喜ぶ
露出狂のオヤジみたいで、スレが荒れる傾向にある。

やはり、コード品質とかコメントとか、書いてやったほうが
いいんではないかい?
810デフォルトの名無しさん:2008/06/26(木) 05:03:55
コメントも情報も何も無しでソースだけ見せられてもな
回答者自身のソースが無駄になるだけ

てか、自分が○○だから他人も○○だ、なんて考え持つなよ
811デフォルトの名無しさん:2008/06/26(木) 05:11:09
>>809
お前国語1だったろwww
812デフォルトの名無しさん:2008/06/26(木) 05:35:17
まぁ、麻呂のクソースにはいくら突っ込まれようが
初心者レベルに落としたクソース ということで免罪符を貼ってます故
意見されても訂正する気がござらんので、言うくらいなら
訂正して賜う
813デフォルトの名無しさん:2008/06/26(木) 05:55:02
麻呂のソースは初心者レベルじゃねーだろ。
間違った方向に勘違いした初級者レベルってところだ。
814デフォルトの名無しさん:2008/06/26(木) 06:06:17
>>813
> 間違った方向に勘違いした
お前が理解できないだけだろ。妬み僻みをあらわす発言がしてたのお前だろ?w
815デフォルトの名無しさん:2008/06/26(木) 06:07:05
>>813
> 初級者レベル
言うまでもない、無理に初心者っぽくしているとは言え
何が初心者か?なんて基準がないから。
にしても、貶しすぎ。お前のレベルの低さが露呈しているぞ。
816デフォルトの名無しさん:2008/06/26(木) 06:07:19
麻呂で行くのかファビョるのかどっちかに統一しろよw
817デフォルトの名無しさん:2008/06/26(木) 06:08:41
>>813
何か言わなきゃ気が済まないんだよな、お前って。
マジうざい。だから周りから嫌われているって気づけよ、基地外。
そこまで言うなら、お前は必ずソースを書けよ、意見をする前に。
そして意見をするなら。間違いの指摘という指摘すらせずに
そんなのは、って自分の主観でしか言わんだろ。
あれだろ、意見をすると自分の無知を露呈するから怖くて
そんなのはと自分が気に入らなきゃ蹴るタイプだろ?
そんな奴は人生を失敗した負け組みくらいだぞ。
818デフォルトの名無しさん:2008/06/26(木) 06:26:08
>>813
前に、LISTの課題で、CSV形式とバイナリー形式での保存のときに
必死に噛み付いていて、結局お前が答えずに口先だけで負けたから
悔しいんだろ?初心者レベルに落とすってのがどれだけ難しいか
一度知ってしまうと、便利なものは使わずにはいられないもんだぞ。
ましてや、それが費用が掛かるわけでもなく、単にコードを記述するだけ。
お前のような他人を貶すような口出しをする奴は、人間としてもレベルが高くないどころか
ワレこそはと、自分の主観や主張のみを押し切るタイプだろ。
819デフォルトの名無しさん:2008/06/26(木) 06:26:21
すみません
どなたか>>749お願いできないでしょうか
820デフォルトの名無しさん:2008/06/26(木) 06:28:21
必死に噛み付いてきて、結局自分は答えなかった粘着↓
http://pc11.2ch.net/test/read.cgi/tech/1208268461/80-87
http://pc11.2ch.net/test/read.cgi/tech/1208268461/402-411

何か言うと、それに反応せずにはいられない一言居士。分かり易いだろ?
この世に後10年くらい生きて、様々なタイプの人間を見て観察してみろ。
自分という人間がどういったタイプに当てはまるか、分かるから。
この世に自分は唯一無二とは言え、大まかに性格や行動パターンってのは
過去に存在した何かに準ずるものがあって、分かりやすいんだよw
821デフォルトの名無しさん:2008/06/26(木) 06:32:30
そうやって過去スレのリンク張るってことは専ブラ使ってるのか……
一度今までの自分の書き込みを冷静振り返ってみることをお勧めするよ。
822デフォルトの名無しさん:2008/06/26(木) 06:33:24
"に"が抜けた。
冷静 → 冷静に な。
823デフォルトの名無しさん:2008/06/26(木) 06:34:01
意見、いちゃもんをつけるくらいなら自分が書け。
相手に意見をするなら、それのどこが客観的にかつ
動作する上で問題か、指摘しろ。
もっとこう、効率の良いものはあるよといわれても
所詮このスレは初心者向け。標準ライブラリを用いても
それを使うなという注文もあるが、確かにそれに応じずとも
良いといえば良いが、ここで初心者をバカにしに来ているなら
性格が捻じれてんぞ。まぁ、過去にあんたが誰かにやられたのかも
しれんが、そんなの知ったこっちゃねーだろ、第三者には。
無関係な奴を罵倒するなよ?なぁ、最後に必ず罵倒レスを入れなきゃ
気が済まないあんた?
824デフォルトの名無しさん:2008/06/26(木) 06:46:27
無視してりゃそのうち自分が惨めになってどっかいくでしょ
825デフォルトの名無しさん:2008/06/26(木) 06:50:58
>>1
> 気に入らない質問やその他や発言はスルーの方向で。
日本語も読めない奴が、コードを読解する能力があるとも思えん。
826デフォルトの名無しさん:2008/06/26(木) 07:34:56
827デフォルトの名無しさん:2008/06/26(木) 07:55:18
>>624 酷い言い掛かりだ。こりゃ嫌われるぞ。
いい加減、新学期から来ているなら3ヶ月以上経っているんだから
このスレの基本的な流れを理解しようや?お前一人が回答者じゃないんだぞ。
828デフォルトの名無しさん:2008/06/26(木) 08:02:22
>>1
>気に入らない質問やその他や発言はスルーの方向で。
829デフォルトの名無しさん:2008/06/26(木) 09:46:21
[1] 授業単元:Cプログラミング
[2] 問題文:入力された文字列(char型配列に格納)について、1文字ずつその文字の種類を示し、最後に文字数を表示するプログラムを作成せよ。
文字の種類は大文字、小文字、数字、その他の文字の4種類とすること。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008年06月27日いっぱい
[5]配列と文字列まで習いました。ポインタや構造体は習ってません。
830デフォルトの名無しさん:2008/06/26(木) 09:52:25
#include <stdio.h>
#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;
}
831デフォルトの名無しさん:2008/06/26(木) 10:07:16
>>830さんありがとうございます、参考にさせていただきました。実はもう一つできなかった問題があるのですが、
1] 授業単元:Cプログラミング
[2] 問題文:2つのchar型配列x[],y[]に格納された文字列を入れ替えるプログラムを作成せよ。ただし入れ替え処理には関数swap_array(char [],char [])を作成して用いること。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
なのですができたらでいいので宜しくお願いします。
832デフォルトの名無しさん:2008/06/26(木) 10:24:34
>>829
解決済みみたいだけど・・・
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;
}
833デフォルトの名無しさん:2008/06/26(木) 10:25:38
>>831
swap_array(char a[],char b[])
{
char *tmp;
tmp = malloc(strlen(a)+1);
strcpy(tmp, a);
strcpy(a, b);
strcpy(b, tmp);
free(tmp);
}
834デフォルトの名無しさん:2008/06/26(木) 10:37:20
>>832>>833ありがとうございます。>>831の実行結果なんですが、
文字列x(20字まで)?適当な文字列
文字列y(20時まで)?適当な文字列その2
関数swap_array()を呼び出しました
入替後のx:適当な文字列その2
入替後のy:適当な文字列
となるような結果にしたいのですが。
835デフォルトの名無しさん:2008/06/26(木) 10:41:35
[1] 授業単元:C 文字の処理
[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
836デフォルトの名無しさん:2008/06/26(木) 10:41:39
>>834
ですが,どうしたいのですか?
837デフォルトの名無しさん:2008/06/26(木) 10:43:49
>>834
mainも書けってことか?

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;
}
838デフォルトの名無しさん:2008/06/26(木) 10:46:29
>>836すみませんでした>>833のソースの意味が理解できていませんでした。
できればswap_array関数だけでなく、その関数を呼び出すプログラム含め全体のソースが知りたいのですが。
839833:2008/06/26(木) 10:48:32
voidつけるの忘れた
20時が門限なら
void swap_array(char a[],char b[])
{
char tmp[21];
strcpy(tmp, a);
strcpy(a, b);
strcpy(b, tmp);
}
でもいいや
840デフォルトの名無しさん:2008/06/26(木) 10:49:41
>>837ありがとうございます。とてもよく分かりました。>>838の質問はなかったことにしといてください。ご迷惑をおかけします。
841デフォルトの名無しさん:2008/06/26(木) 10:50:38
>>835
#include <stdio.h>
int main(void){
  char moji20[21];
  wile(1){
    printf("入力データ:");
    fflush(stdout);
    scanf("%s", moji20);
    printf("出力データ: %d 文字", strlen(moji20));
  }
}
842デフォルトの名無しさん:2008/06/26(木) 11:04:50
831と似た内容なんですけど格納された文字列xと文字列yを入れ替えるのではなくて文字列xの最後に文字列yを連結させる場合はどうすればいいでしょうか?
ちなみに使っている関数はstringcat(char[],char[])で呼び出すときに連結後の文字数が20字を超えたら「連結付加」と表示するようにしたのですが
843デフォルトの名無しさん:2008/06/26(木) 11:07:11
>>842
つなげる前に文字列の文字列xとyの文字数を調べればいいだけのような
844デフォルトの名無しさん:2008/06/26(木) 11:17:42
>>841
ありがとうございました。
4行目while(1){でしたYO!
845デフォルトの名無しさん:2008/06/26(木) 11:48:23
どなたか>>670お願いします
846デフォルトの名無しさん:2008/06/26(木) 14:26:03
[1] C言語演習
[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などの文でお願いします
847デフォルトの名無しさん:2008/06/26(木) 14:40:21
[1] 授業単元:ネットワーク応用
[2] 問題文:
インターネットに接続されたPC同士で、同一のアプリケーションの状態を、
同期・共有させるソフトウェアの作成

つまりはフォトショップを持っている人同士で、高度なお絵かきチャット
を出来るようにするソフトみたいな。
[3] 環境
 [3.1] OS: Windows
 [3.2] VC++ 2005
 [3.3] 言語: どちらでも可
[4] 期限: 7月1日
[5] その他の制限: 特になし

どういったことをすればそういうことが実現出来るのか、
についても可能であればご教授賜りたいです
848デフォルトの名無しさん:2008/06/26(木) 15:20:01
[1]コードレベル:(ヒント/未コンパイル/コンパイル可能確認/
典型ケース確認済/多ケース確認済/リファクタリング済(変数の使い方
の見直し、フローの再設計etc)≒清書)

[2]コード:アップローダーを使う場合でも、核心部分だけでも書く。
書式は多少乱れても良いが、ギチギチに圧縮はしない。
アップローダー上のファイルが保存される保証は無いから。
これについては質問者も同様で、質問の概要でも書いておくこと。
別の組織が運営しているサイトへのリンクポインタ配列のように
掲示板を利用するのはやはりマナー違反(おとり潰しの対象に
なりますよ)

[3]環境:コンパイルに使用したコンパイラ、OSなど。特に
C/C++のどちらのモードでコンパイルしたのかは必ず

[4]コメント/説明
849デフォルトの名無しさん:2008/06/26(木) 15:27:57
850デフォルトの名無しさん:2008/06/26(木) 16:46:50
[1] 授業単元:cプログラミング
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
851デフォルトの名無しさん:2008/06/26(木) 17:46:44
1] 授業単元:応用プログラミング
[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まで
宜しくお願いします。
852デフォルトの名無しさん:2008/06/26(木) 17:52:46
>>673わかる方いませんか?
853デフォルトの名無しさん:2008/06/26(木) 18:04:54
>>851です。
期限28日×→27日○ でした(;゚Д゚)
854デフォルトの名無しさん:2008/06/26(木) 18:31:54
>>808
遅くなりましたがありがとうございます!
思ったんですが制限の20回を外して無制限にするにはどうすればいいのですか?
855デフォルトの名無しさん:2008/06/26(木) 18:35:51
>>673
作っては見たもののCOM思考とかあまり題意に沿えなかったかも(+激弱)。
役に立つかわかりませんが参考程度にでもなれば。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7086.txt
856 ◆DuoCt8/SKk :2008/06/26(木) 18:58:32
>>852
>>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 オプションを使用してください。
857デフォルトの名無しさん:2008/06/26(木) 19:19:05
>>696です。。

どなたかお願いできないでしょうか?
858デフォルトの名無しさん:2008/06/26(木) 19:38:01
>>849
返答ありがとうございます
でもすいませんが文字化けして見えないんですが…
859デフォルトの名無しさん:2008/06/26(木) 19:42:15
>>858
エンコード→Unicode
860855:2008/06/26(木) 19:43:13
>>856
エラーメッセージは「ヘッダが繰り返し読み込まれて…」と言ってるのだけど
環境違うんでどうするのがいいかはまでは分からんです。
ヘッダ読み込んでるのは標準関数のmalloc,memset,memcpy,atoi使うためなんで
それらが使えるように適当に適当にヘッダ削ったり追加したりして下さいな。
もしくはvisual studioに詳しい方、お願いします。
861 ◆DuoCt8/SKk :2008/06/26(木) 20:01:22
>>860
そうだったのですか,返事ありがとうございました.
>>標準関数のmalloc,memset,memcpy,atoi
標準関数はまだ習ってません……どうしましょう……
図々しいお願いかとは思いますが,どなたか>>855さんのプログラムを修正しては頂けないでしょうか?
もし良かったらでいいので,よろしくお願いします.
862デフォルトの名無しさん:2008/06/26(木) 20:05:36
ただ一つ言えること
>>855のソースをgccでコンパイル出来ない人が
Visual-Studioのような高度なC環境をまともに扱えるかど
うかは極めて懐疑的
Windowsでも、BCC5.5とかCygWinのgccとか
MinGWのgccとかのCコンパイラを使うことをおすすめする。
863デフォルトの名無しさん:2008/06/26(木) 20:10:47
>>861
切符販売機の人?
864デフォルトの名無しさん:2008/06/26(木) 20:14:29
[1] 授業単元: プログラミング
[2] 数字をキーボードから入力し、次に割る数を入力します。
最初の数字(suji1)が2番目の数字(suji2)で
割り切れるかどうかを判断するプログラムを作成しなさい。
注:最初の数字に大きい数を入力してください。
また、2番目の数字に0は入力しないようにしてください。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語:C言語
[4] 期限:今日中
急で悪いですが宜しくお願いします
865 ◆DuoCt8/SKk :2008/06/26(木) 20:27:56
>>862
すみません,stringのヘッダを消せばいけるのですがその標準関数で
エラーが出てしまうのです.あとVisualStdioは学校の指定みたいな
ものなので,他の開発環境とか全然知らないんです.
>>863
はい
866デフォルトの名無しさん:2008/06/26(木) 20:38:16
#include<stdlib.h>はあるか?


867 ◆UEHxr6kPa6 :2008/06/26(木) 20:50:46
[1] 授業単元: C++プログラミング
[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時まで
  お願いします
868 ◆DuoCt8/SKk :2008/06/26(木) 20:59:08
>>866
はい,あります.
869デフォルトの名無しさん:2008/06/26(木) 21:19:49
【犯罪告発】 吊り上げ疑惑の荒稼ぎストアに電凸しました 【ヤフオクの闇】

http://www.nicovideo.jp/watch/sm3771420
870デフォルトの名無しさん:2008/06/26(木) 21:20:49
>>867
ちょっと横槍ですまぬが、
その環境の精度の範囲内で良いんかな?
自分ところだと 1/31 は循環するが
精度の範囲内では循環しているように表示されない。
0.
032258064516129
032258064516129
871デフォルトの名無しさん:2008/06/26(木) 21:21:48
872 ◆UEHxr6kPa6 :2008/06/26(木) 21:23:19
>>870
環境の精度の範囲内で大丈夫です。

よろしくお願いします
873デフォルトの名無しさん:2008/06/26(木) 21:28:23
どなたか782もお願いします
874デフォルトの名無しさん:2008/06/26(木) 21:39:55
>>867
> 循環小数を検出するとき
して、どのように分数を指定するのかね?
適当に入力?それとも・・・1〜nまで総当り?
875デフォルトの名無しさん:2008/06/26(木) 21:43:17
>>873
問い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);
}
876デフォルトの名無しさん:2008/06/26(木) 21:47:40
どなたか>>670お願いします…
877 ◆UEHxr6kPa6 :2008/06/26(木) 21:48:34
>>874
分数は適当に入力して、循環小数になる場合は{}でくくり出す感じです。
878デフォルトの名無しさん:2008/06/26(木) 21:48:34
[1] 授業単元:情報処理技法
[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]よろしくお願いします
879デフォルトの名無しさん:2008/06/26(木) 22:48:05
1/976=0.0010[245901639344262295081967213114754098360655737704918032786885]

1/977=0.[00102354145342886386898669396110542476970317297850562947799385875127942681
6786079836233367451381780962128966223132036847492323439099283520982599795291709314
2272262026612077789150460593654042988741044012282497441146366427840327533265097236
4380757420675537359263050153531218014329580348004094165813715455475946775844421699
0788126919140225179119754350051177072671443193449334698055271238485158648925281473
8996929375639713408393039918116683725690890481064483111566018423746161719549641760
4912998976458546571136131013306038894575230296827021494370522006141248720573183213
9201637666325486182190378710337768679631525076765609007164790174002047082906857727
7379733879222108495394063459570112589559877175025588536335721596724667349027635619
2425793244626407369498464687819856704196519959058341862845445240532241555783009211
8730808597748208802456499488229273285568065506653019447287615148413510747185261003
0706243602865916069600818833162743091095189355168884339815762538382804503582395087]

1/978=0.0[0102249488752556237218813905930470347648261758691206543967280163599182004
08997955]
880864:2008/06/26(木) 23:05:13
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7091.txt
自分で解いてみましたが採点よろしくお願いします
881デフォルトの名無しさん:2008/06/26(木) 23:10:31
>>864
今日中だからガンバ
としかいいようがない。
方針はあってるが、
スペルミスなどが目につく
882875:2008/06/26(木) 23:13:40
こめんなさい、この答え間違ってますorz...
883デフォルトの名無しさん:2008/06/26(木) 23:20:58
[1]C言語演習
[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7092.txt
[3]LINUX
[4]6月28日
[5]上記のプログラムを改定する形でお願いします。
よろしくお願いします。
884867:2008/06/26(木) 23:23:09
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7093.txt

とりあえず範囲ではなく、繰り返す桁数を表示するプログラムを作ってみたのですが、
これをいじって範囲を表示できるようになるかご指導お願いします。
885デフォルトの名無しさん:2008/06/26(木) 23:53:31
[1] 授業単元: プログラム基礎
[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を使わずにお願いします
886デフォルトの名無しさん:2008/06/26(木) 23:57:24
>>883
scanf("%s",...)で標準入力から読み込むとホワイトスペースで読み込みが停止するので
スペースを含めて読み込みたい場合は
fgets(speech,NMAX,stdin); とか
scanf("%[^\n]",speech); とかで読み込めばよろし

あとtypoに気をつけて
887855:2008/06/26(木) 23:59:07
>>861
入力は全て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
未解決なら今後のためにも一読の上、再確認をお勧めしときます。
888デフォルトの名無しさん:2008/06/27(金) 00:16:37
[1] 授業単元:C言語
[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] その他の制限:特になし
どなたかよろしくお願いします
889デフォルトの名無しさん:2008/06/27(金) 00:19:15
if(b < a) return b;
return a;
890デフォルトの名無しさん:2008/06/27(金) 00:31:26
minってここ最近は関数で用意した覚えないな
いつもマクロだ

#define mMIN(a,b) ((a > b)?b:a)
891144:2008/06/27(金) 01:11:42
[1] 授業単元:)
[2] 問題文(含コード&リンク):C言語で自動車エンジンの走行距離と走行時間による熱効率と燃費の算出
(エンジンのパワーと単位時間に消費される燃料の重さを入力して走行距離と時間に応じた熱効率を算出する。燃費は熱効率と逆数の関係にあるのでそこから求められる。)
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2007
 [3.3] 言語:C
[4] 期限:2008/6/27
[5] その他の制限:課題に対する制限は特になし。
892144: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);
}
ってかスレ違い??
893デフォルトの名無しさん:2008/06/27(金) 01:13:21
[1] 授業単元:C言語
[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] その他の制限:特になし
どなたかよろしくお願いします

と書いて欲しかったな
894デフォルトの名無しさん:2008/06/27(金) 01:13:38
>>886
素早い返答ありがとうございます
申し訳ございませんが何故 scanf("%[^\n]",speech); でおkなのでしょうか?
説明していただけないでしょうか?
895デフォルトの名無しさん:2008/06/27(金) 01:15:13
>>892
俺は興味無いからやらんが、微分方程式解いた方が早いんじゃね。
896144:2008/06/27(金) 01:35:15
>>895
微分方程式ですか?
とりあえず発表に使うのに時間ないから一番簡単に文献に与えられてた式を用いたんですけど。
そっちのほうがいいんですかね?
897デフォルトの名無しさん:2008/06/27(金) 01:49:50
>>894
意味合いで言ったら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
この辺みてください 
898デフォルトの名無しさん:2008/06/27(金) 02:02:05
[1] 授業単元:プログラミング演習
[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] その他の制限:急ですいませんがよろしくお願いします。あと出来れば省略しすぎない形でお願いします。
899デフォルトの名無しさん:2008/06/27(金) 02:15:26
>>891
燃費って走行距離/消費燃料なんじゃないの?
それ以外の何かを検討しないといけないのなら式が欲しい。
900デフォルトの名無しさん:2008/06/27(金) 02:52:30
[1] 授業単元: 数理解析
[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対角成分が固有値である
なので、できるだけこの手順準拠でお願いします。
901デフォルトの名無しさん:2008/06/27(金) 02:54:04
3の倍数でウルトラマンになって、5の倍数でゴジラになり
3と5の倍数でウルトラゴジラになるプログラム(ry
902デフォルトの名無しさん:2008/06/27(金) 02:56:14
>中間順に各値を表示する
の意味がよくわからん
903デフォルトの名無しさん:2008/06/27(金) 03:12:34
木ならわかるんだが、配列なんだよな。
904900:2008/06/27(金) 03:46:02
すみません、>>900のJacobi法の手順ですが、

・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に限りなく近い値よりも小さくなったら)ループ終了
という形でも大丈夫そうです
905デフォルトの名無しさん:2008/06/27(金) 03:59:26
【質問テンプレ】
[1] 授業単元: 情報処理演習
[2] 問題文(含コード&リンク):
データ (x,y)を10個読み込んでその回帰直線を求めるプログラムを作れ.

平均値を計算する関数を作る

前回の課題のプログラムをそのまま使う (データ x とそのデータ数 n を引数で受け取り,その平均値を値として返す関数を作れ.

平均値を計算する関数

主プログラムからデータの個数と配列を受け取る
平均値を計算して,返す
君と君の友人あわせて10名の体重と身長を調べ,作成した関数を用いてそれぞれの平均値を求めよ.

主プログラム

身長のデータをサイズ10の配列 height に読み込む
体重のデータをサイズ10の配列 weight に読み込む
height を引数(パラメータ)に関数を呼び出す
weight を引数(パラメータ)に関数を呼び出す
結果を出力する
)
906デフォルトの名無しさん: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] その他の制限:組込関数・繰返し・条件による繰返し・配列・ポインタ・関数まで習っています。
なるべく早めにやってくれると助かります。お願いします。
907デフォルトの名無しさん:2008/06/27(金) 06:12:46
>>871
ありがとうございました!
908 ◆DuoCt8/SKk :2008/06/27(金) 06:54:57
>>887
わざわざ書きなおして下さるとは……回答本当にありがとうございました.
エラーの内容も示して下さったリンク先を参照にして考えてみます.
ありがとうございました.
909デフォルトの名無しさん:2008/06/27(金) 07:57:53

 ■
  ■
   ■
    ■
   ■
  ■
 ■


こんなかんじで左端から右端まで行くと今度は左端に行くように表示する
for文のプログラムを教えてください。

OS:WindowsXP
言語:c言語
コンパイラ:VC++ 2008
910デフォルトの名無しさん:2008/06/27(金) 08:01:00
横の文字数って決まってるの?
911デフォルトの名無しさん:2008/06/27(金) 08:05:13
>>910
横は確か半角で40文字だったような?
コマンドプロポントで表示です
912デフォルトの名無しさん:2008/06/27(金) 08:11:37
あと右端に到達したらっていうのは一番右端の■でいいの?
913デフォルトの名無しさん:2008/06/27(金) 08:12:20
>コマンドプロポントで表示です
コマンドプロンプトね

というかコンソールアプリってことねw
914デフォルトの名無しさん:2008/06/27(金) 08:15:01
>>912
そうです!

>>913
コマンドプロンプトでしたw
915デフォルトの名無しさん:2008/06/27(金) 08:56:04
>>905
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7098.txt
関数名とか変数名とか結構適当なので好きなようになおしちゃってください
係数は y=a+bx としている所が多いようなのでそのようにしました

ちゃんと回帰直線になってるかは・・・いまいち自信なし(何
916915:2008/06/27(金) 09:08:08
917デフォルトの名無しさん:2008/06/27(金) 09:08:29
>>915
そこ消えてるんですけど・・・・他にありませんかね?
918デフォルトの名無しさん:2008/06/27(金) 09:09:47
>>916
ありがとうございます。助かりました><
参考にさせていただきます
919デフォルトの名無しさん:2008/06/27(金) 10:29:16
>>909

#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;
}
920デフォルトの名無しさん:2008/06/27(金) 10:34:52
すみません、>>851解る方いませんか?
921デフォルトの名無しさん:2008/06/27(金) 10:42:34
0と1をそれぞれ偶数回受け取ったらq0に戻ると思うんだが、受理状態q3なのが意味わからん。
922デフォルトの名無しさん:2008/06/27(金) 10:44:37
>>920
"0110"だと受理状態にならないからこの遷移図おかしくね?
923デフォルトの名無しさん: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;
}
924デフォルトの名無しさん:2008/06/27(金) 11:29:14
S=qs
E=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_

偶数を正の整数に限定してみた
925デフォルトの名無しさん:2008/06/27(金) 11:53:44
>>921>>922
言われてみればおかしいですね
多分遷移図に対応すれば良いと思います。
0と1が偶数回出現するってのはなしで

>>923>>924
ありがとうございます。
926デフォルトの名無しさん:2008/06/27(金) 12:29:58
>>919
うおおおおお!ありがとうございます!
927デフォルトの名無しさん:2008/06/27(金) 13:25:29
[1] 授業単元: 制御システム
[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)を求める、というものです。

本当にさっぱりわからないです(;´Д`)
もしわかる方いらっしゃいましたらよろしくお願い致します。
928デフォルトの名無しさん:2008/06/27(金) 14:04:39
>>927
ルンゲ・クッタ法は知らんが、行列Aをジョルダン分解してジョルダンJ行列のexp(Jt)を求め、
それを逆変換すればexp(At)は簡単に求まる。
悪いがCで書くのはだるいのでパス
929デフォルトの名無しさん:2008/06/27(金) 14:41:45
スレ違いかもしれませんがC言語を1から始めるのに良い本ってありますか?わかりやすいやつがいいのですが
930デフォルトの名無しさん:2008/06/27(金) 14:49:07
>>928が言うとるのは
BAB^(-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でやるのはたるいというのは
正常な感覚かも知れない。
931デフォルトの名無しさん:2008/06/27(金) 15:45:47
[1]C言語
[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7101.txt
[3]LINUX
C
[4]6月28日
[5]配列、関数を使わずお願いします
すいませんがよろしくお願いします
932デフォルトの名無しさん:2008/06/27(金) 15:56:23
>>931
> 関数を使わずお願いします 
インラインアセンブラですか,そうですか
933デフォルトの名無しさん:2008/06/27(金) 15:57:34
[1]C言語
[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]配列、関数を使わずお願いします。すいませんがよろしくお願いします
934デフォルトの名無しさん:2008/06/27(金) 16:01:50
>>929
こちらのスレが良いと思われ

C言語なら俺に聞け(入門篇) Part 30
ttp://pc11.2ch.net/test/read.cgi/tech/1213367888/
935833:2008/06/27(金) 16:11:30
>>933
main( )とscanf( ) とprintf( )関数ぐらいは使わせてくれよ
936デフォルトの名無しさん:2008/06/27(金) 16:14:25
>>933
ユーザー関数がNGってこと?
937デフォルトの名無しさん:2008/06/27(金) 16:17:36
>>933
int 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);
    }
}
未コンパイル
938デフォルトの名無しさん:2008/06/27(金) 16:26:08
>>937
一応、sum_iとsum_dbl_iは初期化しておいたほうが良さそうだね
939デフォルトの名無しさん:2008/06/27(金) 16:54:23
[1] 授業単元:プログラミング演習
[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種類に限定する。再帰呼出を活用して作成する

逆ポーランド記法は出来たのですがポーランド記法はわかりませんでした。
どうかよろしくお願いします。
940デフォルトの名無しさん:2008/06/27(金) 16:58:47
[1] Cプログラミング実習
[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] とくになし
941デフォルトの名無しさん:2008/06/27(金) 17:08:35
あばばばばわかんねー\(^o^)/
どなたか>>885お願いします
942デフォルトの名無しさん:2008/06/27(金) 17:09:47
>>940
1.
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;
}
}

未コンパイルです。
943デフォルトの名無しさん:2008/06/27(金) 17:13:07
>>941
char *myStringCopy(char *s, char *d)
{
char *retval = d;

if(!d || !s) return NULL;

while (*s)
{
*d++ = (char)*s++;
}
*d = '\0';

return retval;
}
これでよろしい?
944943:2008/06/27(金) 17:24:52
countCharの返り値がNULLを含まない値の場合
myStringCopyの最後の
*d = '\0';
を消してください。

ただ、出来ればcoutCharの返り値にNULLも含ませるか
mallocする際にsizeに+1してください
945デフォルトの名無しさん:2008/06/27(金) 17:25:43
ありがとう、参考にしてさらっと終わらせます\(^o^)/
946デフォルトの名無しさん:2008/06/27(金) 17:43:28
>>939
#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)));
}
947144:2008/06/27(金) 17:44:09
>>899
燃費算出にも色々計算式があるみたいで・・・。
ガソリンエンジンとディーゼルエンジンでも微妙に計算式違ったりしてる。
でも一般的な値を使ってある式の一つを持ってきたから、Ne(出力)とh(走行時間)を掛けると、言う通りの次元になるのかもしれん。
ま、次元解析までは手を出してないですがwww
Wordで報告書に式が掲載されているんだが、それをWebにうpする技術が自分には無くて・・・。
ここに直接書くとdでもない事になりそうです。
948デフォルトの名無しさん:2008/06/27(金) 17:46:27
とりあえず終わりも近いしageとくか
949デフォルトの名無しさん:2008/06/27(金) 17:58:18
>>944
分かりにくい解説なので、もう一度丁寧にお願い。
950デフォルトの名無しさん:2008/06/27(金) 18:02:42
どなたか>>696をお願いできないでしょうか?
951デフォルトの名無しさん:2008/06/27(金) 18:07:01
>>947
諦めろ。その程度の覚悟もなく頼むな
952デフォルトの名無しさん:2008/06/27(金) 18:10:05
>>949
えと、countCharの実装方法によるんだけど
char source[]="Hello";をカウントした場合に5が帰ってくる場合
>>943に書いたmyStringCopyだと、Helloをコピーした後に文字列の終端を示す為に\0を追加するので
6バイト分書き込みます

もし、カウント分の5バイトしかmallocで確保しなかった場合にメモリを破壊してしまいますので
malloc時にmalloc(size * sizeof(char) + 1);等して6バイト分確保してください

で、何で最後に\0を追加するかというと
fprintfで表示する際に
もし無かった場合、\0が出てくるまで表示しようとしますので
そうならないようにする為です。

これでOK?
そろそろ仕事あがるので、後は他の人に任せた
953デフォルトの名無しさん:2008/06/27(金) 18:11:31
すいません、先生が一を言って十をわかることを求める人なので…orz

[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
ncursesを使って、(初心者からすれば)少し大きめのプログラムを作れ。
↑(かなりアバウトですが、実際にこういわれたw)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: cygwin
 [3.3] 言語: C限定でお願いします。
[4] 期限:2008年7月6日まででおねがいします!
[5] その他の制限:特になくてOKっす!おねがいします!
954デフォルトの名無しさん:2008/06/27(金) 18:18:50
>>953
質問しないお前が悪い。早くメールで聞き直せ
955デフォルトの名無しさん:2008/06/27(金) 18:19:26
>>950
#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;
}
956950:2008/06/27(金) 18:27:14
>>955

ありがとうございました。m(__)m
957941:2008/06/27(金) 18:27:24
>>952
950じゃないけどわかりやすかった、ありがとう
958941:2008/06/27(金) 18:27:54
違う、950じゃなくて949だ・・・
わけわからんからこのへんで\(^o^)/
959941:2008/06/27(金) 18:32:37
で、sizeを(size+1)に置き換えて*d='¥0';を削除してということで理解しました。
960デフォルトの名無しさん:2008/06/27(金) 18:33:49
いやいやいやいやいや
size + 1 にするなら *d = '\0' 消しちゃ駄目でしょ
961940:2008/06/27(金) 18:35:24
>>942
ありがとうございました〜
962デフォルトの名無しさん:2008/06/27(金) 18:35:53
[1] 授業単元:コンピュータアーキテクチャ

[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] その他の制限: 特にありません

宜しくお願いします
963デフォルトの名無しさん:2008/06/27(金) 18:42:53
>>947
普通の人に燃費って言ったら「1リットル当たりどれだけの距離を走れるか」と考えるんでない?
少なくとも俺や周りの人間はその程度の認識。
次元解析とかいうよくわからない言葉を出さないといけないのなら、相応の情報がないと
手のつけようがないって言ってるんだが、おかしいかな。

報告書に載ってる式があるらしいことは分かったが、内容を知るすべがない。
適当なとこにうpすればいいじゃん。全部がいやなら式のとこだけテキストに起こすとかしてもいいし。
964デフォルトの名無しさん:2008/06/27(金) 18:48:05
>>885から>>941までのやりとり追跡すると、
世の中のバグの多くはこういったやりとりの果てに作られてんだなと思った。
一方は教えたつもり、他方はわかったつもりになってしまう。
正解が一つとは限らない問題を扱っている場合はとくにこうなりやすい。
何を伝えたのか、何がわかったのかをきちっとやり取りで確認しないで通信
するようなことはCプログラマとしては一番やってほしくないことだ。
通信アプリの記述に関しては、Cほど実績があるものは無いからな。
965デフォルトの名無しさん:2008/06/27(金) 18:52:44
おっと
>>885から>>941までのやりとり追跡すると、

>>885から>>959までのやりとり追跡すると、
に置き換えてくれ
966デフォルトの名無しさん:2008/06/27(金) 18:53:01
いや↑のはただの成りすましで遊んでるアホがいるだけだろw
967デフォルトの名無しさん:2008/06/27(金) 19:04:26
次元解析なんて理系なら常識だろう。
968デフォルトの名無しさん:2008/06/27(金) 19:13:29
>>967
じゃあ回答してやれよって話だよー
ある式の一つを使用することに決めた報告書を相手は持っているが
こちらはそれがどの式であるかも分からないんだよ?

適当に回答して、その式じゃないです、って言われないためにも情報は必要。
969デフォルトの名無しさん:2008/06/27(金) 19:24:19
>>968
次元解析って名前は大仰だけど無意識でやってるだろ
970デフォルトの名無しさん:2008/06/27(金) 19:26:38
[1] 授業単元:プログラミング
[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] その他の制限: よろしくおねがいします
971デフォルトの名無しさん:2008/06/27(金) 19:47:53 BE:331349257-2BP(2700)
次スレ立てました。
C/C++の宿題を片付けます 111代目
http://pc11.2ch.net/test/read.cgi/tech/1214563642/
972デフォルトの名無しさん:2008/06/27(金) 20:56:32
>>970
ざっと見ただけ
恐らくシンプソンの公式で数値積分し、フーリエ係数を求めている。
積分刻み幅を増やしたりフーリエ係数の打ち切り個数を増やして
計算させてみたら
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

という風に、割合と良く一致しているから、全体的には
正しい解答を出せるプログラムだとは思うが、当然そのままのコードでは、このようには出ない。
973デフォルトの名無しさん:2008/06/27(金) 21:29:31
IT関係の学生が課題をアウトソーシング
http://slashdot.jp/developers/article.pl?sid=08/06/27/1059249
英・米のコンピュータ関係の学生が課題を海外へアウトソーシングしていることが明らかになった(silicon.com・本家/.記事)。
課題は(元々は企業向けの)コーディング請負サイトに競争入札形式で出され、最低価格の入札者が契約を落札できる。
単純な課題から卒業論文までアウトソーシングされており、簡単なものだと一件5ポンド(約1050円)程で、
修士論文でも100ポンド(約21,000円)程度で請け負ってもらえる。

ここで答えてもらえないような課題でも海外なら解決してくれるようだな。
974デフォルトの名無しさん:2008/06/27(金) 21:32:12
>>973
ここに流れてきてたりしてなw
975デフォルトの名無しさん:2008/06/27(金) 21:33:00
安いな
976デフォルトの名無しさん:2008/06/27(金) 21:33:32
安いけど英語にしないといけないんだろ?
俺には無理だ
977デフォルトの名無しさん:2008/06/27(金) 21:39:35
おいおい、理系英語は単語さえ分かれば圧倒的に楽だろう。
978デフォルトの名無しさん:2008/06/27(金) 21:44:59
読むだけなら簡単
書くとなったら大変
979デフォルトの名無しさん:2008/06/27(金) 22:15:17
いや、そりゃ1から書けばね。
関連する洋書の教科書読めば書き方なんて大体分かる。
980デフォルトの名無しさん:2008/06/27(金) 22:19:05
どうせ英語でのニュアンスを無視して、単語1つ1つを並べて
日本語を英語に無理やりしたような英語を書くんだろぉ?w
バイク板で妙な奴を見かけたよ。緑色の縁のプレートという表現で
the green-rimmed plate といった漢字で 色+縁取られた という形容詞で
辞書に丸々と使い方が載っているのに、それを提示しても無理やり
green plate rimming なんて、緑のプレートが縁取っている なんて
妙な単語の並べ方、活用の仕方をしやがって、吹いちまったぜ。
そんな俺は理系に進んだが英語の成績の方が良かったという
進路を間違えた被害者の一人だ。これがジャポネーゼの教育の実態だ。
英語が使いたいというなら、1年でも留学しろ。留年じゃないぞ、留学だぞ。
981デフォルトの名無しさん:2008/06/27(金) 22:22:44
>>980
それはバイク板の当該スレでいうべきことでは

1をみて10を知るのもいいが一般化するに足るサンプル数があるのか?
982デフォルトの名無しさん:2008/06/27(金) 22:25:49
いや、明らかに誤用だろ・・・そういう反論をする奴こそ
我こそは間違っていない、疑問に思うことはすべて
異例を調査してでも反論しようってタイプだろ?
世の中そんなんじゃやっていけないが、辞書で調べれば
金縁のめがねは gold-rimmed glasses で載ってますからw
983デフォルトの名無しさん:2008/06/27(金) 22:28:03
>>982
福田首相がダメだから日本の歴代首相は全てダメというくらい強引だな
984デフォルトの名無しさん:2008/06/27(金) 22:29:11
自分が言ったことが正しいと思い込む、あるいは正しくなくては困る
例えそうでなくても、意見をするものを封じるために相手を否定する
指摘した奴を陰湿に罵倒するような奴は、まず孤立している奴だろ。
いわゆる自分ルールで生きてきた奴。それゆえに通用しないことばかり。
だからそんなへまもする。まぁ、間違いを指摘されて反論するようじゃ
まず駄目だろう。にしても、用例や細かく分析しても納得のいく説明に
わざわざ指摘した側に圧力を掛けるって、どんだけ視野が狭いんだろうねw
985デフォルトの名無しさん:2008/06/27(金) 22:30:19
>>984
間違えたのはバイク板の何某一名じゃないのか?
986デフォルトの名無しさん:2008/06/27(金) 22:30:29
不毛すぎる他でやってくれ
987デフォルトの名無しさん:2008/06/27(金) 22:31:11
毎日この時間から朝までご苦労様です
988デフォルトの名無しさん:2008/06/27(金) 22:36:02
>どうせ英語でのニュアンスを無視して、単語1つ1つを並べて
>日本語を英語に無理やりしたような英語を書くんだろぉ?w
これが妄想という名の自分ルールじゃなかったらなんなんだw
989デフォルトの名無しさん:2008/06/27(金) 22:37:21
ttp://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=rimmed&dtype=1&dname=1na&stype=0&pagenum=1&index=06110400
ttp://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 とも言わない。
そこが ニュアンス の重要なポイントさ。理系なのに英語の解説している俺って
やっぱアメリカの企業で働くべきかねぇ、う〜〜ん。
990デフォルトの名無しさん:2008/06/27(金) 22:37:47
>>988
あっ、もうそういう詰まらない屁理屈しかいえなくなったんだ。
所詮お前もジャポネーゼイングリッチュw
991973:2008/06/27(金) 22:39:31
俺が悪かった。俺がこんな話しなきゃ・・・
992デフォルトの名無しさん:2008/06/27(金) 22:39:47
>>989
おお、ぜひともとっととアメリカ行ってくれw
993デフォルトの名無しさん:2008/06/27(金) 22:40:55
>>991
まあ、その話してなくても別のことで大暴れするだけだからあなたのせいじゃないよ
994デフォルトの名無しさん:2008/06/27(金) 22:41:17
せめてプログラムの話と絡めて欲しいもんだな。
こんな微妙な名前の変数名を見た、とか。
それにしてもどうでもいい話だけどさ
995デフォルトの名無しさん:2008/06/27(金) 22:43:00
よし in English なジャポネーゼが必死だなwwww
まぁ、お前の使えない英語は、日本語を必死に英語に訳そうとして
本来の英語を無視しているからなんだよ。まずは生粋の英文を
日本語に訳して、英語を英語として意味を理解しろ。
日本語に単語単語で訳してから理解しようとしている奴は
効率が悪く、まずまともな英語は身につかない。なぜなら、
英語を英語で理解する人は、わざわざ日本語に訳してなんて
ことはしていないだろ?当然っちゃ当然だが、そういうこと。
英語を英語で理解する、わざわざ日本語に置き換えなくても良いんだよ。
英語を知っている人なら、ね?w
さっ、宿題スレなんて、俺の戯言はこの辺で。所詮ジャポネーゼ
イングリッチュは通用しないって、海外に出れば分かるからw
996デフォルトの名無しさん:2008/06/27(金) 22:47:09
speak english,plz
997デフォルトの名無しさん:2008/06/27(金) 22:47:53
いつだったかバイク板で誰かが green plate rimming と書き込んだ
ゆえに、日本人は変な英語を使う

話の流れがおかしくないか?
998デフォルトの名無しさん:2008/06/27(金) 22:49:06
彼にまともな理屈が通じるとでも?
999デフォルトの名無しさん:2008/06/27(金) 22:53:53
1000デフォルトの名無しさん:2008/06/27(金) 22:54:31
All your coursework are belong to us
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。