[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 06/02 04:10 / Filesize : 123 KB / Number-of Response : 318
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題を片付けます 100



1 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 03:01:54 ]
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付けます 99代目
pc11.2ch.net/test/read.cgi/tech/1194262698/

199 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:51:45 ]
新しい宿題のネタになりますでしょうーか。<  変換

200 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:56:28 ]
sed -e 's/&/\&amp;/g' -e 's/^ /\&nbsp;/g' -e 's/  / \&nbsp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g'

201 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:15:24 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):()
===memo.txt===
DATA52/a
DATA52/u
DATA52/chi
=============
とかかれたmemo.txtのファイルがあるとして
そのファイルを読み込み"DATA52/"という
文字列を取り除く.
次にa,u,chiをくっつけてauchiとして表示せよ。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11/26 12:00
[5] その他の制限:
ちなみに構造体配列を使い、struct tfield tdata[1]を宣言し
tdata[0].filenameに"memo.txt"を格納しているとする。
そのmemo.txtをよみこみ処理してtdata[0].wordとして"auchi"を表示してほしいです。
メンバのfilename,wordはchar型です

202 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:17:18 ]
>>184
これは不思議。
アルゴリズムの名前とかある?

203 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:20:40 ]
>>202
エラトステネスのふるい

204 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 02:26:06 ]
>>203
まじか……。
調べる数をリストとして扱うと、こういう処理になるのか。

205 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 07:30:51 ]
ちょ、ふるいってプログラムで素数求めるときに必ずやるもんだろw

206 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:16:47 ]
確かに出てくる確率は多いけど、
ただ単に素数を求めるプログラムを作れって言われたら、
エラトステネスを思いつかなければ、別の手段を使うだろ。

207 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:20:35 ]
可能性ではなく、教養として知っておくべきだろうな。
教養なんて高尚なもんでもない。常識だ。



208 名前:デフォルトの名無しさん [2007/11/26(月) 08:21:07 ]
[1] 授業単元: プログラム数学
[2] 問題文(含コード&リンク):sinx は
x - x**3/3! + x**5/5! -x**7/7! + ---- (1)
と級数展開される.
式(1)で7項まで取った場合と組み込み関数で求めたsinxの値の差を,
0度から360度まで,プログラムを作成して求めろ
注意1:式(1)をプログラム化する際に,定義関数を利用し,項数と角度を渡すと値を返すような関数
   を作成のこと.
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: bcpad
 [3.3] 言語: C++
[4] 期限: 11月26日12:00
[5] その他の制限: 特にありませんが定義関数を使うようです
お願いします


209 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:37:54 ]
>>205
ごめん俺、確率的判定アルゴリズムしか知らない・・・
こういう演習で確率的アルゴリズム書いて提出するとどうなるんだろうな

210 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 08:56:55 ]
#Define Pi 3.14

double series_sin(double degree,int num){
double radian=degree * Pi/180;
double tmp=0;
for(int i=1;i<=num;i++ ){
tmp+=Pow(-1,i+1)*Pow(radian,i*2-1)/Factorial(i*2-1);
}
return tmp;
}

テストも糞も無いけどこれを修正してmath.hのSinと比べればOK
factorialの演算子がC++にあるかどうかは分からんので。

211 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 09:15:06 ]
>>145
何を求める問題なのかがさっぱり分からないから
問題を書き直したほうがいい

212 名前:デフォルトの名無しさん [2007/11/26(月) 10:28:06 ]
期限過ぎちゃいましたけど、
>47お願いします。

213 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 11:51:43 ]
>>209
なんで謝るの?

214 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:12:00 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5335.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: なし
[5] その他の制限:なし

215 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 15:42:30 ]
>>214
#include <stdio.h>
#include <time.h>

void gput(const char *s, int speed)
{
clock_t c;
while(*s) {
putchar(*s++);
c = clock();
while(clock() - c < speed);
}
}


216 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 15:53:26 ]
[1] 授業単元: プログラミング
[2] 問題文 数字の点数を読んで、クラスの平均点、最低点と最高点を求めるプログラムを書け
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: 不明
 [3.3] 言語: C#なんだけど、ほかのスレタイ調べても頼めないからみんなたのむ。
[4] 期限: 今週の金曜
[5] その他の制限:結構レベルが低いので複雑なプログラムはご遠慮願います。


217 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:20:24 ]
#include<stdio.h>
int main(){
int n;
printf("数字の点数を入力してください ",n);
scanf("%d",&n);
printf("平均点 %d\n",n);
printf("最低点 %d\n",n);
printf("最高点 %d\n",n);
return 0;
}




218 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:28:01 ]
int ClassMenberNum = 1;

219 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:48:02 ]
>>214
while(clock() - c < speed); → while(1000*(clock() - c) / CLOCK_PER_SEC < speed);

220 名前:学生 [2007/11/26(月) 16:50:23 ]
大学の授業で課題が出ました。初めてプログラミングやるので分かりません。
お願いします。自分は全くの初心者ですお願いします。

【C言語・質問】 以下、課題です。

@課題内容
駐車場のシュミュレーション・課題先リンク
www.trpt.cst.nihon-u.ac.jp/processing/2006/parking.html

※貴方自身がコンビニやパチンコ店の管理者となり、
イメージして以下の条件は各自自由な値としてよい。

・駐車場の台数 ・平均駐車時間(s)
・駐車時間の標準偏差(s)・駐車車両発生条件(開始時間 s )
・その時間における発生確率(台/s)・駐車車両発生条件(中間時間 s )
・その時間における発生確率(台/s)

例:パチンコ店
駐車場の台数=200台
来店頻度=400秒に1台
平均駐車時間=120分  等

上記の設定で、グラフも出る様にすること。


A課題の参考場所
www.trpt.cst.nihon-u.ac.jp/processing/parkingsim.c
上記の言語がベースになる様です。


221 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:53:28 ]
>>220
ログインできないのでユーザー名とパスワードを教えてください。

222 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:54:27 ]
>>220
>>1のテンプレに則ってください

223 名前:学生 [2007/11/26(月) 16:57:21 ]
>>221
すみません
ユーザー:1424
PASS:1424
両方同じです。

>>222
すみませんでした。以後注意します

224 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 16:57:39 ]
>>215
>>219
ありがとう!助かります!

225 名前:学生 [2007/11/26(月) 17:08:27 ]
テンプレに沿って書き直しました。

[1] 授業単元:情報処理
[2] 問題文:上記に掲載しました。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: bcPad 
 [3.3] 言語: C言語
[4] 期限:本日中
[5] その他の制限: 自分はプログラミング素人です。各文字の意味は知っています



226 名前:デフォルトの名無しさん [2007/11/26(月) 17:08:48 ]
[1] 授業単元:C言語(システムコール)
[2] 問題文(含コード&リンク):
10から0までの整数を1秒ごとに表示する親プロセスと子プロセスを生成しなさい。

備考
・fork() を用いること
・getpid() を用いて、親プロセスと子プロセスのプロセスIDを表示すること
・wait() を親プロセスで用いない場合と用いた場合を作成すること
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: なし
[5] その他の制限: なし

227 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:10:30 ]
>>223
大学の鯖に入れって事だろ?
なんか、ギリギリアウトな気がするんだが・・・w



228 名前:学生 [2007/11/26(月) 17:12:26 ]
>>227
大丈夫です。過去にも依頼した事がありあす。

このページ作っているのは大学院生です。見ていません

229 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:18:01 ]
すげぇなぁ、おいw

230 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:19:11 ]
基本技術者試験とかの設問で、不正アクセスになるのはどれか? という選択肢にありそうだなw

231 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 17:25:44 ]
不正アクセスでタイーホ

232 名前:学生 [2007/11/26(月) 17:26:50 ]
>>230
多分不二家ですねw

大学の鯖は、情報処理を履修している学生200名が利用していますよ

233 名前:デフォルトの名無し [2007/11/26(月) 17:44:19 ]
[1] 授業単元: プログラム演習
[2] 問題文:入力された正の2整数の最大公約数と最小公倍数を算出する。                   1(異常)
・キーボードからの入力が空の場合は処理を終了する。
・キーボードからの最大入力桁数は4バイトとする。
・キーボードからの入力が4バイトを超える場合は処理を終了する。
・キーボードからの入力が正の整数に変換できない場合は処理を終了する
エラーメッセージ
未入力 :入力されていません、桁あふれ:4文字以下で入力してください、数値以外:半角数字以外入力できません、ゼロ入力:0は入力できません
文字列を正数に変換する関数はatoiを使用。
引数 char data[] 文字列
戻り値 : 正数 エラー値 -1 未入力 -2 桁あふれ -3 数値以外-4 ゼロ入力
最大公約数を算出の関数名はgcdでユークリッドの互除法を使用。
引数 int data1 データ1 int data2 データ2
戻り値 : 最大公約数

最小公倍数を算出する関数名はlcm。最小公倍数を算出する際、最大公約数の関数を使用する。
引数 int data1 データ1 int data2 データ2
戻り値 : 最小公倍数
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 11・27まで
[5] その他の制限: なし

234 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 18:34:03 ]
>>232
利用者は関係なくてだね
アクセス制限してる以上、君が公開したところで罪になるのは見た人なんだよ

235 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 19:27:26 ]
好奇心から侵入してしまった俺は2chの歴史に刻まれるのか

236 名前:デフォルトの名無し [2007/11/26(月) 19:36:51 ]
1] 授業単元: ぷろぐらむ
[2] 問題文:入力された「対象文字列(s)」の中から、「検索文字列(t)」を検索し、
該当した「対象文字列」の添字を戻り値とする関数「search(s,t)」を作成しなさい。
ただし、「対象文字列」が「検索文字列」を含まない場合には「-1」を戻り値とする。

なお、関数「search(s,t)」は別ファイルに分け(main関数とそれ以外の関数)、
分割コンパイルできるように作成しなさい。
このとき、main関数以外の関数宣言が記述されたヘッダファイルを作成し、
main関数のソースファイルにて利用すること。

  (例) 以下の値で動作した場合は、「3」を返す。
       文字列s = “aababcbaa”
       文字列t = “abc”
入力は最大128バイトとする。128バイトを超える入力があった場合は処理を終了する

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:11月27日まで
[5] その他の制限: なし



237 名前:デフォルトの名無し [2007/11/26(月) 19:44:50 ]
1] 授業単元: プログラミング言語
[2] 問題文:与えられた数字文字列を数値(int型)へ変換する関数 AsciiToIntを、ポインタを使用して作成せよ。
      さらに、この関数を使用し、入力された文字列が実際に数値変換されたことを確認するプログラムを作成せよ。
引数 char *s 文字列のポインタ int *value 変換結果
戻り値 : 結果
文字列が空または8桁以上の場合はエラー値を返す。
文字列が数値に変換できない場合はエラー値を返す。

処理手順
文字列が空または8桁以上の場合はエラー値を返す。
先頭の文字列が符号+/-の場合、それを取り除いた文字列をチェック対象とする。
文字列の桁数を取得。
文字列を読み込んで、以下の処理を行う。
先頭文字列が+/-の場合は、符号情報を保持しておく。また、桁数が1の場合は、エラー値を返す。
ASCIIコードを使用し文字列をチェックし、数値以外であった場合はエラー値を返す。
取得した入力文字列の桁数、読み込んだ数値とその桁数より、数値計算を行う。
計算した結果を合計値に加算する。
入力値がマイナスであった場合、合計値に符号を付加する。
合計値を返す。場合は、エラー値を返す。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C言語
[4] 期限: 11/27
[5] その他の制限:なし



238 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:16:55 ]
>>216
「読む」の意味がいまいちわからないけどこんなんかな

using System;

class Sample{
public static void Main(){
int[] point = new int[5];
int max=int.MinValue, min=int.MaxValue;
double avg=0.0;
try{
for(int i=0; i<5; i++){
Console.Write("{0}人目の得点->", i+1);
point[i] = int.Parse(Console.ReadLine());
}
for(int i=0; i<5; i++){
if(max < point[i]) max = point[i];
if(min > point[i]) min = point[i];
avg += point[i];
}
Console.WriteLine("最高点:{0}点\n最低点:{1}点\n平均点:{2}点", max, min, avg/5);
}
catch{
Console.WriteLine("なんか例外");
}
}
}


239 名前:デフォルトの名無しさん [2007/11/26(月) 21:18:15 ]
[1] 授業単元プログラミング
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5336.txt
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語: C言語
[4] 期限: 11/27
[5] その他の制限: 特になし


240 名前:デフォルトの名無しさん [2007/11/26(月) 21:25:29 ]
(1)C言語
(2)問題
・与えられた個数の正の整数を格納している配列のうち、最大となる値を検出して、その値を
格納している配列要素の値を0に書き換える。すると新しい配列においては、もとの配列で
大きい方から数えて2番目の数値が最大値となっている。さらにもう一度、この新しい配列
における最大値を格納している配列要素の値を0に書き換える。するとこの時点でのさらに
新しい配列では、最初の配列において大きい方から数えて3番目の数値が最大となってい
る。このことを利用して、下記のプログラムを作成せよ。
(ここで示した方法は、いわゆる整列(ソーティング)問題の1つの解法となり得るが、効率的
な方法ではない)

 まずメイン関数において、キーボードから正の整数の個数(100以内)を入力し、次いで実
際の数値を配列に入力する。そしてメイン関数はサブ関数に、入力した個数と配列を引数とし
て渡す。
 サブ関数は、これらの配列から、まず1番目に大きい数を見つけて、それを別途設けた配列
の先頭の要素に格納し、次に2番目に大きい数を見つけてこれをこの配列の先頭から数えて
2番目の要素に格納し、という処理を最後の数に至るまで繰り返す。これにより新しい配列に
は大きい数から順に並んでいることになるので、これを引数を利用してメイン関数に渡す。(す
なわちサブ関数は引数を3つ持つことになる。1つはデータの個数を示す変数、1つは入力デ
ータを格納する配列、残りの1つはサブ関数で計算した結果を格納する配列である)
 最後にメイン関数はサブ関数で計算された新配列の値を若い方の要素から順に(即ち大き
い数から順に)画面に表示する。またこの数列の中央値を表示する(中央値に小数が含まれ
る場合は、その小数を切り捨てた整数を表示することとする)。
(3)環境
 (3.1) OS:Windows
 (3.2)コンパイラ名とバージョン: 不明
 (3.3)
 (3.4)C言語
(4)期限 :11月30日
(5)基礎的なことしか習っていないのですがよろしくお願いします。

241 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:35:49 ]
>>236
関数だけ作った
#include <string.h>

int search(const char *s, const char *t);

int search(const char *s, const char *t){
char *p;
p = strstr(s, t);
if(p == NULL)return -1;
return p-s;
}


242 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:41:55 ]
>>241
>入力は最大128バイトとする。128バイトを超える入力があった場合は処理を終了する
この部分の仕様を満たしてなくね?
if ( strlen( s ) > 128 ) exit( 0 );とか追加すればいいだけど。


243 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:44:04 ]
>>242
何ぃ!その部分はmain側だと思ってた!
じゃあそれつけといて下さい

244 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:08:23 ]
>>237
関数だけ作った
valueの使い道がわからなかった

#include <stdio.h>
#include <string.h>
#define ERROR_INT 100000000

int AsciiToInt(char *s, int *value){
int calc = 1, cnt, i, ans=0;
cnt = strlen(s);
if(cnt > 8 || cnt <= 0)return ERROR_INT;
if(*s=='+' || *s=='-'){
calc = *s=='+' ? 1 : -1;
s++; cnt--;
}
if(cnt <= 0)return ERROR_INT;
for(i=0; i<cnt; i++){
if(strchr("0123456789", s[i]) == NULL)return ERROR_INT;
ans = ans*10 + s[i]-'0';
}
return ans * calc;
}

245 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:20:15 ]
>>244
valueに値を格納して返す値は正常or変換結果じゃないか?
「変換結果を返す」ってあるけど、普通は正常or異常を返して
正常ならvalueに変換された値が格納されているって感じだな。

246 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:25:25 ]
>>240
#include <stdio.h>
#define N 10

void subfunc(int cnt, int *num, int *ans){
int i, k, pos;
for(i=0; i<cnt; i++){
for(k=1, pos=0; k<cnt; k++){
if(num[pos] < num[k])pos = k;
}
ans[i] = num[pos];
num[pos] = 0;
}
}

int main(void){
int i, num[N], ans[N], sum=0;
for(i=0; i<N; i++){
printf("%d個目->", i+1);
scanf("%d", &num[i]);
}
subfunc(N, num, ans);
for(i=0; i<N; i++){
printf("%d ", ans[i]);
sum += ans[i];
}
printf("\n中央値:%d\n", sum/N);
return 0;
}


247 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:39:13 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
www.vipper.org/vip677010.txt "sample.txt"というファイルを読み込み、グラフにしたとき山になる点を順番と大きさを"result.txt"に出力するプログラムを書け。
ファイルオープンに失敗した場合は失敗した旨を表示させること。
※[3, 10] [6, 6] [9, 9] をresult.txtに出力できるようになればいいみたいです。
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: VisualC++2005ExpressEdition
 [3.3] 言語: C
[4] 期限: 11/27
[5] その他の制限:とくになし


よろしくお願いします。



248 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:24:31 ]
>>233
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5339.txt

249 名前:デフォルトの名無しさん [2007/11/26(月) 23:25:04 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
(1)malloc()を用いて元のリストの構造をコピーしたリストを返すプログラム
※再帰的なプログラムをすること。以下を使用。
MyList *cpMyList(MyList *ptr);
(2)malloc()を用いて元のリストの先頭からn個のnodeをコピーしたリストを
返すプログラム
※nがリスト長より長いときにはそこまでの長さんのリストを返せばよい
※再帰的なプログラムにすること。
MyList *cpnMyList(MyList *ptr, int n);
(3)malloc()を用いて与えられた二つのリストをつなげたリストを返すプログラム
MyList *mergeMyList(MyList *ptr1, MyList *ptr2);
-----------------------------------------
冒頭は以下を使用
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node *next;
} MyList;

[3] 環境  [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語  [4] 期限: 11/28

なにとぞ、よろしくお願いします。。

250 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:29:37 ]
↓第1回、国際ニコニコ映画祭 大賞作品
www.nicovideo.jp/watch/sm1493205

はっきりいって糞暴力動画
これでいいのか?ニコニコ動画!??

251 名前:128 mailto:sage [2007/11/26(月) 23:47:54 ]
>>131>>154
>>132のでは実行してもなぜか何も表示されませんでした。
自分の環境では>>154のプログラムで正しい答えが出ました。
ありがとうございました。

あと数列に直すために色々試したのですができません・・・
これもお願いしていいでしょうか?

252 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:52:10 ]
よくあんな巨大配列で動いたもんだ

253 名前:コーンポタージュ [2007/11/27(火) 00:40:29 ]
>>147
追加・変更があるので、改めて掲載します。

【質問テンプレ】
[1] 授業単元:グラフ彩色問題
[2] 問題文
 [2.1]グラフ彩色問題に対する近似解法SEQを作成せよ
 [2.2].頂点を次数の降順にソートした後にSEQを適用するプログラムを作成せよ
 [2.3]グラフ彩色問題に対する近似解法RLFを作成せよ

問題の詳細(pdfなので少々重いです。最後の方のプログラミング課題です)
www-2ch.net:8080/up/download/1196004537765593.vEHtcV

サンプルプログラム(これを参考にプログラムを解くそうです)
www-2ch.net:8080/up/download/1196004323585273.o4l1bm

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

よろしくお願いします。

254 名前:デフォルトの名無しさん [2007/11/27(火) 00:42:17 ]
>>249
はいよっと、一応条件満たしてると思うけど

MyList *cpMyList(MyList *ptr)
{
MyList* pRet;

if(!ptr) return NULL;
pRet = malloc(sizeof(MyList));
memcpy(pRet, ptr, sizeof(MyList));
pRet->next = cpMyList(pRet->next);
return pRet;
}

MyList *cpnMyList(MyList *ptr, int n)
{
MyList* pRet;

if(!ptr || n==0) return NULL;
pRet = malloc(sizeof(MyList));
memcpy(pRet, ptr, sizeof(MyList));
pRet->next = cpnMyList(pRet->next, n-1);
return pRet;
}

255 名前:デフォルトの名無しさん [2007/11/27(火) 00:42:58 ]
>>249
マージする部分ね

MyList *mergeMyList(MyList *ptr1, MyList *ptr2)
{
MyList* pRet;
MyList* pIdx;

if(!ptr1) return cpMyList(ptr2);
pRet = cpMyList(ptr1);
pIdx = pRet;
while(pIdx->next)
pIdx = pIdx->next;
pIdx->next = cpMyList(ptr2);
return pRet;
}


256 名前:デフォルトの名無しさん [2007/11/27(火) 00:51:55 ]
>>249
うっぷろーだがあったんだ、こっちに上げといた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5340.txt

257 名前:216 mailto:sage [2007/11/27(火) 01:33:08 ]
>>238

すまない・・・せっかくといてもらったんだけど、CじゃなくてC#なんだ・・・。
スレッド自体はCかC++なんだけど、
C#のスレッドがなくてここの住人に頼るしかなくてね・・・。




258 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 01:45:34 ]
>>247
#include <stdio.h>
main()
{
int x , y, old_x = 0, old_y = 0, a = 0;
char line[1000];
FILE *fin,*fout;
if((fin=fopen("sample.txt","r"))==NULL){
printf("sample.txt can't open.\n");
exit(1);
}
if((fout=fopen("result.txt","w"))==NULL){
printf("result.txt can't open.\n");
exit(1);
}
while(fgets(line,1000,fin)!=NULL){
sscanf(line,"%d,%d",&x,&y);
if(y - old_y >= 0){
old_x = x; old_y = y;
a = 1;
}else{
if (a == 1){
fprintf(fout,"[%d,%d]\n",old_x,old_y);
}
old_x = x; old_y = y;
a = 0;
}
}
fclose(fin);
fclose(fout);
}

259 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 01:59:18 ]
>>257
大丈夫か?>>238はcscでコンパイル・実行可能だぞ?

260 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 02:04:02 ]
>>257
むしろ、C/C++じゃコンパイルすら通らないと思うんだが

261 名前:デフォルトの名無しさん [2007/11/27(火) 02:43:36 ]
>>254>>255>>256さん
ありがとー!!助かります!

262 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 02:48:59 ]
次スレからはスレタイにC#も入れとこう。


263 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 03:05:38 ]
>>258
ありがとうございました。

264 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 09:17:17 ]
>>220
これは善意の人間を犯罪者にするかのような誘導。
不正アクセスに繋がるから、このページに行く必要は全く無い。

265 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 09:38:45 ]
>当該アクセス管理者若しくは当該利用権者の承諾を得てする場合は、この限りでない。
正規の利用者からパスワード教えられてアクセスする場合って
不正アクセスになるんだっけ?法律にはうといからよくわからん・・・

266 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 09:51:00 ]
>>265
そもそも>>220が正規利用者だという確証は一つも無い。
下手をするとhackingを行った犯罪者だということすら考えられる。
そしてそのhackerからpassを教えてもらってアクセスすれば、
我々は立派な犯罪者になってしまう。

267 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 10:02:58 ]
故意かどうかって関係ないんだっけ?
まぁアクセスしないのが一番確実だけど。



268 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 10:17:33 ]
>>220が、そのIDとパスワードの所持者"本人"であれば、以下の法律
 不正アクセス行為の禁止等に関する法律
 law.e-gov.go.jp/htmldata/H11/H11HO128.html
第四条に該当し"許可を得た"ということになるんだが、本人であるという証明がなされていない。

2ちゃんねるにパスワードを掲載する=Web検索のロボットにキャッシュされる。
それと、ログインした人間のIPや環境情報はサーバーログを見ればすぐに判る。
管理していないとしても、しっかり残るので後で掘り返すことが可能。

逮捕者の実例
 News:速報:“2ちゃんねらー”6人逮捕,不正アクセスで
 www.itmedia.co.jp/news/bursts/0109/27/2ch.html

第3者が"権利者の許可なく"そのパスワードでログインした場合は不正アクセス。

269 名前:デフォルトの名無しさん [2007/11/27(火) 10:42:40 ]
[-3、3] fx=1/(1+5X^2) 分点10 (n=9)
この条件を使ってラグランジュ補間のプログラムを作れって問題なんですけどさっぱりです。ちなみにC言語です

270 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 10:44:38 ]
>>269
とりあえず>>1にテンプレートという便利なモノがあるからそれを大いに活用したほうが良い

271 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 11:16:08 ]
>>253
せめて問題例データくらい作って置いたらどうかな
頂点10で辺数27でしょ、PG作ってデータまで作るとなると、相当な暇人でもやらんと思う

272 名前:デフォルトの名無しさん [2007/11/27(火) 11:16:32 ]
>>270
OSはLinux 知識はCとC++なら多少は分かる とにかく提出したらいいので多少自己流で解かれても大丈夫です

273 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 11:17:46 ]
>>272
質問の仕方も自己流にこだわるのかw

274 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 11:31:34 ]
数式も自己流だしなあ。せめて人に通じる式で書こうよ。

275 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 11:48:09 ]
>>269
ラグランジュ補間は、本来、N点のデータが与えられた時、
それらの点を繋ぐことのできるxの多項式の係数を求めるという方法です。
プログラミング以前に、数学的な理解がおろそかだと思われます。
もっと言うと、補間に関するソースは至る所に掲載されています。
それを用いれば簡単に目的は達成できます。

276 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 11:48:56 ]
え、あれで通じないとは、どんだけ数学弱者なんだよ
俺は解かないけど。

277 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 11:53:03 ]
>>276
そこまで言ったら解いてやれよw



278 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 12:02:55 ]
>>277
どこがわかんないか質問してくれれば、その回答はするよ

279 名前:デフォルトの名無しさん [2007/11/27(火) 12:12:41 ]
要は難しすぎて僕らには解けません。僕らがわかるのは文字の出力だけです。参りました。

280 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 12:30:53 ]
>>272 には是非そのままの態度で自分の求める解答を引き出すテクニックを見せてもらいたい

281 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 12:35:37 ]
つまり>>269は、与えられたfxと範囲から10個の点をまず生成して、
その生成された点からラグランジュ補間を行うxの多項式の係数を求め、
元のfxと比較しろという問題なのか?

282 名前:デフォルトの名無しさん [2007/11/27(火) 12:37:24 ]
[授業単元]プログラミング
[問題文]
#include <stdio.h>
#include <math.h>
#define EPS 1e-7 /* 収束判定の許容誤差ε */
/* ★ 関数 f(x) とその導関数 df(x) を定義する*/
int main()
{
int n;
double x, y;
printf("n x f(x)\n");
printf("--- ---------- ----------\n");
n = 0;
x = /* ★ 初期値を設定 */
y = f(x);
printf("%3d %10.7f %10.7f\n", n, x, y);
while (/* ★ |f(x)|<ε となったとき終了 */) {
/* ★ 途中の計算結果も出力するように、適切な位置に printf 文を追加せよ */
n++;
x = /* ★ ニュートン・ラフソン法の漸化式 */
y = f(x);
}
return 0;
}
/* end of kadai_8_sample.c */
方程式 x^3 = 2 の解をニュートンラフソン法で求めよ。
収束判定は |x^3 - 2|<10^-7 とする。
初期値は各自で決める
[os] linux
[言語] c
[期限]本日14:00
宜しくお願いします

283 名前:デフォルトの名無しさん [2007/11/27(火) 12:44:23 ]
ごめん。俺が間違ってたわ。もういいわ

284 名前:デフォルトの名無しさん [2007/11/27(火) 12:52:30 ]
m < 30000 、n< 16 が与えられたとき、mがnで割り切れるか調べるプログラム
ただし、/や%や10回以上のループは使えない

285 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 12:54:59 ]
>>284
mの因数分解表をあらかじめ作っておいて判定する

286 名前:デフォルトの名無しさん [2007/11/27(火) 12:55:16 ]
訂正
m < 30000 、n< 16 が与えられたとき、mがnで割り切れるか調べるプログラム
ただし、/や%や16回以上のループは使えない

287 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 12:57:28 ]
別にループが使えないならループを展開しとけば良いだろ



288 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 12:59:47 ]
>>286
2 ・・・  一の位が2の倍数
3 ・・・  各位の数の和が3の倍数
4 ・・・  ・ 下二桁が4の倍数
 ・ 一の位を2で割った数を十の位に足した数が偶数
5 ・・・  一の位が5の倍数
6 ・・・  2かつ3の倍数
7 ・・・  3桁毎に交互に足したり引いたりしてできた数が7の倍数
8 ・・・  ・ 下3桁が8の倍数
 ・ 一の位を2で割り十の位に足して2で割った数を百の位に足した数が偶数
9 ・・・  各位の数の和が9の倍数
10 ・・・  一の位が0
11 ・・・  各位の数を交互に足したり引いたりしてできた数が11の倍数
12 ・・・  3かつ4の倍数
13 ・・・  7の倍数の判定と同じ
14 ・・・  2かつ7の倍数
15 ・・・  3かつ5の倍数
16 ・・・  下4桁を2で割った数が8の倍数(下4桁を4で割った数が4の倍数

ttp://www004.upp.so-net.ne.jp/s_honma/number/multiple.htm

289 名前:デフォルトの名無しさん [2007/11/27(火) 13:01:44 ]
>>288
各位って10進数ですよね どうやってその値をゲットするんですか

290 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:04:47 ]
>>289
Cの文字列で一文字ずつmを取得する

291 名前:デフォルトの名無しさん [2007/11/27(火) 13:07:32 ]
>>290
整数を文字列に変換する関数とかは使わないで下さい 

292 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:10:01 ]
>>291
は?後付してんじゃねえよ

293 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:12:38 ]
最初から誤解の余地が無い言い方で訊けってのは無茶だろ。
問題に対する疑問に答える過程で条件を追加するのは当然のことだと思うが。

294 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:13:23 ]
文字列で受け取って、「文字のまま」演算を行うようなプログラムを書けばいい。
たとえば、tasu('A', 'B')の戻り値が'C'になるとか、
kakeru('A', 'B')は'B'とか。

295 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:13:51 ]
テンプレに制限やら書く所まであるのに、完全に無視してそれか?
とっとと帰れ帰れ

296 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:16:36 ]
テンプレの利用は任意だ。
そもそも、答えたくないならお前が黙って帰れよ。

297 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:20:28 ]
だから、文字のまま判定を行うプログラムを書く。そうすれば10進数の演算と同じ。
例えば tasu(char a, char b) なら、

if ((a=='A' && a=='B') || (a=='B' && a=='A'))
  return 'C';

っていう式を延々と書けば、これは10進数の演算と全く同じになる。



298 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:21:20 ]
#include<stdio.h>

int mod(int m, int n)
{
int i, num[16]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};

if(m<0 || n<0) return -1;
for(i=16-1;i>=0;i--)
if(m>=num[i]*n)
m-=num[i]*n;

return m;
}

int main(void)
{
mod(20000, 15);

return 0;
}

299 名前:デフォルトの名無しさん [2007/11/27(火) 13:26:53 ]
>>298 サンクス






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<123KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef