C/C++の宿題片付けます 144代目
レス数が1000を超えています。これ以上書き込みはできません。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
【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++の宿題片付けます 143代目
http://hibari.2ch.net/test/read.cgi/tech/1289913298/
0002デフォルトの名無しさん
2010/12/04(土) 23:53:140003デフォルトの名無しさん
2010/12/05(日) 01:55:51[2] 問題文(含コード&リンク):問い1:1/(2×3)+2/(3×4)+…+10/(11×12)の答えをfor文を用いて答えよ
問い2:キーボードから入力された整数に対して「偶数なら2で割り、奇数なら3倍して1加える」
という作業を行いこれを結果が1になるまで繰り返すプログラムを作成し途中の変化の値を表示させよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: teraterm
[3.3] 言語: C
[4] 期限: [2010年12月9日00:00まで]
[5] その他の制限: 習ったのは選択処理と反復処理です
よろしくお願いします
0004デフォルトの名無しさん
2010/12/05(日) 02:07:16問い1
#include <stdio.h>
int main(void)
{
int i;
double ans = 0.0;
for(i = 1; i <= 10; i++) ans += (double)i / ((i + 1) * (i + 2));
printf("%f\n", ans);
return 0;
}
問い2
#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
while(n != 1) {
if(n % 2 == 0) n /= 2;
else n = n * 3 + 1;
printf("%d\n", n);
}
return 0;
}
0005デフォルトの名無しさん
2010/12/05(日) 02:23:09ありがとうございます
助かりました
0006デフォルトの名無しさん
2010/12/05(日) 03:12:53http://codepad.org/Em9MngvT
0007デフォルトの名無しさん
2010/12/05(日) 11:20:50int main() 笑
0008デフォルトの名無しさん
2010/12/05(日) 11:27:03どうせVC使ってC++モードでコンパイルしてるんだろ
0009デフォルトの名無しさん
2010/12/05(日) 11:27:45( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
0010デフォルトの名無しさん
2010/12/05(日) 11:57:460011デフォルトの名無しさん
2010/12/05(日) 14:26:54すまんが、何がおかしいんだ?
stdio.hをつかっていること?
それともmain()に引数がないこと?
コンパイラがCだったら引数がないとダメだよな。
私を釣ろうとしているだけですよ、多分。>>9 であげているけれども、あげる人間は一人しかいませんからねえ。
http://hibari.2ch.net/test/read.cgi/tech/1289715349/で猛者にぺしゃんこにされたので腹の虫がおさまらないのかな。
int main() が C89/C99 の両方で規格に適合している、と馬鹿のひとつ覚えよろしくISO/IEC 9899:1999 を引用して延々と主張してもいいのですが、さすがに飽きてしまいました。
0013デフォルトの名無しさん
2010/12/05(日) 15:16:43お前はしゃしゃり出てくるだけで釣ろうと思わなくても釣られているだけだろw
お前はint main(void)って書いているだろ。あと、標準スタイルって言葉をいい加減覚えろよ、ボケ爺。
0014デフォルトの名無しさん
2010/12/05(日) 15:19:37ISO、ANSI”準拠”の”標準スタイル”の話。
プログラムの開始をmain関数とし、実行時の引数があるかないかで
引数の部分の記述スタイルについてあくまでも”標準スタイル”としての記述あり。
引数が無い場合にvoidも書かないのは標準スタイルに非ず。
”独自の環境”であれば”それに限らず”。
0015デフォルトの名無しさん
2010/12/05(日) 15:21:40C++ではreturn int型;の省略も可。
CとC++の区別もつかない初心者がごちゃごちゃ意味不明な反論をしているから
墓穴を掘っているだけで、理解している人は理解している。
分からないなら口出しするなよ。恥を晒すだけだから。
自分はこういうスタイルにしているという個人的なスタイルを標準スタイルとして
語られても迷惑。この世はどこぞの無名で小さな個人を中心に動いてませんから。
0016デフォルトの名無しさん
2010/12/05(日) 16:02:04色々見たけどCだと引数なし()だと何でも引数にできる(...)と同じって事になるらしいね
礼儀正しいプログラマなら明示的に引数の無い(void)にするべきらしい
http://www.6809.net/tenk/html/cgokai/fncarg.htm
また間違ってたらできるだけわかりやすく教えてね
色々勉強になりますthx
0017デフォルトの名無しさん
2010/12/05(日) 16:28:22実は C99 では、func() と func(void) は条件つきで同じ意味です。
ISO/IEC 9899:1999 6.7.5.3-14
ただ、私もいろいろと指摘を受けたのですが、コンパイラの振る舞いも含めて等価、というわけではないようです。
実際に gcc で確かめてみても、func() と func(void) で扱いが異なります。
0019デフォルトの名無しさん
2010/12/05(日) 17:12:54嘘乙
0020デフォルトの名無しさん
2010/12/05(日) 17:26:08http://hibari.2ch.net/test/read.cgi/tech/1289913298/
前スレを消化したら?
0021デフォルトの名無しさん
2010/12/05(日) 18:22:20[2] 問題文
下記のルールの通りに暗号化されたメッセージを解読するプログラムを作成してください。
(条件)
暗号は一つの文字列として与え、その解読結果も一つの文字列として表す。
暗号化の対象となる文字列はNULL文字を含も25文字で、25文字に満たないメッセージ
についても最後尾より後ろは空白で埋める。
利用できる文字はASCII文字0x20〜0x7dまでとする。
(暗号化ルール)
縦横5×5のマス目からなる表の一列目の上から下に向かって、
文字列の一文字目から順に当てはめていく。
1番下までいったら、2列目、3列目、・・・に同様に文字を当てはめていく。
次に各マス目の文字をA->B、B->C、C->D、・・・のように、
ASCIIコード表に合わせて1文字づつずらす。
最後にこの表の1行目から5行目までの各行の文字列を取り出し連結する。
空白はすべて!になります。
二次元配列を用いて行うとのことです。
例:SBB/!Z!N!!PTP!!VBU!!NLP!!→RYOUMA SAKAMOTO.
[3] 環境
[3.1] windows7
[3.2]visual stdio2008
[3.3] c言語
[4] 2010/12/7
[5] ポインタ、構造体はまだ習っていません。
お願いいたします。
0022デフォルトの名無しさん
2010/12/05(日) 18:25:54#include <stdio.h>
int main()
とか、どこの田舎ッペだよw
0023デフォルトの名無しさん
2010/12/05(日) 18:51:28#include <stdio.h>
int main(void)
{
int i, j;
char str[25] = "SBB/!Z!N!!PTP!!VBU!!NLP!!", a[5][5];
for(i = 0; i < 25; i++) a[i / 5][i % 5] = str[i];
for(i = 0; i < 25; i++) printf("%c", a[i % 5][i / 5] - 1);
return 0;
}
0024デフォルトの名無しさん
2010/12/05(日) 19:29:04#include <stdio.h>
int main(void) {
int i;
char str[25] = "SBB/!Z!N!!PTP!!VBU!!NLP!!";
char (*a)[5] = (void*)str;
for(i=0; i<25; i++) printf("%c", a[i%5][i/5] - 1);
return 0;
}
>>22
その話題は、こちらに引っ越したようですよ。
http://hibari.2ch.net/test/read.cgi/tech/1289913298/
0025デフォルトの名無しさん
2010/12/05(日) 19:38:180026デフォルトの名無しさん
2010/12/05(日) 19:42:43ごめんなさい。見逃してました。
0027デフォルトの名無しさん
2010/12/05(日) 20:00:16[2] 課題
C/C++言語を思いの丈語れ
[3] 環境 C/C++言語
[3.1] このスレ
[3.2] 脳内
[3.3] 文章
[4] 無期限
0028デフォルトの名無しさん
2010/12/05(日) 21:13:46ISO/IEC 9899:1999 6.7.5.3-14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters. The empty list in a function declarator that is not part of a
definition of that function specifies that no information about the number or types of the
parameters is supplied.124
関数定義の一部である関数宣言の引数リストが空リストの場合、それは引数(パラメータ)がないことを示す。
関数定義の一部でない観戦宣言の引数リストが空リストの場合、それは引数の型や数についての情報がないことを示唆する。
0030デフォルトの名無しさん
2010/12/05(日) 21:42:59それは知ってるけどさ、C99に完全準拠しているコンパイラってIntel C++以外に
何があるの?
gccは部分準拠だから話にならないし
0031デフォルトの名無しさん
2010/12/05(日) 21:51:22俺が言うのもあれだが
お前はいつもそういうの持ち出すが大抵検討違い
格好つけたいのか?
func() と func(void) が条件付で同等であることが規定されているのはこの部分なんですが、どこが「見当」違いなのでしょうか。
0033デフォルトの名無しさん
2010/12/05(日) 22:00:27だから今C99の話をして何になるの?って聞いてるんですけど無視ですか?
それはそうですね。失礼いたしました。
0035デフォルトの名無しさん
2010/12/05(日) 22:14:33確かにプログラムはちょこっとは書けるようだけど、思考が論理的じゃないんだから
相当無理をしていると思うぞ
お前の書いている文章を読んでいてそう思うもん
0036デフォルトの名無しさん
2010/12/05(日) 22:17:32気持ちが悪い
周りに迷惑だからこっち来ないで
ねぇ
ご指摘ありがとうございます。無理しているつもりはないですが、論理的でないといわれると自身でお思い当たるところもありますね。
また、なにかお気づきの点がありましたら教えてください。
0038デフォルトの名無しさん
2010/12/05(日) 22:19:55自分で論理的じゃないって分かってないならこりゃ絶望的だな
自覚がないというのは最悪の事だ
0039デフォルトの名無しさん
2010/12/05(日) 22:23:04「なにかお気づきの点がありましたら教えてください」じゃねぇよ
そんなんでよく金取ろうとしたな
周りが楽しくお前のためにお前の間違え指摘してんじゃねぇんだぞ
何?お前みんなが自分のこと考えてくれてると思ってんの
気持ちわりぃな
0040デフォルトの名無しさん
2010/12/05(日) 22:25:07おめえよう、宿題答える時はちゃんとここで答えろ
自分のスレに答えのリンク貼ってんじゃねーぞコラ
単なる社交辞令に噛み付かれても。
0042デフォルトの名無しさん
2010/12/05(日) 22:27:03誘導乙w
ここに宣伝貼るな
自分が建てたスレ恥ずかしくなって埋めたいのかもw
0043デフォルトの名無しさん
2010/12/05(日) 22:28:34だってよ
ついに尻尾出しやがった
わかってたがやっぱり自分は悪くないと思ってんだなw
重傷だ...
0044デフォルトの名無しさん
2010/12/05(日) 22:29:11だったら金とんなカス
あんな糞みたいな答えを書かれて金を取るというのはもはや詐欺だ
0045デフォルトの名無しさん
2010/12/05(日) 22:30:58それもかなり強烈
こいつは社会に出る事は出来ず家に引き籠もってプログラムでも書いてるしかないんだな
反省の意が全くない奴は社会は必要としない
0046デフォルトの名無しさん
2010/12/05(日) 22:33:010047デフォルトの名無しさん
2010/12/05(日) 22:40:39別に良いじゃん。どうでも。
比較的まともに宿題に答えてる部類だし、
モリタポ稼げてるとも思えんし。
0048デフォルトの名無しさん
2010/12/05(日) 22:42:56難しすぎない奴1個頼む。
0049デフォルトの名無しさん
2010/12/05(日) 22:55:04こいつ社会を舐めすぎ
娑婆はそんな甘いもんじゃおまへんで
0050デフォルトの名無しさん
2010/12/05(日) 23:34:43[2] 問題文:
下記ソースに示される、上下左右につながる'#'の島の数を数える関数Funcを実装せよ。
http://codepad.org/UFLHo5LH
尚、gDtの内容は破壊してかまわないものとする。
例1) 次の場合島の数は3
...##
..#.. <--- 上下左右につながっていないので1つと数える
.....
..###
....#
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: MinGW , VC++
[3.3] 言語: C
[4] 期限: [2010年12月7日まで]
[5] その他の制限: 無し
0051デフォルトの名無しさん
2010/12/06(月) 00:02:430053デフォルトの名無しさん
2010/12/06(月) 00:25:04答えがおかしくないか?
0054デフォルトの名無しさん
2010/12/06(月) 00:30:52いや、合ってるよ。
しかしあくまで抵抗するな /* >>3 */。
現在のrand()では不要ということかw
再帰使うともっとスッキリ書けるぞ。
0056デフォルトの名無しさん
2010/12/06(月) 00:42:12日本語おかしかったな。"再起使ったんなら"って感じか。
スッキリつーのも俺にとってスッキリだけど。
http://codepad.org/alEtSwm0
0058デフォルトの名無しさん
2010/12/06(月) 02:27:300059デフォルトの名無しさん
2010/12/06(月) 06:58:52◆QZaw55cn4cがいなけりゃ良スレ
0060デフォルトの名無しさん
2010/12/06(月) 07:58:37int y, x, cnt = 0;
for(y = 0; y < N; y++) for(x = 0; x < N ; x++) cnt += f(y, x);
return cnt;
}
int f(int y, int x) {
if(gDt[y][x] != '#' || y < 0 || x < 0 || y == N || x == N) return 0;
gDt[y][x] = 0;
f(y, x + 1);
f(y, x - 1);
f(y + 1, x);
f(y - 1, x);
return 1;
}
0061デフォルトの名無しさん
2010/12/06(月) 09:04:271.座標x,yで位置を指定されるイメージの2次元配列は、
gDt[y][x]とyのほうを先に書くのが一般的でしょうか?
理由も教えて頂けると幸いです。
2.条件文のショートサーキットは全ての環境で行われる保証があるのでしょうか?
if (x>0 && gDt[y ][x-1]=='#') Replace(x-1, y );
0062デフォルトの名無しさん
2010/12/06(月) 09:15:251.
一般的かどうかは知らない
しかしながら、僕は画像(pixmapとか)を想定していたからわりと普通に思えた
2.
ノー、全てという保証はない、例えば、俺様環境とか
しかしながら、規格では短絡になることが決められている
ISO/IEC 9899:1999 (E)
6.5.13 Logical AND operator
4 Unlike the bitwise binary & operator, the && operator guarantees left-to-right evaluation;
there is a sequence point after the evaluation of the first operand. If the first operand
compares equal to 0, the second operand is not evaluated.
0063デフォルトの名無しさん
2010/12/06(月) 09:28:26キモイからトリップ付けろよ。お前は根拠と示したことが
主観による解釈だから間違いだらけなんだよ。
0064デフォルトの名無しさん
2010/12/06(月) 09:55:17「全ての環境」と言うのは「規格を満たす」が暗黙の前提だ。
0065デフォルトの名無しさん
2010/12/06(月) 10:30:44書いてみたけど、例題みたいな変換結果は得られないよ
例題の変換結果を得るには A->B ではなく B->A にすれば良いみたい
#include <stdio.h>
int main( void )
{
char* in = "SBB/!Z!N!!PTP!!VBU!!NLP!!";
char tmp[5][6] = {0x00};
int i, j;
for( i = 0; i < 5; i++ ) {
for( j = 0; j < 5; j++ ) {
if( *in ) {
tmp[j][i] = (*in) - 1;
*in++;
}
else {
tmp[j][i] = ' ' - 1;
}
}
}
for( i = 0; i < 5; i++ )
printf( "%s", tmp[i] );
printf( "\n" );
return 0;
}
0066デフォルトの名無しさん
2010/12/06(月) 11:46:27[2] 問題文:
C++で例えば座標と燃料変数を持つCarクラスをなんらかのボタンを押したときなどに動的に生成したいのですが
どの様なプロセスで実装すればいいんでしょうか?
また生成したそれら全てを燃料がある限り動かしたいのですがメソッドでそろぞれ動かすためにはどうすればいいでしょうか?
[3] 環境
[3.1] OS:Win
[3.2] コンパイラ名とバージョン:Visual Studio 2005
[3.3] 言語: C++
[4] 期限:なし
[5] その他の制限: C++独学始め
初めて質問でまだ勝手がわかりませんが、どうかよろしくお願いします。
0067デフォルトの名無しさん
2010/12/06(月) 12:46:09前スレ650-651
http://hibari.2ch.net/test/read.cgi/tech/1289913298/650
http://codepad.org/hTWnVRm3
0068デフォルトの名無しさん
2010/12/06(月) 13:02:36[2] 問題文:次のようにファイルを使うために関数fopenでファイルを開く文を書きなさい。尚、すべてテキストモードとする。
(1)ファイルsinki.txtを新しく作成して書き込む。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: MinGW , VC++
[3.3] 言語: C
[4] 期限: [2010年12月6日まで]
[5] その他の制限: 無し
0069デフォルトの名無しさん
2010/12/06(月) 15:18:150070デフォルトの名無しさん
2010/12/06(月) 15:18:530071デフォルトの名無しさん
2010/12/06(月) 16:48:03>>23 >>24 >>65
御回答ありがとうございます。
助かりました。ありがとうございます。
0072デフォルトの名無しさん
2010/12/06(月) 18:10:40[2] 問題文(含コード&リンク):次のように、10から0までカウントダウンして、0になったら!!!と表示
して終わるCプログラムを作って実行しなさい。
10
9
8
(中略)
1
0
!!!
[3] 環境
[3.1] OS:mac OS X
[3.2] コンパイラ名とバージョン:ターミナル
[3.3] 言語: C
[4] 期限: 2010/12/8
[5] その他の制限: for文を習った時に出された課題です。
お願いいたします。
0073デフォルトの名無しさん
2010/12/06(月) 18:22:47http://codepad.org/KGUlkZP4
0074デフォルトの名無しさん
2010/12/06(月) 18:23:02>>72
とりあえず2パターン。
int i;
for(i=0;i<=10;i++)printf("%d\n",10-i);
printf("!!!");
int i;
for(i=10;i>=0;i--){
printf("%d\n",i);
if(i==0)printf("!!!\n");
}
0075デフォルトの名無しさん
2010/12/06(月) 18:54:41いざプログラムを組む時になると、どれをどういう風に使ったらよいか全然分からなくなってしまって…
多分一行一行の理解が出来て無いんだと思います
>>72>>74
どうもありがとうございました、大変助かりました
0076デフォルトの名無しさん
2010/12/06(月) 20:15:18タイマーを実装しろって問題じゃないんだよね
0077デフォルトの名無しさん
2010/12/06(月) 20:39:47#include <stdio.h>
#include <time.h>
int main(void) {
clock_t n,i,cnt=10;
for(i=0; i<=cnt; ) {
n=clock()/CLOCKS_PER_SEC;
if(n>=i) {
printf("%d ",cnt-i); i++;
}
}
printf("アッー!!!\n");
return 0;
}
0078デフォルトの名無しさん
2010/12/06(月) 21:00:48#include <conio.h>
int main(void) {
while( !kbhit() ){ putchar('A'); } return 0;
}
0079デフォルトの名無しさん
2010/12/06(月) 21:09:310080デフォルトの名無しさん
2010/12/06(月) 21:18:59取りあえずホイ。
http://mailsrv.nara-edu.ac.jp/~asait/visual_cpp/intro_cpp.htm
いまどきMFCなど薦めるなといわれそうだが・・・・
C++だとMFCが一番情報多いんじゃないかな。
後は頑張れ。
0081デフォルトの名無しさん
2010/12/06(月) 21:20:13[2] 問題文
メンバとしてchar型変数chとint型変数i,double型変数dを持つ
共用体を用意する。iに16進数を代入した後ch,i,dそれぞれを
表示するプログラムを作成せよ。なお、表示する際に、全ての変数を%xで
表示すること。
[3] 環境
[3.1] windowsXP
[3.2]visual stdio2005
[3.3] c++
[4] 2010/12/7
[5] 無し
よろしくお願いします
0082デフォルトの名無しさん
2010/12/06(月) 21:24:220083デフォルトの名無しさん
2010/12/06(月) 21:40:58こうなってくるとCOBOLだな。
0084デフォルトの名無しさん
2010/12/06(月) 21:41:47[2] 問題文
構造体を引数と戻り値とする関数を作成せよ。なお、作成する関数は
引数を四則演算して戻すものとする。
[3] 環境
[3.1] windowsXP
[3.2]visual stdio2005
[3.3] c++
[4] 2010/12/7
[5] 無し
こちらもお願いします。
>>82
問題文には、このように書かれてました。
0085デフォルトの名無しさん
2010/12/06(月) 21:50:26深く考えず、問題の内容どおりのソースを書いた。
#include <stdio.h>
union UA {
char ch;
int i;
double d;
};
int main() {
union UA A;
A.i = 0x12345678;
printf("ch : %x\n",A.ch);
printf("i : %x\n",A.i);
printf("d : %x\n",A.d);
return 0;
}
0086デフォルトの名無しさん
2010/12/06(月) 21:53:560087デフォルトの名無しさん
2010/12/06(月) 21:58:34「おじいさんは芝刈りに」 と 「明日晴れるかな」という文章ぐらいつながらん。
0088デフォルトの名無しさん
2010/12/06(月) 22:03:06明日の大事な試合のために、おじいさんはスタジアム(ゴルフ場かも)の整備しているとみた
0089デフォルトの名無しさん
2010/12/06(月) 22:03:48おじいさんは芝刈りに行くけど明日晴れるかな
ツナガタ!!
0090デフォルトの名無しさん
2010/12/06(月) 22:12:55分かります
おじいさんは性格のいい働き者で自分仕事だけじゃなく孫の大切な大会のことも心配してるんですね
0091デフォルトの名無しさん
2010/12/06(月) 22:22:03問い2の処理はfor文を用いよと言われてしまいました
厚かましいようですがお願いしたく思います
0092デフォルトの名無しさん
2010/12/06(月) 22:22:36そうです
おじいさんは孫のためならバリカンでも芝刈りをします
0093デフォルトの名無しさん
2010/12/06(月) 23:19:31なるべく簡単に
#include <stdio.h>
int main()
{
int num;
scanf("%d",&num);
for (; num >1;) {
printf("%d ",num);
if (!(num % 2)){
num /= 2;
}else{
num *= 3; num++;
}
}
printf("%d\n",num);
return 0;
}
0094デフォルトの名無しさん
2010/12/06(月) 23:24:33[2] 問題文(含コード&リンク):
wireshark/tcpdumpで収集したファイルを読み込み、"SYNフラグのみ"が送られてくるパケットの平均の時間間隔(単位:秒)を"すべての送信元アドレスと送信先アドレスごと(1対1の関係で)"に求める。
最終的に求める平均時間間隔は、小数点第6位までとする。もし送信先に1度しかSYNを送られないアドレスがある場合は、その時間間隔を-1とする。
これをcsv形式で出力するプログラムを書いてください。
例えば、送信元が133.165.2.250で、66.42.132.222宛てに3回SYNを飛ばしたとする。
その時刻(タイムスタンプ)がそれぞれ"312.1s,313.3s,314.8s"だとすると、その時間間隔は1.1s(=313.3-312.1)と1.5s(=314.8-313.3)になり、平均は1.3s {=(1.1+1.5)/2 }になる。
また、送信元が133.165.2.250で、34.141.144.255宛てに1回しかSYNが飛ばなかったような場合は、そのアドレスに対しての時間間隔の平均値は-1になる。
この動作を繰り返します。
出力例
srcip dstip ave_timesub
133.165.2.250 66.42.132.22 1.3
133.165.2.250 34.141.144.255 -1
133.165.2.250 10.31.1.11 1.45
133.165.2.185 66.42.132.222 0.74
・・・
・・・
[3] 環境
[3.1] OS: (Windows/Linux/等々)Linux CentOS 5
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:どちらでも可
[4] 期限: 12月13日
[5] その他の制限: なし
どうぞよろしくお願いします。
0095デフォルトの名無しさん
2010/12/06(月) 23:25:49ありがとうございます
0096デフォルトの名無しさん
2010/12/06(月) 23:26:04題意がわからんな
while を使うべきところを for にする事で何を学ばせたいのか
0097デフォルトの名無しさん
2010/12/06(月) 23:35:42回答者はwiresharkだかEtherealのファイル形式を調べることから初めにゃならんのか?
0098デフォルトの名無しさん
2010/12/07(火) 00:09:52だな、なんか業務の臭いがする
せめて tcpdump だかの出力サンプルくらいは提示しないと回答は得られないと思うよ
0099デフォルトの名無しさん
2010/12/07(火) 00:20:19セントくん5なのにずいぶん古いバージョンのcc使っているんだな
こういうのは、perlやpythonでやったほうがいいと思うけど
がんばれ、未来のNWE
とりあえず、SYNとタイムスタンプの位置とがわかった
13日までか、ちょっとがんばってみる
いや、やっぱやめよう
0100デフォルトの名無しさん
2010/12/07(火) 00:21:59> 奇数なら3倍して1加える ・・・・ これを結果が1になるまで繰り返す
これは問題あってる?
0101デフォルトの名無しさん
2010/12/07(火) 00:38:51あってるはずだと思います
0102デフォルトの名無しさん
2010/12/07(火) 00:45:19そうか。じゃ >>93 をコンパイル実行した後、 3 を指定し、
停まるまで何時間かかったか後で教えてくれ。
0103デフォルトの名無しさん
2010/12/07(火) 00:50:21このような2分木を作成したのですが、
1,3のところを+
2,4のところを×にして、
計算式にしたいのですが、どのように変形すればいいですか?
やはり後順走査になりますか?
このソースをもとによろしくお願いします。
0104デフォルトの名無しさん
2010/12/07(火) 00:52:29>>93では
3
10
5
16
8
4
2
1
というようにはならないということですか?
0105デフォルトの名無しさん
2010/12/07(火) 00:58:21いや、俺が計算間違えたみたいだ。
もう一度よく考えてみるわ。これ必ず収束するのかなぁ・・・
ちなみに問題どおりのソースは for (; num!=1;) { だぞ。
0106デフォルトの名無しさん
2010/12/07(火) 00:58:400107デフォルトの名無しさん
2010/12/07(火) 01:01:46補足ありがとうございます
0108デフォルトの名無しさん
2010/12/07(火) 01:12:190109デフォルトの名無しさん
2010/12/07(火) 01:15:06GoodJob!!
0110デフォルトの名無しさん
2010/12/07(火) 02:25:501431655765 4294967296 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216 8388608 4194304 2097152 1048576 524288 262144 131072 65536 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
0111デフォルトの名無しさん
2010/12/07(火) 02:46:41[2] 問題文
・正の値をキーボードから入力。-の値の場合停止。
・入力された値をヒープ配列(入力された値の並びをヒープに)に格納。配列の大きさはランダムにしておく。
そして降順に並びかえて画面に出力
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010/12/7 23:59分までにお願いします
時間あまりなくてすいません・・・ 本当に急いでます・・/
0112デフォルトの名無しさん
2010/12/07(火) 02:53:16{
int i,j;
if(++n>=MAXSIZE)stop("Overflow");
else
{
heap[n]=x;
i=n; j=i/2;
while(j>0&&x>heap[j]){
heap[i]=heap[j]; i=j; j=i/2;
}
heap[i]=x;
}
}
がヒープへのデータの格納のアルゴリズムらしいのですがこれを参考に製作しろと言われました。
ここにおけるnはデータの個数、xは入れたい値、iとjは子と親の関係を表してます。
お願いします
0113デフォルトの名無しさん
2010/12/07(火) 05:14:12降順ではなくヒープ配列に入っている順です
[72,35,47,18,29,32,13,5,9]等
0114デフォルトの名無しさん
2010/12/07(火) 06:52:57> 配列の大きさはランダムにしておく
if(++n>=MAXSIZE)stop("Overflow"); はて?
0115デフォルトの名無しさん
2010/12/07(火) 06:58:080116デフォルトの名無しさん
2010/12/07(火) 07:02:27MAXSIZEって名前のグローバル変数なんだろ
0117デフォルトの名無しさん
2010/12/07(火) 07:02:29すいません!
そこの部分は与えられた題には関係ないですね・・・
MAXSIZEは定義されてないです。
とりあえず「正の値を入力してください」と何度も表示し-の値を与えられた場合
配列への値の格納を終了といった感じですので
ヒープ配列のサイズはランダムです。
わかりにくくてすいません・・・
0118デフォルトの名無しさん
2010/12/07(火) 10:50:43http://codepad.org/fbIGEN8w
0119デフォルトの名無しさん
2010/12/07(火) 14:57:59ありがとうございます!
贅沢言って申し訳ないのですが これの簡素版って不可能なんですかね?
出来るだけライブラリ関数を使わなかったりとか…
すみません…
あまり凝ったのだと 僕の実力と合わない故…
0120デフォルトの名無しさん
2010/12/07(火) 15:34:25>>118はソート他を実装してくれてるじゃん
ライブラリ関数のqsortは使ってない
後は動的配列だが、こんなもん自分で実装する方が実力と合ってないと思う
ライブラリ関数で出来る事はそれを使った方がいい
0121デフォルトの名無しさん
2010/12/07(火) 15:34:44[2] 問題文(含コード&リンク):整数i, j,実数x,y それぞれに任意の値を入力し、
i+j, i-j, およびx+y,x/yを計算し、その結果を出力するプログラムを作成せよ
入力にはscanf関数、出力にはprintf関数を用いること
出力結果は
i+j=計算結果の数字
i-j=計算結果の数字
x*y=計算結果の数字
x/y=計算結果の数字
[3] 環境
[3.1] Windows_xp
[3.2] コンパイラ名とバージョン: ?
[3.3] 言語:C99
[4] 期限: 明日の12時
[5] その他の制限: TeraPaDでコマンドプロンプトに実行
お願いします
0122デフォルトの名無しさん
2010/12/07(火) 15:36:54このレベルだとC99でいいってのも怪しいな
0123デフォルトの名無しさん
2010/12/07(火) 15:38:560124デフォルトの名無しさん
2010/12/07(火) 15:39:430125デフォルトの名無しさん
2010/12/07(火) 15:40:160126デフォルトの名無しさん
2010/12/07(火) 15:40:560127デフォルトの名無しさん
2010/12/07(火) 15:41:03C99対応の教科書使っています
0128デフォルトの名無しさん
2010/12/07(火) 15:43:19顔洗って出直して来い
0129デフォルトの名無しさん
2010/12/07(火) 15:44:41こいつ知ったか無知wwww
0130デフォルトの名無しさん
2010/12/07(火) 15:46:14このソースに於いて static void は意味ないよ。というか、何の意図があって?と
逆に意味を成さない行為に疑問をもたれるよ。
0131デフォルトの名無しさん
2010/12/07(火) 15:46:35>>118 int mainのとこはvoid mainなんですかね?あとstatic voidとはどういった処理なんですかね?記憶になくて… 薄識ですいません…
0132デフォルトの名無しさん
2010/12/07(火) 15:49:08static void だっておー(バンバン)
ぎゃははははははははははは!!!wwwwww
0133デフォルトの名無しさん
2010/12/07(火) 15:49:220134デフォルトの名無しさん
2010/12/07(火) 15:52:470135デフォルトの名無しさん
2010/12/07(火) 16:04:02void staticを使わないでも出来るということですかね? なにぶん見たことない処理ですので…
0136デフォルトの名無しさん
2010/12/07(火) 16:05:43かまって欲しいだけなんだからスルーしろ
0137まさるさん
2010/12/07(火) 17:27:52[2] 問題文(含コード&リンク):
c言語の問題について
10桁以上ある2進数をユーザに入力させ,
それを4桁ずつ区切って(16進数で)表示するプログラムを作成せよ
実行例です。
H:\> prog0904 000111101001001
0001 = 1
1110 = e
1001 = 9
001 = 1
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:わかりません
[3.3] 言語:C++
[4] 期限: ([2010年12月7日18:00まで] )
[5] その他の制限:TeraPaDでコマンドプロンプトに実行
0138デフォルトの名無しさん
2010/12/07(火) 18:21:110139デフォルトの名無しさん
2010/12/07(火) 18:32:07static void wwwwwww
voidを使う場所、それで良いんか?
0140デフォルトの名無しさん
2010/12/07(火) 18:47:50int main()はなんの問題があるの?
なんの問題もありません。
ISO/IEC 9899:1999 6.7.5.3-14
ISO/IEC 9899:1999 5.1.2.2.1-1
0142デフォルトの名無しさん
2010/12/07(火) 18:56:02お前は黙ってろ
知らない方へ
こいつの隔離スレをご覧ください
0143デフォルトの名無しさん
2010/12/07(火) 18:57:58特に問題ないけど
0144デフォルトの名無しさん
2010/12/07(火) 18:59:12#include <iostream>
int main(int argc, char **argv) {
int i, n = 0;
if(argc < 2) return 0;
for(i = 0; argv[1][i]; ++i) {
n = n * 2 + argv[1][i] - '0';
std::cout << argv[1][i];
if(i % 4 == 3) {
std::cout << " = " << std::hex << n << std::endl;
n = 0;
}}
}
0145144
2010/12/07(火) 19:02:47最後の処理忘れた
#include <iostream>
int main(int argc, char **argv) {
int i, n = 0;
if(argc < 2) return 0;
for(i = 0; argv[1][i]; ++i) {
n = n * 2 + argv[1][i] - '0';
std::cout << argv[1][i];
if(i % 4 == 3) {
std::cout << " = " << std::hex << n << std::endl;
n = 0;
}}
if(i % 4 != 3) std::cout << " = " << std::hex << n << std::endl;
}
0146デフォルトの名無しさん
2010/12/07(火) 19:13:23http://codepad.org/uDzibJYZ
0147デフォルトの名無しさん
2010/12/07(火) 19:15:140148デフォルトの名無しさん
2010/12/07(火) 19:17:43質問者がどっちか分かってないんだからしょうがないだろ
0149デフォルトの名無しさん
2010/12/07(火) 19:18:18最後の3桁の時に答えが表示されないぞ
0150デフォルトの名無しさん
2010/12/07(火) 19:20:19って書いてあるんだからCなんじゃないの?
言語:C++の信用度は限りなく低い
0151デフォルトの名無しさん
2010/12/07(火) 19:21:57if(i%4) だった
ループのインクリメント忘れてた
0152デフォルトの名無しさん
2010/12/07(火) 19:39:23[2] 問題文(含コード&リンク)
問題1 2つの整数値を読み込んで、その差の絶対値の数だけ「ツイテル」を表示する「ツイテルプログラ ム」を作成しなさい。
num1:18
num2:3
ツイテル ツイテル ツイテル ツイテル ツイテル
ツイテル ツイテル ツイテル ツイテル ツイテル
ツイテル ツイテル ツイテル ツイテル ツイテル
問題2 2重ループの構文を用いて、次の実行結果に示すように数値でピラミッドを表示するプログラムを作成しなさい。
段数を入力して下さい8
1
22
333
4444
55555
666666
7777777
88888888
問題3 2重ループの構文を用いて、次の実行結果に示すようにn行×m列の長方形を表示するプログラム
を作成しなさい。
高さ(n)を入力して下さい:5
幅(m)を入力して下さい:10
**********
* *
* *
* *
**********
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:12月8日
よろしくお願いします。
0153デフォルトの名無しさん
2010/12/07(火) 19:56:17>>118はおそらくヒープ間違い
単元が「アルゴリズム」で,>>112の「子と親の関係」という記述もあることだから
おそらく配列を使ったヒープ構造を指しているのじゃなかろうか
0154デフォルトの名無しさん
2010/12/07(火) 20:16:52http://codepad.org/ufiOZlpC
http://codepad.org/ptpmKt45
http://codepad.org/JWQb7pse
0155デフォルトの名無しさん
2010/12/07(火) 20:57:050157デフォルトの名無しさん
2010/12/07(火) 22:28:28もし説明しろと言われると詰まるので・・・
0158デフォルトの名無しさん
2010/12/07(火) 22:34:02staticだけ消してもうその事は忘れろ
一つのプログラムが一つのファイルで構成されている場合は、関数の宣言の前につける static は省略してもかまいません。
static void func() なら void func() だけでOK。
0160デフォルトの名無しさん
2010/12/07(火) 22:38:01気球(バルーン)を作って欲しかったのに
出来上がったものは紙風船(バルーン)だった
0161デフォルトの名無しさん
2010/12/07(火) 22:42:48static void は検索すれば何なのか分かるが、少なくともそのコードでは
特に意味のある、必要不可欠な部分ではないことは確か。
0162デフォルトの名無しさん
2010/12/07(火) 22:43:45船(シップ)を作って欲しかったのに湿布(シップ)が出来たと
0163デフォルトの名無しさん
2010/12/07(火) 22:51:40>>118さんも補足してくれた皆さんも本当にありがとうございます・・・!
0164デフォルトの名無しさん
2010/12/07(火) 23:11:4836:21: warning: multi-character character constant
In function ‘main’
36: 警告: 暗黙の定数変換でオーバーフローしました
となり
実行結果は表示されるのですが値の前になぜか\がついてしまいます
すいません・・・
このコンパイル結果はエラーではないのですかね?
0165デフォルトの名無しさん
2010/12/07(火) 23:26:56[2] 問題文(含コード&リンク):
次の手品を完成させるための、7組の数字郡を表示するプログラムを作りなさい。
(1)手品師は1~99 の数字の書かれた7枚のカードを用意し、客に渡す。
(2)客は1〜99の中の任意の数字を1つ思い浮かべ、
7枚のカードの中からその数字が入っているものを全て選び手品師に渡す。
(3)手品師は渡されたカードを見て、客の思い浮かべた数字を瞬時に言い当てる。
タネ
(4)手品師は渡されたカードの最初の数字の合計を暗算する。
その合計値が客の思い浮かべた数字となる。
問題
7枚のカードに書くべき数字をカードごとに表示するプログラムを作成しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: MinGW
[3.3] 言語: C言語
[4] 期限: 2010年12月8日23時59分
[5] その他の制限: 制限無し
手元の環境では問題なくコンパイルできます。
なんかまちがったところを消したりしてませんか?
0168デフォルトの名無しさん
2010/12/07(火) 23:58:35\のとこは解決できました。
一応実行は出来るのですが
警告文は無視していいのですかね?
一応気になったもので・・・
0169デフォルトの名無しさん
2010/12/07(火) 23:58:55> (2)客は1〜99の中の任意の数字を1つ思い浮かべ、
> 7枚のカードの中からその数字が入っているものを全て選び手品師に渡す。
これってどういう意味?
例えば 17 を思い浮かべたとすると 1 もしくは 7 の数字が入ったカードって意味?
0170デフォルトの名無しさん
2010/12/08(水) 00:12:40これって答えの一つになる?ならない?
10 26 38 46 58 70 90
0171デフォルトの名無しさん
2010/12/08(水) 00:14:07#include <stdio.h>
int main(void) {
int i, j;
double x, y;
printf("整数1つ目を入力してください:");
scanf("%d", &i);
printf("整数2つ目を入力してください:");
scanf("%d", &j);
printf("実数1つ目を入力してください:");
scanf("%lf", &x);
printf("実数2つ目を入力してください:");
scanf("%lf", &y);
printf("%d + %d = %d\n", i, j, i + j);
printf("%d - %d = %d\n", i, j, i - j);
printf("%f * %f = %f\n", x, y, x * y);
printf("%f / %f = %f\n", x, y, x / y);
return 0;
}
0172デフォルトの名無しさん
2010/12/08(水) 00:14:34>>166
0174165
2010/12/08(水) 00:21:13う〜ん。どうでしょう。165が問題文の全てです。
問題に隙があればイヤミ臭くコメントにでも書きます。
>>170
◆QZaw55cn4c さんの >>166 の回答を見る限り、
17を思い浮かべた時に1と7は含まれず、そのものズバリの17だけのようです。
>>170
どうでしょう。よく分かりません。
色々、確認してみてるのですが ◆QZaw55cn4c さんの >>166 は正しそうですね。
どういうことなのかしら?
>>173
たとえば客が 29 を想像し、
card 1, 3, 4, 5 を手品師に渡す。
card 1, 3, 4, 5 の先頭の数字は、1, 4, 8, 16
手品師は 1+4+8+16=29 と暗算する。
0177176 ◆QZaw55cn4c
2010/12/08(水) 00:29:310178デフォルトの名無しさん
2010/12/08(水) 00:43:182010年12月8日23時59分でいいのでタネあかしを一つよろしく。
それまで俺なりに考えます。
注)モリタポは持ってません。
モリタポか‥‥‥。ネタのつもりでネタに徹したのですが、思わぬ反響がありますねえ。
それはともかく、
card1 二進数で 2^0 の位が 1 であるような数全部
card2 二進数で 2^1 の位が 1 であるような数全部
card3 二進数で 2^2 の位が 1 であるような数全部
客が card1 card3 を手渡してきたとき、それは暗に「私の思い浮かべている数は二進数で 2^0 の位が1、2^2 の位が1、あとは 0」といっているようなものです。
0180デフォルトの名無しさん
2010/12/08(水) 00:53:22#include <stdio.h>
int main(void)
{
int i, j;
for(i=0;i<7;i++)
{
printf("Card %d :", i+1);
for(j=1;j<=99;j++)
{
if(j&(1<<i)) printf(" %d", j);
}
printf("\n");
}
return 0;
}
0181デフォルトの名無しさん
2010/12/08(水) 00:54:130182デフォルトの名無しさん
2010/12/08(水) 00:55:460183デフォルトの名無しさん
2010/12/08(水) 00:58:38[2] 問題文(含コード&リンク): http://ywata-lab.yz.yamagata-u.ac.jp/PDF/pro2-12-8.pdf
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 制限なし
よろしくお願いします。
0184165
2010/12/08(水) 00:58:43解ければ、なかなかいい問題じゃんと思えてきた。
0185デフォルトの名無しさん
2010/12/08(水) 00:59:32あるよ
1 2 4 8 16 32 36
1 2 4 8 16 32 37
1 2 4 8 16 32 38
1 2 4 8 16 32 39
1 2 4 8 16 32 40
1 2 4 8 16 32 41
みたいにね
0186176 ◆QZaw55cn4c
2010/12/08(水) 01:06:59http://codepad.org/ZqF8YjUR
0187デフォルトの名無しさん
2010/12/08(水) 01:21:020188デフォルトの名無しさん
2010/12/08(水) 01:41:11#include<stdio.h>
int main(void)
{
int kind[]={50, 25, 12, 6, 3, 2, 1};
int i, j, k, rest;
for(i=0;i<7;i++)
{
printf("Card %d :", i+1);
for(j=1;j<=99;j++)
{
rest=j;
for(k=0;k<i;k++)
{
if(rest>=kind[k]) rest-=kind[k];
}
if(rest>=kind[i]) printf(" %2d", j);
}
printf("\n");
}
return 0;
}
0189デフォルトの名無しさん
2010/12/08(水) 02:50:170190デフォルトの名無しさん
2010/12/08(水) 04:25:14再帰使ったらダメなの?
http://codepad.org/zsO8UpZy
0191118
2010/12/08(水) 08:56:59staticは「どうせ、このファイルでしか使わないし」と思ってつけました。
0192デフォルトの名無しさん
2010/12/08(水) 09:16:100193デフォルトの名無しさん
2010/12/08(水) 09:38:43必要性のないことをしたから笑われたんだろ。知ってて笑われていることに気づかないお前が素人以下。
0194デフォルトの名無しさん
2010/12/08(水) 09:39:45いや、お前が素人。自分は意味を知っていたけど、相手は知らずに笑ったと思ったんだろ?
他人に理解されないとかではなく、意味も成さないコードを書くと笑われて当然。
もう少し他人の目を気にした方が良いですよ、知ったかの似非上級者さん。
自分は知っている=上級者ではないから。
0195デフォルトの名無しさん
2010/12/08(水) 09:44:31そこまで言うなら、その他の課題、コードにも全部 static 戻り値の変数の型 func()
って書けば?何で常にそれを貫き通さないのに、突発的に記述したりしなかったりする訳?
それが本質的に必要不可欠ならまだしも、あのコードは違和感を感じる人がいてもおかしくない。
お前は一生#include <stdio.h> int main() で良いよ。と言うかそれに限定しろ。
知ったか無知の思い上がったバカが特定できるから、コードに穴があったら
徹底的に批判してやるから。その内、自分のスタイルを叩かれて自身をなくすだろうけど
正さない、無駄な行動が多い奴は必要なことを最低限するという頭がなく
不要な無駄なことばかりして、自分は出来るんだと見せ付けたいお子ちゃまレベルの
低脳だから、バレバレ。
0196デフォルトの名無しさん
2010/12/08(水) 09:48:14○静的関数
静的変数の関数版が、静的関数(static関数)です。関数なので、
ローカルということはありませんから、ローカル/グローバルの別はありません。
静的関数を使う方法は、関数の宣言時に、先頭にstaticと付けるだけです。
static void func(void);
関数の定義の方には、付けても付けなくても構いません。もちろん、付けておけば分かりやすいでしょう。
静的関数の意味は、静的グローバル変数と同じで、
そのソースファイル内からしかアクセスできないようにするというものです。
複数のソースを纏めて、その他にも同じ関数名のものがあるなら分かるが
118でその意味は理解されないよ。
それから BubbleSort の中身、揚げ足取りをしたくはないが
厳密に言うと無駄があるよ。
0197デフォルトの名無しさん
2010/12/08(水) 09:49:57for(j = i; j<size;j++){
if(temp[i] <= temp[j])
後は自分で気づけ。
0198デフォルトの名無しさん
2010/12/08(水) 09:59:410199デフォルトの名無しさん
2010/12/08(水) 10:06:14swap(&temp[i],&temp[j]);
の場所が不適切で無駄が発生しているよ。
比較して交換する候補が見つかったら、その位置を記憶して
2つ目のループの最後に交換で構わない。
0200デフォルトの名無しさん
2010/12/08(水) 10:09:080201デフォルトの名無しさん
2010/12/08(水) 10:10:28> そこまで言うなら、その他の課題、コードにも全部 static 戻り値の変数の型 func()
> って書けば?何で常にそれを貫き通さないのに、突発的に記述したりしなかったりする訳?
はあ? >>118は必須なシンボル(main)以外は全部staticになっているぞ。
「何で常にそれを貫き通さない」ってなんの事だよ。
0202デフォルトの名無しさん
2010/12/08(水) 10:22:12[2] 問題文(含コード&リンク):
例題4の3個のfor文について規則性を見出し,
これを1つのfor文でまとめよ.
ヒント:2重ループのfor文になる.
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 本日中
[5] その他の制限:
for文、if文、配列を習っているところです。
下記の例題4の解答のレベルに合わせてもらえると幸いです。
例題4は↓の問題です。
例題3と同じく,int型の配列aを
a={ 5, 3, 1, 8, 3, 4, 7, 2}
と初期設定する.
このとき,配列の要素どうしの入れ替えを行い,
a[0] に一番大きい値
a[1] に二番目に大きい値
a[2] に三番目に大きい値
を格納するようなプログラムを作成せよ。
http://codepad.org/k5jEHRGr
0203デフォルトの名無しさん
2010/12/08(水) 10:26:32[2] 問題文(含コード&リンク):
10進数で表現された63以下の正の整数をキーボードから入力する.
これを2進数に変換し,1の位から順にint型の配列a[0]〜a[5]に代入するプログラムを作成せよ.
ヒント
10進数を2進数へ直す計算方法を思い出そう.
この例は10進数に21を与えている.
21を2で割ったあまりを順に並べて各位の値を決めたはずである.
この場合は63以下なので,たかだか6回の割り算であまりを求めればよい.
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 本日中
[5] その他の制限:
for文、if文、配列を習っているところです。
こちらも上記の例題4の解答のレベルに合わせてもらえると幸いです。
0204デフォルトの名無しさん
2010/12/08(水) 10:40:29その内、嘲笑、失笑になるから。
0205デフォルトの名無しさん
2010/12/08(水) 10:53:45>>204
static voidの話なんだが、それが#include <stdio.h> int main()と何か関係有るのか?
0206デフォルトの名無しさん
2010/12/08(水) 10:56:14http://codepad.org/O0XCfpWf
0207デフォルトの名無しさん
2010/12/08(水) 10:57:320208デフォルトの名無しさん
2010/12/08(水) 10:59:550210118
2010/12/08(水) 11:23:34新たに作るのめんどくさいから、http://codepad.org/sV4AAxVS を
参考につくってみて
0211デフォルトの名無しさん
2010/12/08(水) 11:26:47http://codepad.org/CEDJtiLR
0212デフォルトの名無しさん
2010/12/08(水) 11:28:29ありがとうございます
>>210
すみません、まだプログラミングを学び始めたばかりで
わからないところが多すぎて参考になりそうにないです…
0213デフォルトの名無しさん
2010/12/08(水) 11:33:49計算し,その結果を出力するプログラムを作成せよ。入力にはscanf関数,
出力にはprintf関数を用いること。また,出力結果は次のような形式で
表示されること。当然ではあるが,数値については各自のi,jの値の選び方
によって計算結果が異なる。
おねがいします
0214デフォルトの名無しさん
2010/12/08(水) 11:35:12テンプレ
0215デフォルトの名無しさん
2010/12/08(水) 11:37:19>>171に書いておいたぞ。
0217デフォルトの名無しさん
2010/12/08(水) 11:38:19すみません、>>210よりはまだ理解出来そうなのですが
while break putchar a[i++]
この辺りを使わずに出来ますかね?
0218デフォルトの名無しさん
2010/12/08(水) 11:43:42http://codepad.org/1M0xn7hr
こんなもんでどうですか?
0219デフォルトの名無しさん
2010/12/08(水) 11:45:00ありがとうございます。
0220デフォルトの名無しさん
2010/12/08(水) 11:46:20そういう問題ではないんだが・・・
0221デフォルトの名無しさん
2010/12/08(水) 11:51:42お手数をおかけしました
ありがとうございます
0222デフォルトの名無しさん
2010/12/08(水) 12:01:21そんな考えならプログラマーになんて向いてないよ。早く別の職種に転職を考えな。
適性のない選択をすると、一生を無駄にしますよ。ほら、こうしている間にも
確実にいつか必ず死ぬ日に刻一刻と近づいて、生きられる時間は短くなっていますから。
それは明日かもしれませんよ?
0223デフォルトの名無しさん
2010/12/08(水) 12:04:30自己紹介乙
そういうのを余計なお世話って言うんだよ
0225デフォルトの名無しさん
2010/12/08(水) 12:37:02ねえねえC89の話をしてるのにどうしてC99の規格票を参考にするの?
わけを教えて?意味あるの?
0226デフォルトの名無しさん
2010/12/08(水) 13:51:40コピペ厨に聞いても返ってくるわけないじゃん
0227デフォルトの名無しさん
2010/12/08(水) 18:28:27どこをどう読んだら自己紹介になるんだろうか・・・
あぁ、お前>>118かw
0228デフォルトの名無しさん
2010/12/08(水) 18:33:51必ず老化も進み、衰弱するか病気になるかもハッキリとは分からないが
必ずいつかは誰もが死ぬんだが?いくら再生医療が発達した現代でも
DNAが分裂して新しい細胞が生み出されている訳だが、その再生できる回数に
限りがあるとのこと。その寿命が来た時、あるいは著しく健康を悪化させた結果
癌などに侵されるなりして、生物はいつかは死ぬんだが。
まぁ、人の死が身近ではない人もいるだろうけど、いずれ周りの人間で誰かは死ぬし
もしかすると自分が、不慮の事故などで死ぬかもしれないよ。
そんな中、こんな場所で自分より劣るプログラマーを見つけては罵倒して楽しイカ?
悪いがそんな池沼と付き合いたくないし、そんなバカと関わっても有意義な時間、人生が
過ごせるとは思えないんで。ここは幸い、IDもなく自分が特定されずに済むから
>>223 みたいなバカが居たらスルーするんで、以後放置よろ。
どこにC89の話とかいてあるのですか?
あと、この話題はC89でもC99でも同じです。
0230デフォルトの名無しさん
2010/12/08(水) 18:40:110231デフォルトの名無しさん
2010/12/08(水) 18:42:20[2] 問題文(含コード&リンク):
http://情報処理試験.jp/FE22b-pm/t08.html
この問題のプログラム1とプログラム2をそれぞれ関数化しメイン関数で呼び出し実行するプログラムの作成。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:12月10日
[5] その他の制限:なし
宜しく御願いします
0232デフォルトの名無しさん
2010/12/08(水) 18:45:490233デフォルトの名無しさん
2010/12/08(水) 18:46:57C89だと main()は main(...)と同じ意味になってしまうんですけど?
C99はmain(void)ですが
0234デフォルトの名無しさん
2010/12/08(水) 18:48:23高速で移動する物体の前に飛び出してごらん。鉄道じゃ吹き飛ぶかぶっ潰されて
ばらばらに切断されるか。そう言えば、100km/hの車に轢かれて
上半身だけボンネット、フロントガラスに、下半身が衝突した場所に残っていた
悲惨な事故を思い出したぜ。要するに 人間なんて脆い 生き物だよ。
大災害で死ぬかもしれないよ。ほら、明日にでも自分の住む地域に
大地震が発生したらどうよ?その先生きのこれる自身
0235デフォルトの名無しさん
2010/12/08(水) 18:48:25だから◆QZaw55cn4cは自己愛性人格障害なんだよ
>尊大で傲慢な行動、または態度。
アスペルガー症候群だと思っていたが、この厚顔無恥さは間違いなく自己愛だ
0236デフォルトの名無しさん
2010/12/08(水) 18:55:25http://toki.2ch.net/test/read.cgi/utu/1291613687/
◆QZaw55cn4cそのものだ
前スレの内容がなかなか良かったのだが残念ながらDAT落ち
●を持っている人は読んでみてくれ
とにかくこの種の人に関わらない方が良いという事が痛いほどわかる
そう、つまり C89/C99 どちらにしても int main() は規格に適合するのです。
0238デフォルトの名無しさん
2010/12/08(水) 19:47:130239デフォルトの名無しさん
2010/12/08(水) 19:57:49お前アホか?意味が違ってくると言ってるんだけど
規格に適合するかどうかなど聞いてない
0240デフォルトの名無しさん
2010/12/08(水) 20:01:450241デフォルトの名無しさん
2010/12/08(水) 20:11:16[2] 問題文(含コード&リンク):AOJ0004 http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0004&lang=jp
[3] 環境
[3.1] OS:windows
[3.2] VC++
[3.3] 言語: C
[4]期限:無し
[5] その他の制限:無し
http://codepad.org/6t8deX5z
現在のコードです。OnlineJudgeが通りません。
よろしくお願いします。
>>204 -> >>224 -> >>225 -> >>229 -> >>233 -> >>237
これらの一連の流れを参照してください。
C89/C99 の両者でパラメータが空リストの場合に意味が異なるのは当然ご存知の上で、 int main() が規格に適合するか適合しないか、を問題にしているのです。
0243デフォルトの名無しさん
2010/12/08(水) 20:20:200244デフォルトの名無しさん
2010/12/09(木) 01:06:53ここで相手すんな。すごくうざい。
0245デフォルトの名無しさん
2010/12/09(木) 02:19:070246118
2010/12/09(木) 05:22:39#include <stdio.h>
double Y_Answer(double a,double b,double c,double d,
double e,double f)
{
return ((c/a)-(f/d))/((b/a)-(e/d));
}
double X_Answer(double c,double b,double y,double a)
{
return (c-b*y)/a;
}
int main()
{
double a,b,c,d,e,f,x,y;
scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
y = Y_Answer(a,b,c,d,e,f);
x = X_Answer(c,b,y,a);
printf("%.3lf %.3lf \n",x,y);
return 0;
}
0247デフォルトの名無しさん
2010/12/09(木) 06:49:45君の回答だと 0x + 0y = 1, 0x + 0y = 2 の時に x = 0, y = 0 になるけどこれはおかしい
正しくは一意解無しで題意からすると不正な入力だ
同様に 0x + 1y = 1, 0x + 2y = 3 も x = 0, y = 1 になりおかしい
簡単に言うと a * e == b * d の場合は全て不正な入力という事だ
よって while() 内だけ書くと
if( a * e == b * d ) {
printf( "Ileagal input.\n" );
}
else {
x = ( c * e - f * b ) / ( a * e - b * d );
y = ( c * d - f * a ) / ( b * d - a * e );
printf( "%.3f %.3f\n", x, y );
}
で良いと思うのだけど
0248デフォルトの名無しさん
2010/12/09(木) 10:23:100249デフォルトの名無しさん
2010/12/09(木) 10:23:57○行列式
0250デフォルトの名無しさん
2010/12/09(木) 10:53:36知ってると思うけど行列式≠0という事はこの行列が正則行列である事をしめしており、
逆行列が存在する必要十分条件ね
逆行列が存在すると言う事はこの連立一次方程式は解けるという事と等価
0251デフォルトの名無しさん
2010/12/09(木) 13:27:160252デフォルトの名無しさん
2010/12/09(木) 13:31:10[2] 問題文(含コード&リンク):
二つの整数width, heightを入力として受け付ける。
文字*を使って幅(横)width,高さ(縦)height,縁の太さ2の「中が空白の長方形」を描きなさい。
例えば, 7 6 を読み込んだときには,
*******
*******
**___**
**___**
*******
*******
と表示されればよい。
ただし_のところは空白文字を示すので,
画面上では何も表示されない)。
なお,width, heightは4以上30以下と仮定してよい。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: gcc 4
[3.3] 言語: C
[4] 期限: できるだけはやく
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
よろしくお願いします
0253デフォルトの名無しさん
2010/12/09(木) 14:19:43http://codepad.org/wdXU0LTq
0254デフォルトの名無しさん
2010/12/09(木) 14:27:45int main() {
char image[30 + 1][30 + 1] = {'\0'}, mark = '*', space=' ';
int i, j, w, h, thickness = 2;
printf("w h: ");scanf("%d %d", &w, &h);
for (i = 0; i < h; i++) {
for (j = 0; j < w; j++) {
image[i][j] = mark;
}
}
for (i = thickness; i < h - thickness; i++) {
for (j = thickness; j < w - thickness; j++) {
image[i][j] = space;
}
}
for (i = 0; i < h; i++) {
printf("%s\n", image[i]);
}
printf("%d %d", w, h);
return 0;
}
0255デフォルトの名無しさん
2010/12/09(木) 14:45:56http://codepad.org/sfDIE78B
0256デフォルトの名無しさん
2010/12/09(木) 16:05:090257デフォルトの名無しさん
2010/12/09(木) 16:38:220258デフォルトの名無しさん
2010/12/09(木) 17:43:48[1] 授業単元:Cプログラミング(配列)
[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1291228.txt
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] 言語: C
[4] 期限: 12/10 よろしくお願いします
0259デフォルトの名無しさん
2010/12/09(木) 18:35:09問題4
#include <stdio.h>
int main(void)
{
int i;
double x, d = 0;
scanf("%lf", &x);
for(i = 10; i > 0; i--) d = d * x + i;
printf("%f\n", d);
return 0;
}
0260デフォルトの名無しさん
2010/12/09(木) 18:39:40ファイル meibo.dat に切り替えている。
$./meibo 24680 < ./meibo.dat
meibo:コマンド名 24680:生徒番号(code)である。
カレントディレクトリに予め用意したテキスト形式のデータベース meibo.datに番号 24680の
生徒が存在し「ない」場合は
not found
と画面に表示させ、データベース meibo.dat に番号 24680 の生徒が存在「する」場合は
No: 24680
Name: Toyato Jiro
Birth Day: 1970.11.12
Gender: M
Adress: 12-25, Meito Ward, Nagoya City, Aichi
Tel: 773-1252
School: Aichi Univ.
と画面に表示させる。
データベースは以下のように1行1レコードで構成されていて、1レコードは7つのアイテムから成る。
http://codepad.org/ouU2gH02
上のリンクの通り、レコード毎の区切りは改行で、アイテムの区切りはセミコロンになっている。
アイテムは、7項目あり、1) 生徒番号, 2) 名前, 3) 生年月日, 4) 性別, 5) 住所, 6) 電話番号, 7) 大学名
がこの順序で並んでいる。
上記のリンクでは、3レコード分しか無いが、各自でもう少しレコード数を増やして下さい。
以下のリンクに定義する構造体を使って、上のような実装をする meibo.c を書け。
http://codepad.org/V7MCRX0a
0261デフォルトの名無しさん
2010/12/09(木) 18:42:01問題2
ttp://codepad.org/vEHYTcqt
これ見れば1も出来ると思うけどどうだ?
0262デフォルトの名無しさん
2010/12/09(木) 18:43:46書ききれなかったので、続きです。。。
[3] 環境
[3.1] OS:Mac OS X
[3.2] コンパイラ名とバージョン:ターミナル
[3.3] 言語:C
[4] 期限:2010年12月11日 15:00まで
[5] その他の制限:ファイル処理のやり方については、まだ習っていないので使わないで下さい。
標準入力を meibo.dat に切り替えて扱うようにお願いします。
0263デフォルトの名無しさん
2010/12/09(木) 18:43:56こっちで ttp://codepad.org/4Phuv3f8
0264デフォルトの名無しさん
2010/12/09(木) 18:48:36問題5
#include <stdio.h>
int main(void)
{
int i;
double x, d = 0, an = 1;
scanf("%lf", &x);
for(i = 1; i <= 9; i++) an /= i;
for(i = 9; i >= 0; i--) {
d = d * x + an;
an *= i;
}
printf("%f\n", d);
return 0;
}
0265デフォルトの名無しさん
2010/12/09(木) 19:12:03↓
0266デフォルトの名無しさん
2010/12/09(木) 20:14:00すみません、これを御願いします。
0267デフォルトの名無しさん
2010/12/09(木) 20:21:19問題1
int main(void) {
int i;
double f[10][10];
for (i=0 ; i<100 ;i++) printf(" %f\n",f[i/10][i%10]=11.0);
return 0;
}
0268デフォルトの名無しさん
2010/12/09(木) 20:45:20a,bに入る数字を書くものと考えて。
問題1
a : 1110110000001
b : 1110001000000
とか、こんな感じでいいの?
0269デフォルトの名無しさん
2010/12/09(木) 20:59:30c : 0000101001
つーかこれC/C++言語の問題じゃないじゃん。
0270デフォルトの名無しさん
2010/12/09(木) 21:05:00プログラム例の通り5や3などの整数をうけとりそれを2進数に直す感じです。
0271デフォルトの名無しさん
2010/12/09(木) 21:07:13はい、摸擬言語です
これをC言語でプログラムを作る課題です
0272デフォルトの名無しさん
2010/12/09(木) 21:43:50同じようにやってるつもりだがNがマイナスの時に合わん。デバッグは任せた。
http://codepad.org/zmuVF75O
0273デフォルトの名無しさん
2010/12/09(木) 21:51:31自己レス。最後8ビット返すのか。最後下記な。
return R.b08;
0274デフォルトの名無しさん
2010/12/09(木) 22:06:16Prog2
http://codepad.org/aXHXvcvP
0275デフォルトの名無しさん
2010/12/09(木) 22:52:59有難う御座います。
0276デフォルトの名無しさん
2010/12/09(木) 23:05:11[2] 問題文
バイナリファイルを読み込み、バイト数を調べて表示し、
コピーを作成するプログラムを作成せよ。
バイナリファイルは『マイピクチャ』の『Sample Pictures』に含まれる
jpgファイルなどをコピーして使用すること。
[3] 環境
[3.1] windowsXP
[3.2]visual stdio2005
[3.3] c++
[4] 2010/12/11
[5] 無し
お願いします。
0277デフォルトの名無しさん
2010/12/09(木) 23:39:23ttp://d.hatena.ne.jp/pknight/20090825/1251217957
0278デフォルトの名無しさん
2010/12/10(金) 04:25:29ttp://codepad.org/g0Lt6DA1
0279278
2010/12/10(金) 04:40:25ttp://codepad.org/mHd5vqD5
0280デフォルトの名無しさん
2010/12/10(金) 07:14:17http://codepad.org/qhIHDusv
adhocだな、年は1900年代固定で良いの?
0281デフォルトの名無しさん
2010/12/10(金) 13:04:50[3] 環境
[3.2] コンパイラ名とバージョン: gcc
[4] 期限:はやめにお願いします。
お願いします!
0283デフォルトの名無しさん
2010/12/10(金) 15:53:01[2] 問題文(含コード&リンク):
Aスターアルゴリズムを用いた迷路探索解決プログラムの作成
[3] 環境
[3.1] OS: macosx
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 12月20日まで
[5] その他の制限:
http://www.is.kochi-u.ac.jp/~ryooka/ai/main_depth.c
のプログラムを利用して
0284デフォルトの名無しさん
2010/12/10(金) 15:56:56まったく関係ないけど、こういうコメントちゃんとついたスタイルのソース、
なんか懐かしいな。俺も十年位前そういう書き方に没頭してた。
0285デフォルトの名無しさん
2010/12/10(金) 16:12:16>/* ノード数(状態数) */
>#define N 9
こういうの馬鹿じゃないかと思うね。
#define NODE_NUM 9
で十分じゃないか
0286デフォルトの名無しさん
2010/12/10(金) 16:15:51細かい
そんなのは個人の自由
文句があるならお前が書け
0287デフォルトの名無しさん
2010/12/10(金) 16:18:47>>285は親切にもアドバイスくれてるだけだと思うが…。
0288デフォルトの名無しさん
2010/12/10(金) 16:23:34「大きなお世話」と言う
0289デフォルトの名無しさん
2010/12/10(金) 16:26:11大(おお)きな御世話(おせわ)
よけいなおせっかい。不必要な世話。他人の助言や手助けを拒絶するときに言う。余計なお世話。
0290デフォルトの名無しさん
2010/12/10(金) 16:29:44コレって俺の環境が読めない改行コードが使われてるだけ?
他の人はちゃんと見えてるのか?
0291デフォルトの名無しさん
2010/12/10(金) 16:33:200292デフォルトの名無しさん
2010/12/10(金) 17:03:150293デフォルトの名無しさん
2010/12/10(金) 17:05:29> [3.1] OS: macosx
Windowsの場合、メモ帳だと改行おかしいけど
VSとか他のエディタ使えば平気
つか名前が入ってるけどいいのか?
0294デフォルトの名無しさん
2010/12/10(金) 17:05:450295デフォルトの名無しさん
2010/12/10(金) 17:06:350296デフォルトの名無しさん
2010/12/10(金) 17:21:510297デフォルトの名無しさん
2010/12/10(金) 17:27:59それより1文字定数とかグローバル変数にいちゃもん付けてる奴(ら?)はあたまおかしい
0298デフォルトの名無しさん
2010/12/10(金) 17:29:50>/* ノード数(状態数) */
#define NODE_NUM 9
こういうの馬鹿じゃないかと思うね。
>#define N 9
で十分じゃないか
0299デフォルトの名無しさん
2010/12/10(金) 17:31:380300デフォルトの名無しさん
2010/12/10(金) 17:48:490301デフォルトの名無しさん
2010/12/10(金) 18:28:300302デフォルトの名無しさん
2010/12/10(金) 18:30:56これこそが真実だろう
0303デフォルトの名無しさん
2010/12/10(金) 18:32:29[2] 問題文(含コード&リンク):
以下のようなカレンダープログラム mycal を作成せよ。
◦ 引数なしで実行されると、今月のカレンダーを出力する
◦ 引数1個で実行されると、その引数を月とみなし、その年のその月のカレンダーを出力する
◦ 引数2個で実行されると、第一引数を月、第二引数を年とみなしてカレンダーを出力する。
[3] 環境
[3.1] windowsXP
[3.2]gcc
[3.3] c
[4] 2010/12/13
[5] 無し
0304デフォルトの名無しさん
2010/12/10(金) 18:34:54そういう下らんレスをしているお前が言うのもどうかと思うが
0305デフォルトの名無しさん
2010/12/10(金) 18:37:58グローバル変数が入ってると読む気が無くなるのは普通の感覚だと思うけど?
0306デフォルトの名無しさん
2010/12/10(金) 18:48:45[2] 問題文(含コード&リンク):http://codepad.org/MqsKAAAEを
多角形(n角形)の周囲長を求めるプログラム(nは自分で入力する)に変えなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
[3.3] 言語: C++
[4] 期限:2010年12月14日
[5] その他の制限:戻り値は構造体
0307デフォルトの名無しさん
2010/12/10(金) 19:05:41この問題でMを5ビットに拡張させる意図はなんでしょうか?
何故なのか分からなくて、試しに4ビットで組んだら普通に動作してるように見えます。
http://codepad.org/iSCHLPV8
回答者を混乱させる目的でしょうか、それとも何か重要な理由がありますか?
0308デフォルトの名無しさん
2010/12/10(金) 19:13:54むやみやたらとグローバル変数だらけだと同意だけど
この程度(しかも詳細なコメント付)なら
・「どんなデータがあるのか」を把握すればいいだけ
・どこからも参照されるようなデータを一々引数で引き回すな
と思うね
で,A*探索ってことは重み付きグラフのはずなのに「重み」がないけどどうすれば?
0309デフォルトの名無しさん
2010/12/10(金) 19:31:30C++だってクラス内で変数共有して便利に使ってるわけだし。
気になるんならstaticつけとけば。
0310デフォルトの名無しさん
2010/12/10(金) 19:56:07本気で言ってるのなら、もう何も言うことはない。
ネタだと言ってくれるなら、いいネタだよと称えたい。
0311デフォルトの名無しさん
2010/12/10(金) 20:05:11http://codepad.org/9WRnuiGr
0312デフォルトの名無しさん
2010/12/10(金) 20:19:23お慈悲を!
0313デフォルトの名無しさん
2010/12/10(金) 20:25:16まずはエラーのでないコードを貼れ
はなしはそれからだ
0314デフォルトの名無しさん
2010/12/10(金) 20:41:41http://codepad.org/TpRaqTf4
0315デフォルトの名無しさん
2010/12/10(金) 20:47:18似たの最近見たけど、ただの多角形か?
正多角形とか、1の累乗根とかそんな条件はないか?
0316デフォルトの名無しさん
2010/12/10(金) 20:54:48http://codepad.org/77UTIjQ7
おねがいします。
0317デフォルトの名無しさん
2010/12/10(金) 20:57:02同一人物がせっかく書いてもらった貰ったレスを見てないとしか思えない。
0318デフォルトの名無しさん
2010/12/10(金) 20:59:15"多角形"で通じると思っているところかな。
0319デフォルトの名無しさん
2010/12/10(金) 21:06:30ただの多角形だと思います。
説明書きにも特に言及はありませんでしたので・・
0320デフォルトの名無しさん
2010/12/10(金) 21:12:28お前、前スレの奴だろ。
じゃなきゃ双子か?ここはお前のサポートセンターではないぞ。
0321デフォルトの名無しさん
2010/12/10(金) 21:17:28?
0322デフォルトの名無しさん
2010/12/10(金) 21:17:48これ誰か分かりませんか?
基本情報技術者過去問、見たいな感じで書かれているので
> 回答者を混乱させる目的
ではないと思ってます。ずっと考えてますがまだ分かりません。
0323デフォルトの名無しさん
2010/12/10(金) 21:24:35さん、ありがとうございます。
お手数ですが、ソースに説明をつけて頂けませんか?
お願い致します。。。
0324デフォルトの名無しさん
2010/12/10(金) 21:29:06http://codepad.org/qSwtexGy
0325デフォルトの名無しさん
2010/12/10(金) 21:32:35http://codepad.org/eyLxAOFV
>>320
ここはサポセンでしょ?もろもろの信頼性がないだけで
0326デフォルトの名無しさん
2010/12/10(金) 21:36:29問題よく読め。まちがってんぞ。
0327デフォルトの名無しさん
2010/12/10(金) 21:38:48ありがとうございます。
ただ、説明不足だったかも知れませが、角数を入力できませんか?
0328325
2010/12/10(金) 21:38:52>多角形(n角形)の周囲長を求めるプログラム(nは自分で入力する)に変えなさい。
頂点間の距離の総計じゃないの?
0329デフォルトの名無しさん
2010/12/10(金) 21:42:270330デフォルトの名無しさん
2010/12/10(金) 21:43:04これが正しい。>>324
0331デフォルトの名無しさん
2010/12/10(金) 21:46:270332325
2010/12/10(金) 21:46:460333デフォルトの名無しさん
2010/12/10(金) 21:48:08>(nは自分で入力する)
これ#defineじゃなくキーボードからnを入力ってことじゃね
0334324
2010/12/10(金) 21:52:07おっと、これは失礼。
http://codepad.org/wZEHQcro
rand()+1でも良かったかな。
0335デフォルトの名無しさん
2010/12/10(金) 21:52:15そうです!
0336デフォルトの名無しさん
2010/12/10(金) 21:53:09それくらい自分でやれ
0337デフォルトの名無しさん
2010/12/10(金) 21:54:49こうしとけ。
#define N (123) // 自分で入力しました。
0338デフォルトの名無しさん
2010/12/10(金) 21:55:11教えてください
0339デフォルトの名無しさん
2010/12/10(金) 22:14:520340デフォルトの名無しさん
2010/12/10(金) 22:20:140341デフォルトの名無しさん
2010/12/10(金) 22:21:58前スレの奴だよ。
double PI = 3.1415926535897931;
acos(0)でエラーが出るからといって、3.1415926535897931を薦められ、
それをそのまま書いてるし、
ありふれた名前だが、PI,Len,N,sumなどが全て同じとは不自然。大文字小文字も完全に一致する。
ちなみに前スレの問題にhttp://codepad.org/MqsKAAAEの引用はなかった。
前スレ内で出てきたソースの一部。
0342デフォルトの名無しさん
2010/12/10(金) 22:24:53いちいち変更するのが面倒なので、仕様でそうしたいのですが…
>>341
仮に、「私が前スレの奴です」と言ったらやり方教えてくれますか?
0343デフォルトの名無しさん
2010/12/10(金) 22:26:08書いてるだろ >>337
0344デフォルトの名無しさん
2010/12/10(金) 22:28:11いやいやいやいや
scanfを用いた方法を教えてほしかったんですよ
0345デフォルトの名無しさん
2010/12/10(金) 22:33:00質問者と同一人物なら、何故こんな大穴の開いた問題を引っ張る。
出題者への嫌がらせか?
0346デフォルトの名無しさん
2010/12/10(金) 22:34:06教えてもらえれば去ります
0347デフォルトの名無しさん
2010/12/10(金) 22:43:52[2] 問題文(含コード&リンク):
東北地方の県のデータを打ち出すプログラムを作成しなさい。ただし、東北地方かどうかの判定をする部分は関数を使うこと。
県データの1行からなる構造体を受取る関数とする。該当すればYを戻り値として返すようにする。)
判定をする際の県名の比較は、関数側に県名の二次元配列を持ち、標準関数strcmpを使う。string.h のinclude を忘れないように。
strcmp(文字列1,文字列2) は文字列が一致すれば0を返す。
コード例示: http://minus-k.com/nejitsu/loader/up84923.jpg
県データ: http://minus-k.com/nejitsu/loader/up84924.txt
[3] 環境
[3.1] OS: Linux / Ubuntu 10.04
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 12月12日まで
[5] その他の制限: 構造体まで学習済み
関数にどう渡し手て処理すればいいか分かりません。よろしくお願いします。
0348デフォルトの名無しさん
2010/12/10(金) 23:14:37一個目の画像。自分で打ち込むぐらいはやれ。
それだけでも多少覚える。
0349デフォルトの名無しさん
2010/12/10(金) 23:24:06おーい、サポートセンター教えてやれよ。教えたら帰るってよ。 >>325
0350デフォルトの名無しさん
2010/12/10(金) 23:25:200351デフォルトの名無しさん
2010/12/10(金) 23:48:42酷いなこのスレ
0352デフォルトの名無しさん
2010/12/10(金) 23:54:16> 関数側に県名の二次元配列を持ち、
これって char kenmei[6][20]; みたいな定義だろ(東北って6県だよね)、これを静的に初期化するのってどうするんだ?
普通は char* kenmei[] = { "aomori", "miyagi", ..... }; みたいにするんだけど題意と反するよなぁ...
まさか、関数コールの度に strcpy( kenmei[0], "aomori" ); みたいな事するのか?
0353デフォルトの名無しさん
2010/12/10(金) 23:58:34static つけとけばOK
0354デフォルトの名無しさん
2010/12/10(金) 23:59:470355デフォルトの名無しさん
2010/12/11(土) 00:11:13http://codepad.org/A4Y3mGqG
0356355
2010/12/11(土) 00:13:59return 0;
忘れた
0357デフォルトの名無しさん
2010/12/11(土) 00:14:42それ出来たっけ?
0358デフォルトの名無しさん
2010/12/11(土) 01:01:08[2] 問題文(含コード&リンク):humという名前の構造体を受け取り、そのメンバの中の年齢の値を1/7倍して
返す関数を7humを完成させなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010
[3.3] 言語: C++
[4] 期限:2010年12月15日
[5] その他の制限:
0359デフォルトの名無しさん
2010/12/11(土) 01:04:520361デフォルトの名無しさん
2010/12/11(土) 01:23:440363デフォルトの名無しさん
2010/12/11(土) 01:25:59void I_am_hum(hum& h){ h.年齢 *= 1.0 / 7.0; }
0364デフォルトの名無しさん
2010/12/11(土) 01:46:150366デフォルトの名無しさん
2010/12/11(土) 04:24:21struct hum{
private:
double age;
public:
hum(double Age):age(Age);
hum():age(0.0);
~hum();
double GetAge();
double Sevenhum(hum &hobj);
};
hum::hum():age(0.0)
{}
hum::hum(double Age):age(Age)
{}
hum::GetAge()
{
return age;
}
double hum::Sevenhum(hum &hobj)
{
return hobj.GetAge()/7.0;
}
0367デフォルトの名無しさん
2010/12/11(土) 05:12:000368デフォルトの名無しさん
2010/12/11(土) 06:46:30ですが、重みは上下左右の全方向に対して1です
分岐路に立った時に、どちらの経路(重みの和)のほうが短いかを考慮するアルゴリズムらしいのですが・・・
それとソースプログラムの変数等については寛大な心で許してください
0369デフォルトの名無しさん
2010/12/11(土) 07:26:06宿題とは関係無いけど
何となく正n角形の周囲長を求めるだけのコードを書いてみた
http://codepad.org/cFjxXUS3
codepadて確かgccなんだよね
リンカに-lmを指定するにはどうしたら良いのでしょうか
0370デフォルトの名無しさん
2010/12/11(土) 08:11:050371デフォルトの名無しさん
2010/12/11(土) 21:00:51私はしつこすぎた。
ごめんなさい
0372デフォルトの名無しさん
2010/12/11(土) 21:29:21それは単なる最良優先探索
A*は分岐路に立ったときに,『始点から』最も近いノードを選ぶアルゴリズム
横型探索だから「分岐路」が同時に複数発生するのが深さ優先と違う点
0373デフォルトの名無しさん
2010/12/11(土) 21:38:40[2] 問題文(含コード&リンク):
以下の問題文の ^ はべき乗をあらわす記号とする。
1.二次方程式 "ax^2+bx+c=0" のxの解を"解の公式"を使って求め、表示しなさい。
a,b,cは乱数によって決定されるdouble型の変数とする。
a,b,cは "a≠0 , b^2-4ac>=0" を満たすものとする。
解の公式は {-b±√(b^2-4ac)}/(2a) を使うこと。
2.解の公式を使って解く上記方法には問題点があります。
上記問題点とは、"a=0 , b^2-4ac<0"の時という意図ではありません、
あくまで"a≠0 , b^2-4ac>=0"である前提での問題点です。
その問題点がなんであるかを答え、
その問題点を解決するプログラムを作成しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2010年12月15日
[5] その他の制限:無し
0374デフォルトの名無しさん
2010/12/11(土) 22:20:11[2] 問題文(含コード&リンク):pgmの画像を上下左右反転させる関数void hanten_pgmを作りなさい。
[3] 環境
[3.1] OS:Mac
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:12/15まで
[5] 配列の入れ替えを利用した比較的単純な関数で。
読み取り・書き込みを行う関数は既に完成済み。
0375デフォルトの名無しさん
2010/12/11(土) 22:23:38データの持たせ方が分からないよ
0376デフォルトの名無しさん
2010/12/12(日) 00:21:53http://ideone.com/Y07Z7
構造体・配列引数以外はポインタ・その他ヘッダ(malloc等)を一切未使用
なるべく骨組みを保とうと思ったがムリゲだった
(やろうと思えば再帰でもできそうだけどwhileループに変更)
Q:優先度付きキューの実装がトンデモだが大丈夫か?
A:大丈夫だ.問題ない
0377376
2010/12/12(日) 00:26:14優先度付きキューのコメントに書いたことなんだけど,
それなら優先度付きである必要なかったorz
構造体のpriorityとnも同じ値を入れてるから1変数にまとめればよかったし
0378デフォルトの名無しさん
2010/12/12(日) 00:41:16http://ideone.com/rzNIF
↑上のファイルを猿でもわかるように解説してもらっていいですかね?
説明しろ と言われると出来ないので・・・
すいません・・・お願いします
0379デフォルトの名無しさん
2010/12/12(日) 00:41:58[2] 問題文(含コード&リンク):
下記のルールで作図した時の、各点のXY座標、および線分の長さの総和を表示せよ。
N(取りあえず10とする)個の点を一筆書きの要領で全て線分で結ぶ。
このとき線分の長さの総和が最小となるようにするものとする。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
0380デフォルトの名無しさん
2010/12/12(日) 01:03:03根本から間違ったものを提出して教授に説明しろとでも言われたんだな
「ヒープ」とよばれるメモリ領域をOSから借りてそこに入力したデータを記録
入力完了後バブルソートでソートをかける
借りパクは行儀が悪いので借りたものは返しましょう
0381デフォルトの名無しさん
2010/12/12(日) 01:05:49まず int main() だがC言語では一番最初にこの関数が実行される。
int main(void)にしておいたほうが、無意味な言い争いを避けることが出来るため、
よりベストと思われる。
次にchar buff[256] = {'\0'};だがchar型の256個の配列buffを宣言し、
全ての要素を0に初期化している。char型、および配列はググって調べるように。
後の説明は長くなって書ききれないため省略する。
0382デフォルトの名無しさん
2010/12/12(日) 01:31:51要は君のレベルも分からんのに説明したところで、
空振りに終わる確率が高いわけだ。
「ここと、ここが分かりません」など回答者に何かヒントを与えるべきだ。
"全く分かりません"では"クソして寝ろ"以外の返事は帰ってこんぞ。
0383デフォルトの名無しさん
2010/12/12(日) 02:34:18このスレで一般にWindowsでgccってのはcygwinなりMinGWってことなのかな?
N個の点の座標について指定がないけどランダムってことなの?
点の数のNがとりあえず10個だけど、上限は設けないってこと?
総当たりを許すのか許さないのかね。
で、まぁNP困難であるわけだけど最小じゃないといけないと……。
0384デフォルトの名無しさん
2010/12/12(日) 06:32:28返信遅くなりましたがありがとうございます
Q:そんなプログラムの出来で大丈夫か
A:(自分にとっては)一番いいのだった、問題ない
0385デフォルトの名無しさん
2010/12/12(日) 06:34:480386デフォルトの名無しさん
2010/12/12(日) 09:23:38ランダムでいいです。Nの上限は特に指定されてません。
0387デフォルトの名無しさん
2010/12/12(日) 09:54:15重要な質問は総当りで良いかってところだと思うぞ
0388デフォルトの名無しさん
2010/12/12(日) 10:14:17> 総当り
と言うことは、
取りあえず結線して、その線分の長さの計算する。
これを全ての結線(10!通り)で試して一番短いものを表示する。
ってことですかね。
これなら何とか自分でも書けそうですが、そういう問題なんでしょうか。
その辺の条件は特に記載がないのでよく分からんのですよ。
0389デフォルトの名無しさん
2010/12/12(日) 10:42:36ロジックとして一番最初に浮かぶのは
�@ x + y が最小になる又は最大になる点を基点とする
�A基点から最も近い点を次の点とする
こんなんじゃ最短になるとは限らないよね
なんかスマートな手法が有るのかなぁ
0390379
2010/12/12(日) 10:53:31実際やってみると難しいですね。
外出までに書いて添削用に上げようと思ったんですが無理でした。
また夜にでも考えます。
0391デフォルトの名無しさん
2010/12/12(日) 13:16:040392デフォルトの名無しさん
2010/12/12(日) 13:37:25条件は記載されてないって言っても
講義なりを踏まえた上での宿題なわけでしょ?
何の単元のどういう講義の後の宿題なのか分かればヒントにはなるかも
こういう計算量が膨大になっちゃうやつは
前スレだかにあった遺伝的アルゴリズムとか使えば少ない計算量で近似を求められるけど
0393デフォルトの名無しさん
2010/12/12(日) 15:08:3710秒で解ける様なスーパーコンピューター持ってるんだ、羨ましいな
0394デフォルトの名無しさん
2010/12/12(日) 16:26:24なぜでしょうか?
0395デフォルトの名無しさん
2010/12/12(日) 16:52:550396デフォルトの名無しさん
2010/12/12(日) 17:29:34std::min<int>(a, b); // 型を指定するか
std::min(a, static_cast<int>(b)); // キャストして型をそろえる
0397397 ◆397/xJfLII
2010/12/12(日) 18:35:08[2] 問題文:ttp://game.tasoki.net/src/up0691.txt
(含コード&リンク):ttp://game.tasoki.net/src/up0689.zip.html
[3] 環境
[3.1] OS:Linux(授業で使っているOSはRed Hat Linux)
[3.2] コンパイラ名とバージョン:GNU Emacs
[3.3] 言語:C++
[4] 期限:2010年12月16日12:25まで
[5] その他の制限:特にありません
皆様のお知恵をお貸し下さい。
宜しくお願い致します。
0398デフォルトの名無しさん
2010/12/12(日) 18:46:54動きました。ありがとうございます。
0399デフォルトの名無しさん
2010/12/12(日) 18:56:582分木を生成して、後順走査をしながら解を求めていくプログラムです。
なのですが、うまく左側の木の値を読み込んでくれません。
4行目が
info1= 2, info2= 0, x= 5, y=10, z= 3
となっているんですけど、
xは大きい方を選択するので5
yは足し算なので11
zは大きい方を選択するので6
つまり
info1= 2, info2= 0, x= 5, y=11, z=6
になって欲しいんですけどどこがおかしいですか?
よろしくお願いします。
0400デフォルトの名無しさん
2010/12/12(日) 19:27:01またわからない所あったのでお願いします。
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1296174.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:12/13
0401383
2010/12/12(日) 19:52:52総当りのプログラムを書いてみた。
http://codepad.org/OFU5si3s
道順の前組み合わせに関しては適当にぐぐったコードなので詳しく説明できない。
よって、単に距離のルート取る前の値を比較して最短を探しただけ。
GA版は自分の得意なC#を使ってフォームアプリケーションを作ってみたけど
N = 10 ぐらいなら総当りで一瞬で解き終わるので使わないでいいんじゃないかな。
0402デフォルトの名無しさん
2010/12/12(日) 20:07:1015点で10秒!?
それを実現可能なコードとスパコンの構成をお教えください。
0403デフォルトの名無しさん
2010/12/12(日) 20:12:56RoutesNum を (N-1)! としてるけど N! じゃないの?
http://codepad.org/a6CBrvBy
手元の環境より codepad の方が 5 倍速いことがわかりました。
0406デフォルトの名無しさん
2010/12/12(日) 20:38:4715点の座標リストを作ってみてちょ
0407デフォルトの名無しさん
2010/12/12(日) 20:51:25http://codepad.org/GNn8iXQj
seed値合わせて、全く同じ座標となるように
>>401 >>404 を改造させてもらって試したところ。
俺のも含めて全部答えが異なっていると言う・・・
0408デフォルトの名無しさん
2010/12/12(日) 21:22:170409デフォルトの名無しさん
2010/12/12(日) 21:26:410410407
2010/12/12(日) 21:33:54私のはブッチギリで遅いw
どこをどう書けば早くなるかソース参考に勉強させてもらいます。
0411デフォルトの名無しさん
2010/12/12(日) 21:41:470413デフォルトの名無しさん
2010/12/12(日) 21:52:09[1] 授業単元:CGプログラミング
[2] 問題文(含コード&リンク):
・複数の画像(画像は3枚以上、縦横は同じ)を平均した画像を作成
・任意のカラー画像を入力するとRGBカラーヒストグラムを出力し、各ヒストグラムの平均値、分散値を求めるプログラムを作成
[3] 環境
[3.1] OS:Win (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン:bcc (gcc 3.4 VC 6.0等)
[3.3] 言語: C(C/C++/どちらでも可 のいずれか)
[4] 期限: 12月14日12:00まで
[5] その他の制限: もう動けば何でもいいです
0414デフォルトの名無しさん
2010/12/12(日) 21:53:460416デフォルトの名無しさん
2010/12/12(日) 22:18:430417デフォルトの名無しさん
2010/12/12(日) 22:24:45>>1
0418デフォルトの名無しさん
2010/12/12(日) 22:50:532次元配列を用意して、一度計算した距離を保存しておくのも高速化になる
0419デフォルトの名無しさん
2010/12/12(日) 23:00:17問題があまりにてんこ盛りすぎる。やる奴いるかな。
↓取りあえずカラーヒストグラムっぽい奴だけ。
http://codepad.org/yonm9an5
exeと同じディレクトリにTest.bmpが必要。
gcc なら gcc -Wall-ansi -pedantic -mwindows hoge.c -luser32 -lgdi32 で、
CLならそのまま CL hoge.c でいけると思う。
>> 418
どうも。なるほどやってみます。
0420383
2010/12/12(日) 23:18:37のコードは間違っている。
EvalRouteにおいて
int idxn; を追加して
idx = Route[i];
idxn = Route[i + 1];
dx = X[idx] - X[idxn];
dy = Y[idx] - Y[idxn];
じゃないとだめだ。
後、最小経路だけ知りたいので
全経路分のメモリ確保とか不要だよね。
http://codepad.org/kR42UrOn
修正したよ。
0421デフォルトの名無しさん
2010/12/12(日) 23:20:48[2] 問題文(含コード&リンク):このプログラムを、ポーランド記法による計算を入力する式が長くなっても動作するように修正してください。
「このプログラム」は以下にURLを張ります。
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:gcc最新版
[3.3] 言語:C++
[4] 期限:明後日まで
[5] その他の制限:#include <ctype.h> int isxdigit(int c); という文字列を使うようです
http://codepad.org/YPDNSlLa
これの「//ここを作成する」を3箇所作成してから「ポーランド記法〜修正してください」
に取り掛かるという結構手間がかかりそうな作業になりそうで申し訳ないです。
よろしくお願いします。
0422デフォルトの名無しさん
2010/12/12(日) 23:23:31マジで超早くなりました。
私の環境での10点処理の時間(固定シードで計測)。
>>407 のソースそのまま --> 時間1609ms 探索数3628800
>>411 を実装 --> 時間172ms 探索数1545
>>418 を実装 --> 時間46ms 探索数1545
ありがとうございました勉強になりました。まさか30分の1以下になるとは・・・
0423デフォルトの名無しさん
2010/12/12(日) 23:32:27輪になってる前提だっけ?
0424デフォルトの名無しさん
2010/12/12(日) 23:33:04距離の大小だけわかればいいから
sqrt取るのをやめればいいと思うよ。
0425デフォルトの名無しさん
2010/12/12(日) 23:34:31一筆書きって閉じたのが一般的かと。
0426デフォルトの名無しさん
2010/12/12(日) 23:40:05pgmフォーマットはアスキーバイナリどちらでもいいの?
指定ある?
>読み取り・書き込みを行う関数は既に完成済み。
これがあるなら出してもらわんとデータの受け渡しが勝手にかかれるぜ
0427407
2010/12/12(日) 23:40:24http://codepad.org/MZixv48O
(↑ #include <windows.h>とGetTickCount()回り残ってます。)
0428デフォルトの名無しさん
2010/12/12(日) 23:41:12総和で調べなきゃいけないんだから sqrt は必要
0429デフォルトの名無しさん
2010/12/12(日) 23:43:30>return L[a][b] = LenMac(a,b);
を
return L[a][b] = L[b][a] = LenMac(a,b);
にすると、もうちょっと速くなる
0430デフォルトの名無しさん
2010/12/12(日) 23:44:27sqrtは最後に使えばいいってことだろ
0431デフォルトの名無しさん
2010/12/12(日) 23:47:02距離 4 4
と
距離 1 6
があったとして上が 8 、下が 7
二乗のままだと上が 32、下が 37
になっちゃうよ
0432デフォルトの名無しさん
2010/12/12(日) 23:50:54なるほどねぇ。みんなスゲー頭いいな。
今日は宿題やった甲斐があったわ。
0433デフォルトの名無しさん
2010/12/12(日) 23:55:57「日」は一筆書き出来ないってのが一般的なのか?
0434デフォルトの名無しさん
2010/12/12(日) 23:56:38同じく 10点固定
>>405 : http://codepad.org/sthIM457 時間 941ms
>>411 : 同上 時間 380ms
>>418 : http://codepad.org/tyCTn9Ce 時間 110ms
今ひとつオプティマイズの効果がでていないなあ。
0436デフォルトの名無しさん
2010/12/13(月) 00:19:04お前みたいなクズのために教えたんじゃないから真似すんな
0437デフォルトの名無しさん
2010/12/13(月) 00:20:19乱数の気まぐれもあるからね。
0438 ◆1reJfOTbE.
2010/12/13(月) 00:29:16[2] http://www.icsd3.tj.chiba-u.jp/~yasukuni/10jikken/
[3] 環境
[3.1] OS:Windows XP
[3.2]コマンドプロンプトで、gccのコマンドでコンパイルしています
[3.3] 言語:C言語
[4] 期限:2010年12月17日に提出なので前日くらいまで
[5] その他の制限:遅くなりましたが、前スレで答えていただいた方
大変ありがとうございました。
リンク先の、第4回の講義スライドの後ろに載っている課題と、第3回の
課題4−2以降がわかりません。よろしくお願いします。
0439デフォルトの名無しさん
2010/12/13(月) 00:32:19コードが根本的にクソだからに決まってんだろw
0440デフォルトの名無しさん
2010/12/13(月) 00:49:170441デフォルトの名無しさん
2010/12/13(月) 00:53:49多分こうだと思うのですがどうでしょう
http://codepad.org/zccHWI9P
0442デフォルトの名無しさん
2010/12/13(月) 01:35:050443デフォルトの名無しさん
2010/12/13(月) 01:57:180444デフォルトの名無しさん
2010/12/13(月) 02:05:30[2] http://codepad.org/riYRzZ7s
[3] 環境
[3.1] OS:Windows vista
[3.2]複数(codepad,borland,VC++exp)
[3.3] 言語:C言語
[4] 期限:なし
[5] その他の制限:なし
ソートプログラムを作っていて、最後の配列がうまく変わってくれません。
ヒントだけでもかまいませんので、よろしくお願いします。
N=12 かつ与えるデータを同一にして比較しました。私の環境 PenIII 866MHz では、以下の結果になりました。
>>420 39296ms
>>427 991ms
>>435 12758ms
>>427 が枝狩りが効いていて圧倒的に効率的、という結果です。 >>420 >>435 は同等でしょうね。
>>420 と >>435 は最短経路の解を出力しますが、それは一致しました。
ただ、3者とも、その値は大きくことなっておりました。どれが正しいのだろう。
>>427
最短経路を出力するようにしていただけますか。
0446デフォルトの名無しさん
2010/12/13(月) 02:15:46http://codepad.org/yQtUOWa3
とりあえず動くようにしたけど
見直したらこの訂正は不適切だと気づいたが一応レスしとこう
0447デフォルトの名無しさん
2010/12/13(月) 02:22:0215じゃ終わらなかったからって12にして誤魔化すなよw
0448デフォルトの名無しさん
2010/12/13(月) 02:25:53一筆書きは>>433の指摘にもあるとおり始点と終点が一致しないパターンの方が多いから
私の環境はしょぼいので N = 15 だと日が暮れます。でも N = 15 での傾向と N = 12 での傾向が大きく異なるということはないでしょうね。
0450デフォルトの名無しさん
2010/12/13(月) 02:33:46>>435みたいなゴミ貼ってはずかしくないの?
0451デフォルトの名無しさん
2010/12/13(月) 02:34:020453デフォルトの名無しさん
2010/12/13(月) 03:03:22[2] 二つの文字列を入力した際に、diffアルゴリズムであるエディットグラフを使って、最短距離で差分を求め、追加削除すべき要素をプリントアウトしなさい
またできる限りコメントで処理内容を示すこと
[3] 環境
[3.1] OS:Windows vista
[3.2]MS visual studio2010 評価版
[3.3] 言語:C++
[4] 期限:12/14 0:00
[5] その他の制限:なし
エディットグラフに関しては曖昧な理解でしかなくコードにする程わかっていません
助けてください
0454デフォルトの名無しさん
2010/12/13(月) 05:09:06後からゴミを貼るなってことだろ
0455デフォルトの名無しさん
2010/12/13(月) 05:33:55超眠い中やったから変なところあるカモ
学校の宿題じゃないから変でも良いよね
http://codepad.org/U0FQeEFY
0456400
2010/12/13(月) 06:01:23問題1:キーボードから4人の数学、英語、国語の成績(整数)をint型二次元配列に入力。
次の表の形式にして画面に出力するようにする(平均は小数点第二位まで)
A B C D heikin
sugaku 40 100 50 50 60.00
eigo 60 80 100 30 67.50
kokugo 26 25 50 60 40.25
問題2:サイズ2*2の2つの行列A,Bを配列A[2][2],B[2][2]を用いて作り各要素(合計8個)を、
キーボードから入力すると行列の和A+Bの結果を画面に表示するプログラム
問題3:キーボードから入力させた長さの同じ文字列2つを1文字ずつ交互に1つの文字配列に格納し表示する
0457デフォルトの名無しさん
2010/12/13(月) 06:42:41問題1
http://ideone.com/kyTvb
0458デフォルトの名無しさん
2010/12/13(月) 06:59:17ざっとコードみた感じだと距離計算で絶対値計算は不要だよな(どうせ2乗する)
単純なことだけどループの最深部だから多少の効果は望めそうだ
0459デフォルトの名無しさん
2010/12/13(月) 09:51:47言語:C++で書いておきました。
http://codepad.org/Id8rOmIz
0460デフォルトの名無しさん
2010/12/13(月) 10:17:24>私の環境 PenIII 866MHz では、
未だにこんな古い環境(もう10年以上前)を使っているという事は
◆QZaw55cn4cは新しいマシンも替えないニート
しかも古いPCなので多分30才を過ぎている中年ニートか
下手をすると35才位か?
0461デフォルトの名無しさん
2010/12/13(月) 10:30:32うちの会社では367MHzのノート(Fujitu)が
当たり前に動いているけどな。
ただし、FedoraCore5くらいかな。
0462デフォルトの名無しさん
2010/12/13(月) 11:06:50パーソナルユーズのOSならその程度で動いて当たり前なんだよな
糞Windows がアホみたいに重いのは新しいCPUを売るための戦略ではと考えていた頃が有りました
0463デフォルトの名無しさん
2010/12/13(月) 11:10:17と、コテを外した中年ニート◆QZaw55cn4cが吠えております
0464デフォルトの名無しさん
2010/12/13(月) 11:13:49こういう問題じゃくそ遅いものしか書けないんだろうな
0465デフォルトの名無しさん
2010/12/13(月) 11:22:14もう引退じゃね?w
0466デフォルトの名無しさん
2010/12/13(月) 12:47:43こちらでどうぞ。
http://hibari.2ch.net/test/read.cgi/tech/1289715349/
0467デフォルトの名無しさん
2010/12/13(月) 13:24:25つい最近までPenPro200使ってた
0468デフォルトの名無しさん
2010/12/13(月) 13:26:330469デフォルトの名無しさん
2010/12/13(月) 18:02:42[2] 問題文(含コード&リンク):地図データ map.dat を読み込み、ディスプレイに表示するプログラムを書きなさい。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:cygwin
[3.3] 言語: C++
[4] 期限: 12月14日
[5] その他の制限: 構造体を用いてカーナビゲーションを作る課題です。
map.datの中身は以下のとおりです
1 0.0 0.0 H 2 2 4 0 0
2 -0.6 0.15 D 3 1 3 11 0
3 -0.83 0.0 K 4 2 4 9 10
4 -0.6 -0.38 O 3 1 3 5 0
5 -0.38 -0.68 M 3 4 6 7 0
6 6.0 -0.3 T 1 5 0 0 0
7 -0.18 -1.02 U 2 5 8 0 0
8 -0.84 -1.58 N 3 7 9 18 0
9 -0.9 -0.98 V 2 3 8 0 0
10 -0.98 0.51 R 3 3 11 13 0
11 -0.78 0.3 P 3 2 10 12 0
12 -1.28 0.68 E 2 11 13 0 0
13 -1.32 0.53 I 4 10 12 14 15
14 -1.8 0.98 C 2 13 20 0 0
15 -1.43 -0.15 J 2 13 16 0 0
16 -1.73 -0.26 P 3 15 17 0 0
17 -1.8 -1.43 W 3 16 18 19 0
18 -1.2 -1.73 S 2 8 17 0 0
19 -2.48 -1.2 Z 2 17 20 0 0
20 -2.33 -0.51 B 3 14 16 19 0
0470デフォルトの名無しさん
2010/12/13(月) 18:20:51突っ込み待ちなんだろうが、
どこから突っ込んでいいのかすらわからない。
誰か頼む!
0471デフォルトの名無しさん
2010/12/13(月) 18:26:29適当な解釈
座標ID
x座標
y座標
シンボル
連結する座標IDの数
連結する座標ID1
連結する座標ID2
連結する座標ID3
連結する座標ID4
これを画面に表示する
0472デフォルトの名無しさん
2010/12/13(月) 18:29:45[2] 問題文(含コード&リンク):http://www.nuis.ac.jp/~nakada/lectures/ai/report.pdf
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:?
[3.3] 言語:C++
[4] 期限:2010年12月19日24:00まで
[5] その他の制限:課題No1.1で、どの探索法でも良いのでお願いします。
0473デフォルトの名無しさん
2010/12/13(月) 18:30:13すいません
交差点番号
交差点座標
交差点名称 (一文字)
隣接交差点数
隣接交差点番号
です
0474デフォルトの名無しさん
2010/12/13(月) 18:36:55後は【ディスプレイに表示】っていうのが、
Win32APIを使うのか、X Windowなのかがはっきりしないね。
0475デフォルトの名無しさん
2010/12/13(月) 18:40:47どちらかはわからないのですが、Crossingを使うように指定がありました
0476デフォルトの名無しさん
2010/12/13(月) 19:09:28お小遣い程度でも稼いだ方がマシかもしれんが
0477デフォルトの名無しさん
2010/12/13(月) 19:11:15どうしたんだ?何か嫌なことでもあったのか?
まぁ、元気だせよ。
0478デフォルトの名無しさん
2010/12/13(月) 19:11:52これっておかしいよね?
16 -1.73 -0.26 P 3 15 17 0 0
0479デフォルトの名無しさん
2010/12/13(月) 19:50:14Pというシンボルだけ、2座標に割り当てられているね。
0480デフォルトの名無しさん
2010/12/13(月) 19:51:200481デフォルトの名無しさん
2010/12/13(月) 20:00:58データはこれと似てるな
0482デフォルトの名無しさん
2010/12/13(月) 20:59:10ありがとうございました。
0483デフォルトの名無しさん
2010/12/13(月) 21:08:16[2] ∫_0^π?sinxdxにおいて2m=4とし、 10分割した際の数値積分をシンプソンの公式により求めなさい
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio 2010
[3.3] 言語:C++
[4] 期限:明日の朝7:00まで
[5]お願いします
0484デフォルトの名無しさん
2010/12/13(月) 21:26:32すいません、打ち間違えてました。
正しくは
16 -1.73 -0.26 P 3 15 17 20 0
です
どなたかお願いします
0485デフォルトの名無しさん
2010/12/13(月) 21:30:04題:BMPの横幅はなぜ4の倍数でないとならないのか?
この問題で2週間悩み続けてて色々と調べてるのですが答えにたどしつけません・・・よろしくお願いします。
0486デフォルトの名無しさん
2010/12/13(月) 21:33:332m=4って何?もう少し詳しく説明して
手持ちの科学技術計算の本を2冊読んだが2mとか出て来ない
「IBM やマイクロソフトをはじめとする仕様策定者がそういう仕様にした」
としかいいようがありませんが、4 バイト = 32 bit ですから、32 bit のシステムにとって効率がいい、とかその手の可能性があるのかもしれません。
私もよくわかりませんが。
0488デフォルトの名無しさん
2010/12/13(月) 21:42:25お返事ありがとうございます。
32bitシステムの関係でしたか・・・ありがとうございます。
他にもわかる方いましたらご意見お待ちしています。
0489デフォルトの名無しさん
2010/12/13(月) 21:45:400490デフォルトの名無しさん
2010/12/13(月) 21:53:30横幅って、ピクセルのことかな?
だったら、1ピクセルから作れるんじゃないの?
0491デフォルトの名無しさん
2010/12/13(月) 21:55:35>>483
2m=4を無視してうpしたから、2m=4の詳しい意味が分かれば
改めてプログラムを書くので説明してください
0492デフォルトの名無しさん
2010/12/13(月) 21:59:171ピクセル・・・?
できれば詳しい説明お願いします。
0493デフォルトの名無しさん
2010/12/13(月) 22:22:000494デフォルトの名無しさん
2010/12/13(月) 22:32:13画素の最小単位なんだが。
色々調べた結果で、この言葉にぶつからないのが不思議
ググってみれ。その方が勉強になる。
0495デフォルトの名無しさん
2010/12/13(月) 22:47:20何で作ればいいか分からなかったんだけど、Win32で作りました。
こんなイメージですかね。codepadが重いのでgist.githubへ上げました。
https://gist.github.com/738999
0496デフォルトの名無しさん
2010/12/13(月) 22:48:53ピクセルという所にはたどり着いたのですが横の長さが4の場合は4つのピクセルでできているということであってますかね?
ということはBMPを読み込むときは4ピクセルごとの読み込みを行うということですかね・・・
いちいちと質問して申し訳ないです。
0497デフォルトの名無しさん
2010/12/13(月) 23:00:48これはひどい
コピペ不能
0498デフォルトの名無しさん
2010/12/13(月) 23:02:45「ビットマップ」、「仕様」に加えて「パディング」も入れて検索してみれ
0499デフォルトの名無しさん
2010/12/13(月) 23:04:18>題:BMPの横幅はなぜ4の倍数でないとならないのか?
そんな事はない。最小サイズ1x1からBMPが作れる。
0500デフォルトの名無しさん
2010/12/13(月) 23:14:11ホントですね。ideoneも重いので下記に貼りなおしました。
上のほうのコピーと言うアイコンをクリックすると、
行番号の付かないウインドウが出るようです。
http://www.codeupload.com/1611
0501デフォルトの名無しさん
2010/12/13(月) 23:15:24これは4の倍数でないとき無理やり4の倍数にあわせるというものですよね?
もう何が何だかわからなくなってきましたがもうちょっと頑張ってみようと思います。
最小サイズ1*1の時のサイズは3バイトだと思うんですが何故問題ないのか教えていただけるとありがたいです。
0502デフォルトの名無しさん
2010/12/13(月) 23:19:530503デフォルトの名無しさん
2010/12/13(月) 23:32:190504デフォルトの名無しさん
2010/12/13(月) 23:37:28説明不足ですみません・・・。
24bitビットマップファイルという設定での質問です。
1ピクセルで3バイトなので4ピクセルで12バイト=4の倍数ってのはわかるんですが
画像の横幅が4の倍数(ピクセルが4の倍数?)でないといけない理由がわからなくて困っています。
0505デフォルトの名無しさん
2010/12/13(月) 23:42:05とっても遅ればせながらありがとうございました!!!!!
0506デフォルトの名無しさん
2010/12/13(月) 23:47:590507デフォルトの名無しさん
2010/12/13(月) 23:48:38WindowsBMPの仕様が決まったのは20年以上前だけど、その頃のPCは
処理速度が遅かったため、少しでもデータ転送を高速化する必要があった。
当時の最先端のCPU(80386とか)は、4バイト単位でデータを転送する時が
最高速だったので、それに合わせる形で非圧縮のWindowsBMP(DIB)の仕様は
1ラインのデータ長を4の倍数(バイト)とすることに決まった。
例えば24ビットカラーBMPで、水平方向画素数が1ピクセルの場合
画像1ライン当たりの情報は3バイトだけど、これは4の倍数ではない。
そこでダミーの1バイトを後ろに付加して、1ラインのデータ長を4バイト境界に
合せなければいけない。
0508デフォルトの名無しさん
2010/12/14(火) 00:08:07やはりマイクロソフトが決めた仕様ということでFAですかね!
事細かに教えてくださってありがとうございました。
0509デフォルトの名無しさん
2010/12/14(火) 00:19:130510デフォルトの名無しさん
2010/12/14(火) 00:38:11まさか俺じゃないよね・・・・・・
0511デフォルトの名無しさん
2010/12/14(火) 00:43:030513デフォルトの名無しさん
2010/12/14(火) 02:26:15ありがとうございます 講師の板書が汚いので何か勘違いしたかもしれません
助かりました
0514デフォルトの名無しさん
2010/12/14(火) 03:59:55[2] 問題文(含コード&リンク):
テキストファイルに保存された携帯電話データをコマンド選択により処理する
携帯電話情報管理プログラムを作成せよ
右のテキストファイルを左のように書き換える(昇順ソート)
2 SC-02B docomo 12 118 1 003SH softbank 12 139
3 IS03 au 13 138 → 2 SC-02B docomo 12 118
1 003SH softbank 12 139 3 IS03 au 13 138
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2010/12/14 17:00まで
[5] その他の制限:ポインタ、構造体、ファイル操作については学びました
また途中までのファイルはあります、よろしくお願いします
http://codepad.org/MVpUA7oT
0515デフォルトの名無しさん
2010/12/14(火) 07:22:59{
system("sort data.txt");
return 0;
}
0516デフォルトの名無しさん
2010/12/14(火) 09:03:18他は完成してると考えていいんだよな
眠いしやっつけ仕事
ttp://codepad.org/lE6iTeft
0517デフォルトの名無しさん
2010/12/14(火) 10:20:36他のは完成してます
どうもありがとうございました!
0518デフォルトの名無しさん
2010/12/14(火) 15:07:59[2] 問題文(含コード&リンク)
引数をとして、複数の文字列を格納した配列、
その文字列数、ある文字列aを与え、
aが複数の文字列を格納した配列中に見つかれば1を返し、
見つからなければ0を返す関数find_string()をつくれ。
ヒント
*複数の文字列を格納した配列の例
char x[2][10]={"south","north"};
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:12月15日
[5] その他の制限: なし
よろしくお願いします。
0519デフォルトの名無しさん
2010/12/14(火) 15:28:040520デフォルトの名無しさん
2010/12/14(火) 15:50:31#include <stdio.h>
#include <string.h>
int find_string(const char sa[][10],size_t n,const char*a)
{
while( n>0 ) {
if(strcmp(*sa,a)==0) return 1;
--n; ++sa;
}
return 0;
}
int find_string2(const char**sa,size_t n,const char*a)
{
while( (n>0) && *sa ) {
if(strcmp(*sa,a)==0) return 1;
--n; ++sa;
}
return 0;
}
int main(void)
{
char x[2][10]={"south","north"};
const char *s[]={"south","north",0};
printf("find_string:%d\n",find_string(x,2,"east"));
printf("find_string:%d\n",find_string(x,2,"north"));
printf("find_string2:%d\n",find_string2(s,2,"west"));
printf("find_string2:%d\n",find_string2(s,2,"north"));
return 0;
}
0521デフォルトの名無しさん
2010/12/14(火) 17:23:55#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
char x[2][10] = {"south", "north"};
int find_string(char x[][10], int string_num, char* find_str)
{
int i,result=0;
char cmd[100], buff[100];
FILE* fp;
for(i=0; i<string_num; i++){
sprintf(cmd, "echo %s | grep %s | cat", x[i], find_str);
fp = popen(cmd, "r");
if(fgets(buff, 100, fp) != NULL){
result = 1;
break;
}
}
pclose(fp);
return result;
}
int main(void)
{
printf("so %s\n", find_string(&x[0], 2, "so") ? "found" : "not found");
printf("aa %s\n", find_string(&x[0], 2, "aa") ? "found" : "not found");
return 0;
}
0522デフォルトの名無しさん
2010/12/14(火) 19:13:510523デフォルトの名無しさん
2010/12/14(火) 19:31:41[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1299231.jpg.html
http://www.dotup.org/uploda/www.dotup.org1299230.jpg.html
http://www.dotup.org/uploda/www.dotup.org1299227.jpg.html
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ:gcc
[3.3] 言語:C
[4] 期限:2010年12月14日11:59まで
[5] その他の制限:特になし
小問が3問です。よろしくお願いします
0524デフォルトの名無しさん
2010/12/14(火) 19:48:06[2] 問題文(含コード&リンク)
問題15×5の正方形を表示をするプログラムを、 for 文を 使用して作成しなさい。ただし5は define マクロで NUM として使用すること。
問題2 8個の整数を格納する配列 cc を宣言し、宣言時に{ 1, 2, 3, 4, 5, 6, 7, 8 } で初期化しなさい。
また、これを同じサイズの配列 dd にfor 文を使って逆順にコピーしなさい。
最後に、ccとdd の内容を for 文を使って表示しなさい。
<実行例>
cc[0] = 1 dd[0] = 8
cc[1] = 2 dd[1] = 7
問題3 n 個の値を入れた配列を逆順に並べ替えるプログラムを作成しなさい。
(配列の要素は、100個分宣言しておきその先頭のn個を使用してください。)
<条件>
配列は1つしか使ってはいけません。
並び替えは、2値の入れ替え操作を行ってください。単なる配列を逆順にコピーするのはNGです。
また n はキーボードから入力します。
また、配列には 1...n のデータを入れておきます。
<実行例>
befor : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
after : 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:c
[4] 期限:12月15日
[5] その他の制限: なし
よろしくお願いします。
0525デフォルトの名無しさん
2010/12/14(火) 20:48:44さすがにこれは自分でやった方が良いと思うな
0526デフォルトの名無しさん
2010/12/14(火) 21:04:52期限切れてない?
0527デフォルトの名無しさん
2010/12/14(火) 21:08:490528523
2010/12/14(火) 21:21:50と言われたので、どうかよろしくお願いします
0529デフォルトの名無しさん
2010/12/14(火) 21:39:49問題1
http://codepad.org/LD3ZpwfS
>>523
非常に見にくい。以上。
0530デフォルトの名無しさん
2010/12/14(火) 21:49:36問題2
http://codepad.org/sM0f7rbJ
0531デフォルトの名無しさん
2010/12/14(火) 21:54:01>配列は1つしか使ってはいけません。
0532デフォルトの名無しさん
2010/12/14(火) 21:57:090533デフォルトの名無しさん
2010/12/14(火) 21:58:43問題3
http://codepad.org/xBSeJZH1
0534デフォルトの名無しさん
2010/12/14(火) 22:04:15[2] 問題文:三次元ベクトルx,yの内積を計算するプログラムを作成してください。ただし、Vector.h、Vector.cpp、Vectorクラスのオブジェクトを引数に持つ関数FUNCに分けて作ってください
[3] 環境
[3.1] OS:linux
[3.2] コンパイラ名とバージョン:g++
[3.3] 言語: C++
[4] 期限:12月15日
[5] その他の制限:なるべく簡単にしてください。アクセス指定子、public、private、コンストラクタ、デストラクタなどは習いました。
0535デフォルトの名無しさん
2010/12/14(火) 22:05:36[2] 問題文:addメソッドとsubメソッドを作成してください。
[3] 環境
[3.1] OS:linux
[3.2] コンパイラ名とバージョン:g++
[3.3] 言語: C++
[4] 期限:12月15日
[5] その他の制限:なるべく簡単にしてください。アクセス指定子、public、private、コンストラクタ、デストラクタなどは習いました。
0536デフォルトの名無しさん
2010/12/14(火) 22:25:30void sub(void){ ; }
0537デフォルトの名無しさん
2010/12/14(火) 22:26:00http://codepad.org/z2wy7Lkg
0538デフォルトの名無しさん
2010/12/14(火) 22:27:32悪いsubを忘れていた
http://codepad.org/x5S1KCtP
0539デフォルトの名無しさん
2010/12/14(火) 22:29:53分割コンパイルか
これはcodepadではうpできないな
0540デフォルトの名無しさん
2010/12/14(火) 22:39:37質問。
こういうコンストラクタの時、
Vector3d a[10];
見たいに、配列取る時はどう書けばいいの?
0541デフォルトの名無しさん
2010/12/14(火) 22:40:53その時はデフォルトコンストラクタを書いて、後からアクセサを通して
メンバに代入するようにする
当然constじゃだめだな
0542デフォルトの名無しさん
2010/12/14(火) 22:44:05Eclipse立ち上げて3分割してzipに固めるか
0543デフォルトの名無しさん
2010/12/14(火) 22:46:54Vector3d a[] = {Vector3d(1, 2, 3)};
でいいんじゃない
0544デフォルトの名無しさん
2010/12/14(火) 22:57:19題意通りファイル分割したよ
http://www.dotup.org/uploda/www.dotup.org1299572.zip.html
0545デフォルトの名無しさん
2010/12/14(火) 23:06:31そうだな
newと勘違いしてた
配列newはどうにもこうにも融通が利かないね
C#見たいに書ければいいのに
0546535
2010/12/14(火) 23:47:52元になるプログラムです。A、Bや数字には何かが入り、更に、どこかを訂正しないとクラス外から直接操作出来ないんです。
0547デフォルトの名無しさん
2010/12/14(火) 23:52:44[2] 問題文(含コード&リンク): http://ywata-lab.yz.yamagata-u.ac.jp/PDF/pro2-12-15.pdf
[3] 環境
[3.1] OS: Linux
[3.2] gcc
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 特になし
0548デフォルトの名無しさん
2010/12/14(火) 23:57:190549デフォルトの名無しさん
2010/12/15(水) 00:08:19http://codepad.org/8gahd0Ik
0550デフォルトの名無しさん
2010/12/15(水) 00:26:23#include <stdio.h>
#define PI 3.1415926535898
void calc_circle(double r, double *c, double *a)
{
*c=(r+r)*PI; /* 円周の長さを計算 */
*a=r*r*PI; /* 円の面積を計算 */
}
int main(void)
{
double radius = 3.0, circ, area;
calc_circle(radius, &circ, &area);
printf("半径 = %lf\n", radius);
printf("円周の長さ = %lf\n", circ);
printf("円の面積 = %lf\n", area);
return 0;
}
0551デフォルトの名無しさん
2010/12/15(水) 00:29:12文字数文の数を超える数の文字をキーボードから入力してないか?
文字数が10ならびったりの文字数をキーボードから入力汁
10なら許されるのは
#include <
ここまでであとの文字は無効
0552デフォルトの名無しさん
2010/12/15(水) 00:33:41明解で良い問題なんだから朝まで考えてみなよ
朝まで考えて君なりの回答を出せば、誤りは正してあげるよ
こんな入り口の問題で人を頼るのは何の意味も無いと思うんだ、この問題だけ解けば単位くれるとか言うなら別だけど
0553デフォルトの名無しさん
2010/12/15(水) 00:43:44さっさと答え書けクズ!
0555デフォルトの名無しさん
2010/12/15(水) 00:44:49クソして寝ろ
0556デフォルトの名無しさん
2010/12/15(水) 00:49:53>>552
>この問題だけ解けば単位くれるとか言うなら別だけど
これさえ解けば単位がもらえるという分けではありませんが、
解かなければ単位取得が難しくなってしまいます
0557デフォルトの名無しさん
2010/12/15(水) 00:50:270559デフォルトの名無しさん
2010/12/15(水) 01:07:20#include <stdio.h>
/* 文字列に含まれている英字小文字の数を数える関数 */
int count_small(char *str)
{
int cnt=0, i=0;
while (str[i] != '\0')
{
if (str[i] >= 'a' && str[i] <= 'z')
cnt++;
i++;
}
return cnt;
}
int main(void)
{
char *str1 = "AbCDeFg";
char str2[] = "hiJKlmN";
char str3[20] = "OpQrstu";
printf("%s: %d\n", str1, count_small(str1));
printf("%s: %d\n", str2, count_small(str2));
printf("%s: %d\n", str3, count_small(str3));
return 0;
}
0560デフォルトの名無しさん
2010/12/15(水) 01:09:53申し訳ありませんでも、それじゃ駄目だろ
0561デフォルトの名無しさん
2010/12/15(水) 01:10:17リハビリがてらやってみた
課題1: ttp://codepad.org/hsoyTXdc
課題2: ttp://codepad.org/LSBTHwTQ
課題3: ttp://codepad.org/aHs69Wi4
まとめ:ttp://www1.axfc.net/uploader/Sc/so/183559.zip
他に手がありません。
0563デフォルトの名無しさん
2010/12/15(水) 01:16:31文字列として表示するわけじゃないんだから\0の領域は今回は不要だろ
この頭の固い中年オヤジが
0565デフォルトの名無しさん
2010/12/15(水) 01:30:480566デフォルトの名無しさん
2010/12/15(水) 01:42:56%1s で読んでるから \0 が付く
0567デフォルトの名無しさん
2010/12/15(水) 01:52:530568デフォルトの名無しさん
2010/12/15(水) 05:01:32[2] 問題文(含コード&リンク):
指定した数の文字列をキーボードから入力し、
動的に確保した配列に格納し、配列の内容を画面に出力するプログラムを作成しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Borland
[3.3] 言語: C
[4] 期限: 2010年12月17日中
[5] その他: http://codepad.org/IiP7IEh7 に作ったプログラムがあります
コンパイルは通ったものの、文字列入力後固まってしまうのです
ご指摘よろしくお願いします。
0569デフォルトの名無しさん
2010/12/15(水) 05:17:42pt = (char**)calooc(num, sizeof(char*));
>for(i=0;i<num;i++){
> free(p[i]); //pt[i]が指す領域を開放
> free(p); //pが指す領域を開放
> }
for(i=0;i<num;i++){
free(p[i]); //pt[i]が指す領域を開放
}
free(p); //pが指す領域を開放
いろいろおかしいけど、とりあえず致命的なとこだけ
0570デフォルトの名無しさん
2010/12/15(水) 05:23:51早速のご指摘ありがとうございます
言われてみればその通りでして、無事実行できました。
どうもありがとうございました。
0571デフォルトの名無しさん
2010/12/15(水) 05:24:53惜しいね、あと1歩
http://codepad.org/SxUWkr6F
0572デフォルトの名無しさん
2010/12/15(水) 05:28:56吊ってくる
0573デフォルトの名無しさん
2010/12/15(水) 05:30:510574デフォルトの名無しさん
2010/12/15(水) 05:39:28int count_small(char *str)
{
int count = 0;
while (*str != '\0') {
if (islower(*str)) ++count;
++str;
}
return count;
}
'a'〜'z' の連続性が保証されてなくて ctype.h も strchr も使わない場合
int count_small(char *str)
{
static const char s[] = "abcdefghijklmnopqrstuvwxyz";
int count = 0;
const char *p;
while (*str != '\0') {
for (p = s; *p != '\0'; ++p) {
if (*str == *p) {
++count;
break;
}
}
++str;
}
return count;
}
つバッファオーバーラン
改行文字も読み込む。環境によっては n = 5 と入力しながら 3 文字しか入らないことがある。
0577デフォルトの名無しさん
2010/12/15(水) 07:39:35問題の指定に背いてサイズ大きくして、文字じゃなくて文字列で読み込むとかアホ過ぎる
なるほどね。
しかし scanf("%1s", ...) は一文字読み込むときの定石
0579デフォルトの名無しさん
2010/12/15(水) 07:52:520580デフォルトの名無しさん
2010/12/15(水) 09:24:30[2] 問題文(含コード&リンク)
引数をとして、複数の文字列を格納した配列、
その文字列数、ある文字列aを与え、
aが複数の文字列を格納した配列中に見つかれば1を出力し、
見つからなければ0を出力する関数find_string()をつくれ
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:12月15日
0581デフォルトの名無しさん
2010/12/15(水) 09:27:53{
int i,result=0;
char cmd[100], buff[100];
FILE* fp;
for(i=0; i<string_num; i++){
sprintf(cmd, "echo %s | grep %s | cat", x[i], find_str);
fp = popen(cmd, "r");
if(fgets(buff, 100, fp) != NULL){
result = 1;
break;
}
pclose(fp);
}
return result;
}
0582デフォルトの名無しさん
2010/12/15(水) 09:29:25>>520-521
0583デフォルトの名無しさん
2010/12/15(水) 09:33:32上にも同じようなのがあったのですが微妙に違うので・・・
上のものを少し改良すればいいのかもしれませんが初心者なのでわかりませんでした。
0584デフォルトの名無しさん
2010/12/15(水) 09:45:50お前どこまでもしつこいやっちゃなー
題意に沿えと言っているんだ
「文字数文の文字をキーボードから入力し」
どこにもバッファオーバーランの対策をしろとは書いてない
getchar()で文字数分ループを回せばオーバーランするはずもない
万事がこの調子であくまでも自分が正しいと思って回りの意見を
ことごとく無視して嫌われてるんだろうな
完全な自己愛性人格障害だな
0585547
2010/12/15(水) 10:01:10どなたかお願いします。
いままででた奴だと、アドレスが表示されない・・・
0586547
2010/12/15(水) 10:02:58追記で
入力した文字列において、文字を格納されているアドレスを一文字図津確認したいんですが・・・
0587デフォルトの名無しさん
2010/12/15(水) 10:21:22http://codepad.org/ZP1mxP9o
0588デフォルトの名無しさん
2010/12/15(水) 10:25:090589547
2010/12/15(水) 10:33:410590デフォルトの名無しさん
2010/12/15(水) 10:39:490591547
2010/12/15(水) 10:48:49: warning: the `gets' function is dangerous and should not be used.
一応実行できますが、アドレスもなにも表示されません。
0592デフォルトの名無しさん
2010/12/15(水) 10:51:05それエラーじゃなくてウォーニング(警告)
gets()は危ないから使うなと出ている
だけど宿題だから無視してよい
ちゃんと文字数を数字で入力し、その後文字をその文字数分入れてる?
0593デフォルトの名無しさん
2010/12/15(水) 10:52:11文字数 = 5[Enter]
abcde[Enter]
としてみ
0594547
2010/12/15(水) 10:56:360595デフォルトの名無しさん
2010/12/15(水) 10:58:45俺の所でもgccで走らせてみる
0596デフォルトの名無しさん
2010/12/15(水) 11:01:0600032C21 : 'b'
00032C22 : 'c'
00032C23 : 'd'
00032C24 : 'e'
こんなん出ましたけど
0597547
2010/12/15(水) 11:05:010598デフォルトの名無しさん
2010/12/15(水) 11:05:410599デフォルトの名無しさん
2010/12/15(水) 12:04:27[2] 問題文(含コード&リンク):
・問題1
C++のサンプルプログラム http://codepad.org/BAl4ALCV ついて答えなさい。
MyStackクラスのコンストラクタにメッセージ出力(*)を追加して、MyStackオブジェクトが実体化されたことがわかるようにしなさい。
実行結果のみ示しなさい。
・問題2
問題1の結果を、次のスタイルに書き換えなさい。
stack.h:http://codepad.org/uEkKWS5W (ファイル名はstack.hhでもOK)
stack.cpp:http://codepad.org/A0gHDv2g (ファイル名はstack.ccでもOK)
main.cpp:http://codepad.org/j3bzECYU (ファイル名はmain.ccでもOK)
ただし、main.cppの中身は自分なりに変えてみること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 2010年12月16日08:00まで
0600デフォルトの名無しさん
2010/12/15(水) 12:15:29問題文の(*)のところ但し書きがあると思うんだが、抜けてないか?
0601デフォルトの名無しさん
2010/12/15(水) 14:56:38[2] 問題文(含コード&リンク)
問題1
10個の要素を持つ配列 data を宣言し、先頭の要素から順番に1〜 10 までの整数を代入した後、表示するプログラムを for 文を 使用して作成せよ。
問題2 配列 va を定義して、 10,20,30,40,50 の値で初期 化し、その内容を表示するプログラムを作成しなさい 。
問題3
配列 va と配列 vb を宣言し、配列 va を 1,2,3,4,5 で 初期化し、その値を配列 vb にコピーした後、表示す るプログラムを作成しなさい。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:c
[4] 期限:12月16日
[5] その他の制限: なし
よろしくお願いします。
0602デフォルトの名無しさん
2010/12/15(水) 15:20:09ご指摘ありがとうございます。抜けておりました。
----- ----- ----- ----- -----
(*)例えば、次のようなコードに慣れること。
#include <iostream>
using namespace std;
または、
#include <iostream>
cout << "MyStack object instantiated!"<< endl;
これは、
printf ("%s\n", "MyStack object instantiated!");
と、同じである。
実行結果のみ示しなさい。
0603デフォルトの名無しさん
2010/12/15(水) 15:25:16問題1
http://codepad.org/BecRgEU1
0604デフォルトの名無しさん
2010/12/15(水) 15:28:37問題2
http://codepad.org/eLZ61an5
0605デフォルトの名無しさん
2010/12/15(水) 15:30:29問題3
http://codepad.org/uCNPtKNF
0606599
2010/12/15(水) 17:19:03[1] 授業単元:プログラミングとコンパイラ
[2] 問題文(含コード&リンク):
・問題1
C++のサンプルプログラム http://codepad.org/BAl4ALCV ついて答えなさい。
MyStackクラスのコンストラクタにメッセージ出力(*)を追加して、MyStackオブジェクトが実体化されたことがわかるようにしなさい。
(*)例えば、次のようなコードに慣れること。
#include <iostream>
using namespace std;
または、
#include <iostream>
cout << "MyStack object instantiated!"<< endl; これは、
printf ("%s\n", "MyStack object instantiated!"); と、同じである。
実行結果のみ示しなさい。
・問題2
問題1の結果を、次のスタイルに書き換えなさい。
stack.h:http://codepad.org/uEkKWS5W (ファイル名はstack.hhでもOK)
stack.cpp:http://codepad.org/A0gHDv2g (ファイル名はstack.ccでもOK)
main.cpp:http://codepad.org/j3bzECYU (ファイル名はmain.ccでもOK) ただし、main.cppの中身は自分なりに変えてみること。
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 2010年12月16日08:00まで
0608デフォルトの名無しさん
2010/12/15(水) 17:47:22usingは習った?
0609535
2010/12/15(水) 17:50:29using namespace std;
って習いました。
あと、文の一番最後に\nをつけるっていうのも習いました。
0610デフォルトの名無しさん
2010/12/15(水) 18:04:19じゃあ、#includeの後にusing namespace stdいれて、関数とかの頭にあるstd::は全部取っちゃって
0611デフォルトの名無しさん
2010/12/15(水) 18:07:30[2] 問題文(含コード&リンク):
http://www1.axfc.net/uploader/File/so/55622 ←問題文です
http://www1.axfc.net/uploader/File/so/55623 ←datファイルです
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:visual studio2005
[3.3] 言語: C言語
[4] 期限: 12月16日 午前9時まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
時間がありませんがよろしくお願いします
0612535
2010/12/15(水) 18:31:12わかりました
0613535
2010/12/15(水) 18:35:23friendとかInnerVector3dって何でしょうか
0614デフォルトの名無しさん
2010/12/15(水) 18:58:47http://codepad.org/jS5IJofL
0615デフォルトの名無しさん
2010/12/15(水) 19:00:41ttp://codepad.org/WxA35vUQ
0616デフォルトの名無しさん
2010/12/15(水) 19:10:37http://codepad.org/6COq3c53
この2つの文字化け部分がだいたいどのようなことを書いているかわかりませんか?
もともとの課題はこういうものでした。
1.例10.2 の2 を参考にして、以下のようなカレンダープログラムmycalを作成せよ。
◦引数なしで実行されると、今月のカレンダーを出力する
◦引数1個で実行されると、その引数を月とみなし、その年のその月のカレンダーを出力する
◦引数2個で実行されると、第一引数を月、第二引数を年とみなしてカレンダーを出力する。
2.例12.6 の2 に、練習問題12.6 の3 の変更を加え、さらに同様にしてべき乗(関数名power())も計算できるようにせよ。
>どこにもバッファオーバーランの対策をしろとは書いてない
上流仕様書マンセー乙
0618デフォルトの名無しさん
2010/12/15(水) 19:29:44InnerVector3dは中身りゃわかると思うけど内積だろ
出題の通りに直せばいんじゃね?
この場合のfriendはメンバ関数じゃない関数でクラス内部の非公開メンバにアクセスする指定
0619デフォルトの名無しさん
2010/12/15(水) 19:34:08元ソースをzipかなんかに圧縮して、どっかのローダに上げてくれんかの。
0620デフォルトの名無しさん
2010/12/15(水) 19:53:16一応2番についての例と練習をのせました。
http://www.dotup.org/uploda/www.dotup.org1300844.zip.html
0621デフォルトの名無しさん
2010/12/15(水) 19:58:390622デフォルトの名無しさん
2010/12/15(水) 20:03:35それ僕です。笑
課題2がわからない><
0623デフォルトの名無しさん
2010/12/15(水) 20:14:58jpeg上げてどうするよ。
もういいから取りあえずサクラエディタとか入れて見てみれば?
0624デフォルトの名無しさん
2010/12/15(水) 20:19:46問題の題意とプログラムから printf に書かれている内容を想像するんだ!
(`・ω・´) シャキーン
0625デフォルトの名無しさん
2010/12/15(水) 20:26:47取りあえず一番目の2行目はここまでは再現できた。
- 引数なしで実行さ
eucをsjisで開いてるみたい。
サクラエディタ入れてeucで開きなおすと読めんじゃないかな。
0626デフォルトの名無しさん
2010/12/15(水) 21:10:39[2] 問題文:
hドライブのogawaフォルダ配下のkyuuyo.datからデータを入力し、
そのデータを金額とした時の金種の一覧を表示するプログラムを
作成せよ。
但し、kyuuyo.datファイルはint型の複数データが格納されたバイナリファイルとする。
実行例
No| 給与 |一万円|五千円|千 円 |五百円|百 円 |五十円|十 円 |五 円|一 円|
--|----------------------------------------------------------------------------
1 | 419377 | 41| 1| 4| 0| 3| 1| 2| 1| 2|
2 | ・
3 | ・
4 | ・
5 | ・
6 | ・
7 | ・
8 | ・
--|----------------------------------------------------------------------------
|合計 | 737| 15| 49| 8| 42| 10| 32| 8| 49|
[3] 環境
[3.1] Windows XP
[3.2] visual stdio2005
[3.3] 言語: C++
[4] 期限: [2010年12月16日13:00まで]
[5] その他の制限: マス目付、#include <stdio.h>はじめでお願いしますm(_ _)m
0627デフォルトの名無しさん
2010/12/15(水) 21:13:12[2] 問題文(含コード&リンク):
次のコードのMRand()は31ビットのM系列乱数を生成する関数である。
http://codepad.org/rxOLtNr0
この乱数列を様々な角度から検証して、この乱数列の問題点を見出し、
問題点の内容を提出せよ。
可能であればその解決方法も合わせて提出せよ。
[3] 環境
[3.1] OS: windows,linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
0628デフォルトの名無しさん
2010/12/15(水) 21:15:58ヒント 611
0629デフォルトの名無しさん
2010/12/15(水) 21:43:00http://hibari.2ch.net/test/read.cgi/mac/1291602001/
プログラム言語に詳しい奴、ちょっと↑きてくれ。
0630535
2010/12/15(水) 22:17:39ありがとうございました。
0631デフォルトの名無しさん
2010/12/15(水) 22:46:06[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):正弦関数y=sinφのグラフを文字列■で描きなさい(31行程で)。グラフは一周期分で真ん中をy軸をlで区切ること。
[3] 環境
[3.1] OS: WindowsXP
[3.2] Visual C
[3.3] 言語: C
[4] 期限: [2010年12月16日09:00まで]
よろしくお願いします
0633デフォルトの名無しさん
2010/12/15(水) 23:42:16全角の■で描くのは面倒なので * で描いた、どうしても全角の■でなければならないのなら考える
31行で描くと間延びするので25行で描いたが、31行にしたい場合は Y_MAX を15にすれば良い
ttp://ideone.com/j35W9
0634デフォルトの名無しさん
2010/12/15(水) 23:45:43ああ既出だったー
ありがとー
0635デフォルトの名無しさん
2010/12/15(水) 23:47:07[1] 授業単元:画像処理プログラミング
[2] 問題文(含コード&リンク):任意の画像をRGB空間からからHSV空間に変換し
色彩、彩度、明度の値を表示すプログラムを作成しなさい
[3.1] OS: linux
[3.2] gcc
[3.3] 言語: C言語
[4] 期限: [2010年12月17日12:00まで
よろしくお願いします
0636デフォルトの名無しさん
2010/12/15(水) 23:53:34ありがとうございます。
確認してみた所、■は絶対だそうなので
お手数お掛けして申し訳ありませんが、■でお願いしたいです。
0637633
2010/12/15(水) 23:58:18考えたら | も全角にすれば良いだけの話だった
ideone が死んでるみたいだから codepad に張ったけど、sin() が無いって言われるのは何でだろう?
ttp://codepad.org/OxNBcsjF
0638デフォルトの名無しさん
2010/12/16(木) 00:18:10ありがとうございました!
0639デフォルトの名無しさん
2010/12/16(木) 01:00:20・画像の形式は何?
・全ての画素について、HSVの数値を計算するの?
・計算で得られたHSVの数値は、どのように画面表示されればよい?
0640デフォルトの名無しさん
2010/12/16(木) 01:09:36問題文がこのような感じで書かれていて
画像の形式なども指定されてませんすいません
数値はターミナル上に表示できればいいと思います
わからない事だらけですいません
0641デフォルトの名無しさん
2010/12/16(木) 07:54:2924ビットBMPファイルのみ対応
#pragmaで処理系依存(gccでは問題なし)
動くけど汚いから他の人待ち…
http://codepad.org/om8Y3MiX
0642デフォルトの名無しさん
2010/12/16(木) 07:55:24×:>>639
○:>>635
0643デフォルトの名無しさん
2010/12/16(木) 12:45:43[2] 問題文(含コード&リンク): 正弦関数y=sinφのグラフを文字列■で描きなさい。数値yに対応する■の数はウインドウ各行に表示しきれる範囲内で任意に定めてよい。グラフは一周期でy軸をlで区切りなさい
[3] 環境
[3.1] OS:WindowsXP
[3.2] VC
[3.3] 言語: C++
[4] 期限: 12月16日17:00まで
[5] その他の制限:
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int _tmain(int argc, _TCHAR* argv[])
{
double y[100];
int i, j, k;
for(i = 0; i < 62; i++){
y[i] = 10 * sin(0.1 * i);
}
for(i = 0; i < 31; i++){
for(k = 0; k < 10; k++){
printf(" ");
}
printf("l");
for(j = 0; j < y[i]; j++){
printf("■");
}
printf("\n");
}
この続きからお願いします
0644デフォルトの名無しさん
2010/12/16(木) 13:21:19-lmがオプション指定してないんだろ
0645デフォルトの名無しさん
2010/12/16(木) 14:12:19それは考えたんだけど、atan() の立場が無くなるので....
atan() は mathlib じゃないって事はないだろ?
0646デフォルトの名無しさん
2010/12/16(木) 14:24:05最初から書き直したいくらいの前半だが
どうしても続きからと言うならこうだろうか
ループ回数はちょっと変えさせてもらったが
http://codepad.org/7JukMZUK
0647デフォルトの名無しさん
2010/12/16(木) 14:24:59ありがとうございます、助かりました〜
0648デフォルトの名無しさん
2010/12/16(木) 14:26:04ありがとうございます
0649デフォルトの名無しさん
2010/12/16(木) 15:58:12ttp://sakef.jp/blog/2010/10/rgb2hsv/
0650デフォルトの名無しさん
2010/12/16(木) 16:02:01[2] 問題文(含コード&リンク): http://ideone.com/fQdK2
[3] 環境
[3.1] OS:macosx
[3.2] gcc
[3.3] 言語: C
[4] 期限: 12月20日
[5] 動作はするのですが、優先度付きキューを導入した理由、メリット、aスター探索内の意味がいまいち理解できないので説明してもらえないでしょうか
お願いします
0651デフォルトの名無しさん
2010/12/16(木) 19:55:07[2] 問題文:
配列によるスタックを実現する。出来るだけ簡単なアルゴリズムで
ポップとプッシュの操作が可能なプログラムを作れ。正し配列は100要素
程度とする。
[3] 環境
[3.1] OS:Unix Windows
[3.2] gcc
[3.3] 言語: C
[4]期限: 12月17日
[5]:よろしくお願いします。できるだけ簡単にお願いします。
0652デフォルトの名無しさん
2010/12/16(木) 20:06:23これでいいか?
http://ideone.com/ZihBZ
0653デフォルトの名無しさん
2010/12/16(木) 20:17:12ありがとうございます。
0654デフォルトの名無しさん
2010/12/17(金) 00:39:47[2] 問題文(含コード&リンク):ランダムな整数列を生成し、次の直接基数ソート
プログラムにより並べ替えるプログラムを作れ
直接基数プログラム
int i, j, pass, count[256];
for(pass = 0; pass < 4; pass++){
for(j = 0;j < 256;j++)
count[j] = 0;
for(i = 1;i <= n; i++)
count[bits(a[i],pass*8,8)]++;
for(j = 1;j < 256;j++)
count[j] = count[j-1] + count[j];
for(i = n; i >= 1;i--)
b[count[bits(a[i],pass*8,8)]--] = a[i];
for(i = 1; i <= n; i++)
a[i] = b[i];
}
[3] 環境
[3.1] unix
[3.2] gcc
[3.3] 言語: どちらでもよい
[4] 期限: 12月22日
[5] mainの中身もお願いします。
直接基数ソートとはランダムに出た数字を二進数に直し、順番に並び変える
プログラムです。
0655デフォルトの名無しさん
2010/12/17(金) 01:40:00[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1303140.jpg
http://www.dotup.org/uploda/www.dotup.org1303143.jpg
1枚目が問題文画像、2枚目がそのプログラムです。
2枚目画像のメインプログラム内で、・・・・で省略されている箇所を埋めて欲しいです。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C/C++
[4] 期限: 2010年12月20日17:30まで
[5] その他の制限:
http://ideone.com/7DRAO
↑に書けるところまでプログラムを書いたので、どうぞよろしくお願いします。
0656デフォルトの名無しさん
2010/12/17(金) 03:23:37bitsってマクロ関数だと思うんだけど、どういうもの?
>>655
外部ヘッダ"glibw32.h"ってこれで合ってる?
ttp://www.asahi-net.or.jp/~uc3k-ymd/Glib32/glibw32.html
0657デフォルトの名無しさん
2010/12/17(金) 03:28:15655ですが、glibw32.hはそちらで間違いないです。
お手数かとは思いますが、for文の中の・・・・だけでも、どうかよろしくお願いします。
0658654
2010/12/17(金) 03:39:51bitsとはたとえばbits([ai],b,1)のときは、配列a[i]のbビット目から
1ビット、という意味です。
できたら書いている直接基数ソートを使ってくれたらうれしいんですが、
必ず使う必要はないです。
0659デフォルトの名無しさん
2010/12/17(金) 04:35:31[2] 問題文(含コード&リンク):
クイックソートにより異なる15個の要素を配列するとき、比較回数の最小値と最大値求め、
そのときに与えた要素をそれぞれ答えなさい。
たとえば1、2、3、、、、15を与えると、105回となる。といったかんじです。
プログラムの提出はないです。
[4] 期限: 2010年12月17日13:00まで。
0660デフォルトの名無しさん
2010/12/17(金) 05:32:110661デフォルトの名無しさん
2010/12/17(金) 05:58:12http://codepad.org/Dm7JjAvK
○、△、□の描画ってのはよくわからんのだが、それでいいのか?w
0662デフォルトの名無しさん
2010/12/17(金) 07:53:56http://ideone.com/6lpb6
0663654
2010/12/17(金) 09:11:01[2] 問題文(含コード&リンク):直接基数ソートプログラムで、配列aとbの役割を
交互に替える(コピーをしない)プログラムを作れ。
[3] 環境
[3.1] unix
[3.2] gcc
[3.3] 言語: どちらでもよい
[4] 期限: 12月22日
[5] mainの中身もお願いします。
0664デフォルトの名無しさん
2010/12/17(金) 09:38:08同じ要素でもピボットの選び方で比較回数は変わると思うんだけど、指定はない?
0665デフォルトの名無しさん
2010/12/17(金) 09:48:52ピボット選択アルゴリズムの中の比較回数を別記するとか?
0666デフォルトの名無しさん
2010/12/17(金) 09:54:02合算してよい。
0667デフォルトの名無しさん
2010/12/17(金) 10:57:39プログラミングが苦手でどうしてもできそうにないので大学辞めます
情報工学ともおさらばです
0668デフォルトの名無しさん
2010/12/17(金) 11:02:490669デフォルトの名無しさん
2010/12/17(金) 11:07:21ピボットは、データ総数の中央値です!
0670デフォルトの名無しさん
2010/12/17(金) 11:11:25[2]問題文
料理のデータベースを作成し、複数のデータの中からカロリーが最大と最小の料理の全データを出力するプログラムを作成せよ
[3]
[3.1]Windows
[3.2]Visual Studio 2010
[3.3]C
[4]12/20
[5]各料理のデータは「番号、名前、カロリー」
料理とカロリーの値は適当でも可(ラーメン 10kcalとか)
よろしくお願いします
0671デフォルトの名無しさん
2010/12/17(金) 11:16:20再帰的だなぁ。
0672デフォルトの名無しさん
2010/12/17(金) 11:50:44データ構造の指定は無し?
struct dish[10] {
int id;
int name;
int cal;
}
みたいなのでもいいのかい
0673デフォルトの名無しさん
2010/12/17(金) 12:53:15[2]
・マウスを使って描画する
・BMP画像を表示する
・マウスで描画した部分だけ表示する
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: どちらでも可
[4] 期限: 無期限
[5] その他の制限:VC++6.0を使ってます。 問題の上二つまでは出来てます。
0674デフォルトの名無しさん
2010/12/17(金) 16:34:144.整列のアルゴリズムの
第p要素を選ぶSELECTとデータファイルselectdataを
それぞれプログラムソースselect.cとデータファイルselectdata.datとして同じユーザーディレクトリ
に保存して、cygwin上でコンパイル(gcc select.c)してもエラーは出ないですが、実行(a.exe)
とすると
6[main]a 4656_cygtls::handle_exceptionx:Error while dumping state(probably corrupted stack)
Segmentation fault (core dumped)
となります。
どうしたらいいでしょうか?
0675デフォルトの名無しさん
2010/12/17(金) 16:54:39前の回答者だが問題変わってねえか?
ヒューリスティック関数を使ってるみたいだけど
前回提示した優先度付きキューは基本的に循環キューだからそのままでは使えないよ
ちなみに前回書いたやつは
開始ノードを優先度「0」でキューに追加
*begin
node←キューから優先度の最も高い(数値の小さい)ものを取り出す
nodeに接続しているノードを探して優先度「nodeの優先度+1」でキューに追加
終了ノードに達するまで*beginから繰り返す
だったと思う
0676デフォルトの名無しさん
2010/12/17(金) 17:30:51[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: cygwinのgcc
[3.3] 言語: c言語
[4] 期限: 12月20日17:00まで
[5] その他の制限:
<基礎課題>
4変数の論理式からカルノーマップと簡略化した論理式を作成しなさい.
入力の論理式は文字列の配列とし,
const char* IN[] = {"Bcd", "Abcd", "aBc", "aB", "abC"}; // グローバル変数
ならば,
Bcd + Abcd + aBc + aB + abC (小文字は大文字の否定を表す)
の論理式のカルノーマップと簡略化した論理式
Acd + aB + aC
を表示する.
カルノーマップは表示方法を工夫しなさい.
<発展課題>
本講義では触れていないが,クワイン・マクラスキー法というものもある.
どのようなものか各自で調査し,同様にプログラムを作成しなさい.
という課題です。
よろしくお願いします
0677デフォルトの名無しさん
2010/12/17(金) 18:28:070678デフォルトの名無しさん
2010/12/17(金) 18:53:57http://codepad.org/Jl9uLX3vのプログラムを作成しましたが、0からでなく途中からしか表示されません。
教えてください。
0679デフォルトの名無しさん
2010/12/17(金) 19:04:190680デフォルトの名無しさん
2010/12/17(金) 19:14:06http://codepad.org/gM1ApotK
そういうときはパイプトレスを使え
0681デフォルトの名無しさん
2010/12/17(金) 19:56:59ありがとうございました!
0682デフォルトの名無しさん
2010/12/17(金) 20:13:00http://codepad.org/4WVt2eoI
起動しますが、↓のようになってしまいます。
文字数を入力:3
小文字変換は's',大文字変換は'd'と入力:1番目の文字を入力:s
2番目の文字を入力:3番目の文字を入力:
どなたか教えてくださいまし!
0683デフォルトの名無しさん
2010/12/17(金) 21:40:11scanf( "%d", &n ); に対して 3\n を入力すると、n に 3 が代入されるけど、stdin のバッファには \n が残ってる
その後に scanf( "%c", &moji ) を実行するとバッファの \n がmoji に代入されるから入力を待たずに復帰する
> 小文字変換は's',大文字変換は'd'と入力:1番目の文字を入力:s
この行はこれで説明が付くけど
> 2番目の文字を入力:3番目の文字を入力
こうはならない気がする
scanf は癖が有るので対話的入力を行うなら fgets() で一旦文字列として受け取ってから sscanf() で必要な項目を
抽出した方が良いと思うよ
char tmp[128];
fgets( tmp, 128, stdin );
sscanf( tmp, "%d", &n );
みたいな感じで
蛇足だけど scanf("%s",&str[i]); ではなく scanf( "%c", &str[i] ) じゃないかな、%s だとバッファオーバーランの可能性が生じる
0684デフォルトの名無しさん
2010/12/17(金) 22:09:56http://codepad.org/FpV5xj3Xに修正しましたが、同様の出力が見られました。
0685デフォルトの名無しさん
2010/12/17(金) 22:30:58一箇所だけ直しても駄目、例えばこんな感じ
ttp://codepad.org/aCjk8Knn
0686デフォルトの名無しさん
2010/12/17(金) 22:55:09ありがとうございます。
ただ、何故か大文字変換ができません。↓のように出力されます(小文字はできます)。
文字数を入力:2
小文字変換は's',大文字変換は'd'と入力:d
1番目の文字を入力:d
2番目の文字を入力:s
文字列:ss
変換後:SS
0687デフォルトの名無しさん
2010/12/18(土) 00:42:05なぜssになるんだ?bcc だとちゃんと ds -> DS になるよ
張ったコードを確認しようにも codepad が開かない、ハテ?
0688デフォルトの名無しさん
2010/12/18(土) 00:45:130689codepad
2010/12/18(土) 00:55:06自分たちで黄色いサル用のcodepad作ってください
0690デフォルトの名無しさん
2010/12/18(土) 03:25:27こういう感じでいいのかな
http://ideone.com/rtEGH
0691デフォルトの名無しさん
2010/12/18(土) 11:28:16[2] 問題文(含コード&リンク):キーボードからいくつかの浮動小数点を読み込み、そのうち正の数値だけの
合計を求めて表示するプログラムを作りなさい。数値の個数は事前には分からないものと
し、0が入力されたら、合計すべき数値が尽きたものとする。
[3] 環境
[3.1] OS: MAC OS X
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 12月20日
[5] その他の制限: ifとforを使ってください、よろしくお願いします
0692デフォルトの名無しさん
2010/12/18(土) 11:42:55int main(void)
{
double d, sum = 0.0;
printf("正の数値を入力して下さい。\n");
for (; scanf("%lf", &d) != EOF; )
{
if (d == 0.0)
{
break;
}
else if (d > 0.0)
{
sum += d;
}
}
printf("sum: %f\n", sum);
return 0;
}
0693デフォルトの名無しさん
2010/12/18(土) 11:45:55double型の変数をループカウンタに使うなカス
0694デフォルトの名無しさん
2010/12/18(土) 11:48:03>>678に言えよ
0695デフォルトの名無しさん
2010/12/18(土) 11:49:100696デフォルトの名無しさん
2010/12/18(土) 12:14:04forがifとしてしか機能してないけどいいのか
題意的な意味で
#include <stdio.h>
int main(void)
{
double indata, total=0.0;
for(; printf("INPUT(end:0) > "), scanf("%lf", &indata) != EOF; )
if(indata == 0.0) break;
if(indata > 0.0) total += indata;
printf("TOTAL = %g\n", total);
}
>>691
#include <stdio.h>
int main(void)
{
double indata, total=0.0;
printf("INPUT(end:0) > ");
for(; scanf("%lf", &indata) != EOF & indata != 0.0; )
if(indata > 0.0) total += indata;
printf("TOTAL = %g\n", total);
}
0699デフォルトの名無しさん
2010/12/18(土) 12:48:400700デフォルトの名無しさん
2010/12/18(土) 12:51:25回答をどうぞ
0701デフォルトの名無しさん
2010/12/18(土) 12:51:550702デフォルトの名無しさん
2010/12/18(土) 13:04:590703デフォルトの名無しさん
2010/12/18(土) 13:06:210704デフォルトの名無しさん
2010/12/18(土) 13:13:590705デフォルトの名無しさん
2010/12/18(土) 13:17:140706デフォルトの名無しさん
2010/12/18(土) 16:06:13できました!ありがとうございます!
0707デフォルトの名無しさん
2010/12/18(土) 21:34:25[2] 問題文(含コード&リンク):直接基数ソートプログラムで、配列aとbの役割を
交互に替える(コピーをしない)プログラムを作れ。
直接基数プログラム
int i, j, pass, count[256];
for(pass = 0; pass < 4; pass++){
for(j = 0;j < 256;j++)
count[j] = 0;
for(i = 1;i <= n; i++)
count[bits(a[i],pass*8,8)]++;
for(j = 1;j < 256;j++)
count[j] = count[j-1] + count[j];
for(i = n; i >= 1;i--)
b[count[bits(a[i],pass*8,8)]--] = a[i];
for(i = 1; i <= n; i++)
a[i] = b[i];
}
[3] 環境
[3.1] unix
[3.2] gcc
[3.3] 言語: どちらでもよい
[4] 期限: 12月22日
[5] mainの中身もお願いします。
0708デフォルトの名無しさん
2010/12/19(日) 00:11:47aとbが指す先の領域のサイズを明確にして。
bitsはこんな感じか?
#define bits(value, byte, bit) ((value >> byte) & ((1 << bit) - 1))
つーか、そもそもソートできてなくない?
aとbをポインタで宣言して、それぞれ別々の配列を指すようにして、アドレス値を入れ替えちゃ駄目?
- for(i = 1; i <= n; i++)
- a[i] = b[i];
+ do { int *t = a; b = a; a = t; } while (0)
0709デフォルトの名無しさん
2010/12/19(日) 00:22:32value < epsilonにしろってことかな。
どっちかというとindataと0.0がちゃんと同じbit数同士の比較になってるのかどうかが気になる。
0710707
2010/12/19(日) 00:33:12一応役割を変えないパターンが662です
0711デフォルトの名無しさん
2010/12/19(日) 01:02:39先頭に入るゴミは何だコンチクショー。
見なかったことにする。
@@ -30,9 +30,10 @@ void main(void) {
}
//直接基数ソート
-void radix_sort(int a[], int b[], int n) {
+void radix_sort(int aa[], int bb[], int n) {
//この中はいじってない
int i, j, pass, count[256];
+ int *a = aa, *b = bb, *t;
for(pass = 0; pass < 4; pass++){
for(j = 0;j < 256;j++)
@@ -43,8 +44,9 @@ void radix_sort(int a[], int b[], int n)
count[j] = count[j-1] + count[j];
for(i = n; i >= 1;i--)
b[count[bits(a[i],pass*8,8)]--] = a[i];
- for(i = 1; i <= n; i++)
- a[i] = b[i];
+ t = a;
+ a = b;
+ b = t;
}
}
0712デフォルトの名無しさん
2010/12/19(日) 13:43:05[2] 問題文(含コード&リンク):以下の課題をBinary search 関数の再帰呼び出しで実現しなさい。
0 から100 までの範囲で整数の乱数を1000 個発生させ、Bubble sort 関数で整列させた後、ターゲット整数を再帰で検索するBinary search 関数を作って下のプログラム(rbinsearch.c) を完成させなさい。
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:月曜日正午
[5] その他の制限:特になし
以下がソースコードで、「ここを作る」の部分を作成して頂きたいです!
http://codepad.org/PMNoJqAZ
0713デフォルトの名無しさん
2010/12/19(日) 14:31:23http://ideone.com/0AhbZ
0714デフォルトの名無しさん
2010/12/19(日) 15:19:32[2] 問題文(含コード&リンク):
問題1、三角形の面積を求めるプログラムまではできたのですが
↓このプログラムを負の値が入力されるまで繰り返すようにしたいのですがどうすればいいですか?
#include <stdio.h>
double get_area( int hankei);
int main(void)
{
double hankei,area;
printf ("半径");
scanf ("%lf",&hankei);
area = get_area(hankei);
printf ("面積=%lf\n",area);
return 0;
}
double get_area( int hankei)
{
double area;
area = hankei * hankei * 3.14;
return area;
}
問題2:実数を引数として値が0以上の場合には小数第一位を四捨五入した値を、負の場合には-1を整数型で
返す関数proud()を作成し動作の確認をする。
問題3:実数xを引数とし、数列an=1/n!(n=0,・・・9)を係数にもつ多項式f(x)=a0 + a1x + ・・・a8x^8 + a9x^9
の値を計算して返す関数をforループを用い作成しmain文の中から呼び出し動作を確認する。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:12/19
よろしくお願いします。
0715デフォルトの名無しさん
2010/12/19(日) 15:45:16ありがとうございます
0716デフォルトの名無しさん
2010/12/19(日) 16:16:370717デフォルトの名無しさん
2010/12/19(日) 17:13:07#include <stdio.h>
double get_area( int hankei);
>>714
問題1
int main(void)
{
double hankei,area;
while(1) { //追加
printf ("半径");
scanf ("%lf",&hankei);
if(hankei < 0.0) break; //追加
area = get_area(hankei);
printf ("面積=%lf\n",area);
} //追加
return 0;
}
double get_area( int hankei)
{
double area;
area = hankei * hankei * 3.14;
return area;
}
0718デフォルトの名無しさん
2010/12/19(日) 17:25:54問題2
int proud(double x) {return x < 0.0 ? -1 : x + 0.5;}
0719デフォルトの名無しさん
2010/12/20(月) 04:14:47同じ講義受けてるわ・・・
>>656,708
マクロ関数は
#define bits(p,q,t) (p>>q)&~(~0<<t) です
>>654のソートが
count[j]=0; の初期化以降どうゆうことをしてるのかよく分からないので
解説していただけるとありがたいのですが
0721デフォルトの名無しさん
2010/12/20(月) 06:42:16マージして c.html として出力するプログラムを誰か書いてください。
例;
<a.html>
<link>ホームページA
<link>ホームページB
<link>ホームページC
<b.html>
<link>ホームページA
<link>ホームページY
<link>ホームページZ
<diff.html>
<link>ホームページY
<link>ホームページZ
<c.html>
<link>ホームページA
<link>ホームページB
<link>ホームページC
<link>ホームページY
<link>ホームページZ
a.html と b.html の差分 diff.html
a.html に diff.html を追加し c.html
0722デフォルトの名無しさん
2010/12/20(月) 08:19:06その例の謎MLはなんなんだよwwwww
0723デフォルトの名無しさん
2010/12/20(月) 12:02:02にしてもこんな形式で保存されてるとはしらなんだ。
0724デフォルトの名無しさん
2010/12/20(月) 12:06:27まるで形式が違うから別の話だな。。。
0725デフォルトの名無しさん
2010/12/20(月) 12:57:39行単位でのマージならそんなに難しくないんじゃないか
0726デフォルトの名無しさん
2010/12/20(月) 13:05:17[2] 問題文
#include <stdio.h>
#include <stdlib.h>intmain( int argc, char *argv[] ){double v1, v2, v;char op;if( argc != 4 ) /* パラメータの数が正しくない */
{/* コマンドラインの書き方を表示する */
printf( "使い方 : 実数1 演算記号 実数2\n" );
printf( "\t演算記号は+, -, *, /,%のうちのいずれか\n" );
return( 1 );}
v1 = atof( argv[1] ); /* 実数1 */ v2 = atof( argv[3] ); /* 実数2 */op = *argv[2]; /* 演算記号 */
switch( op ) /* switch文を用いた場合分け*/{case '+' :v = v1 + v2;break;case '-' : v = v1- v2;break;
case '*' :v = v1 * v2;break;case '/': v = v1 / v2;break;case '%' :v =( v1 /v2 )* 100; break;default:printf( "%c: ?\n", op ); return( -1 ); break; }
printf( "%f %c %f = %f\n", v1, op, v2, v ); /* 結果の表示 */
return( 0 );
}
このプログラミングを改造
1.コマンドラインパラメータを用いずに、入出力で電卓を作る。
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:12月20日
[5] その他の制限:特になし
0727デフォルトの名無しさん
2010/12/20(月) 13:50:57全然難しくないけど、>>721の通りに作ってもダメだろうね。
0728デフォルトの名無しさん
2010/12/20(月) 14:06:05入力方法が示されていないので一番簡単な例
ttp://codepad.org/fSkzz56t
0729デフォルトの名無しさん
2010/12/20(月) 15:44:00[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1309111.txt.html
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] 言語:C
[4] 期限:2010年12月21日9:00まで
[5] その他の制限:なるべく簡単なコードで書いていただけたらと思います
よろしくお願いします
0730デフォルトの名無しさん
2010/12/20(月) 18:12:08bcc だと動くけど codepad だと Segmentation fault が出るなぁ、何故だろう?
ttp://codepad.org/jsOsCeO6
0731デフォルトの名無しさん
2010/12/20(月) 18:15:27リテラルに書き込みしてるからじゃね
0732デフォルトの名無しさん
2010/12/20(月) 18:46:10それだね、thanks
>>729
ちゅことで書き直した、' ' のサーチを2回行ってるのが馬鹿っぽいけど....
ttp://codepad.org/CaS3hUnj
0734デフォルトの名無しさん
2010/12/20(月) 19:10:09リテラル問題を解決すればstrtok使えるところだと思う。
strchrしてnullいれてるとこ。
0735デフォルトの名無しさん
2010/12/20(月) 19:27:53p = strchr( s, ' ' );
strncpy( person.name, s, p-s-1 );
person.name[p-s] = 0x00;
p++;
sscanf(
0736デフォルトの名無しさん
2010/12/20(月) 19:36:31それでいいなら %s でいいだろ
0737デフォルトの名無しさん
2010/12/20(月) 19:45:03たしかにそうすれば%sでいいかも。
0738デフォルトの名無しさん
2010/12/20(月) 19:48:33{
static PERSON person;
sscanf( s, "%[^ ] %c %d %lf %lf", person.name, &person.gender, &person.age, &person.height, &person.weight );
calc_bmi( person.height, person.weight, &person.bmi, &person.judge );
return person;
}
0739デフォルトの名無しさん
2010/12/20(月) 20:36:03俺はいつもそうしてる
0740デフォルトの名無しさん
2010/12/20(月) 23:34:08ありがとうございました
0741めぐ
2010/12/21(火) 11:24:21[2] 問題文(含コード&リンク):ポインタ配列を利用して、10個の単語を単語帳に。登録しておき、任意にいれた単語が、単語帳の中にあるかどうかチェックするプログラムを作成せよ。
[3] 環境
[3.1]
[3.2] gcc
[3.3] 言語:C
[4] 期限:2010年12月22日
[5] その他の制限:なし
0742デフォルトの名無しさん
2010/12/21(火) 12:46:09こうかな?
http://ideone.com/BKhEq
0743デフォルトの名無しさん
2010/12/21(火) 12:51:030744デフォルトの名無しさん
2010/12/21(火) 13:02:180745デフォルトの名無しさん
2010/12/21(火) 13:10:050746デフォルトの名無しさん
2010/12/21(火) 17:49:29[2] 問題文(含コード&リンク)
問題1 非負の整数値を読み込んで、その数を逆順に表示するプログラムを作成しなさい(while文または for文) [オプション機能(任意)] 負の数を読み込んだ場合は再入力を促すこと(do-while文)
<実行例>
非負の整数値を入力してください;-4673
負の値を入力しないでください。
非負の整数値を入力してください;12345
逆から読むと54321です。
<ヒント>
一の位の数字を求める方法
1963 % 10 -> 3
196 % 10 -> 6
19 % 10 -> 9
1 % 10 -> 1
問題2 30個目までのフィボナッチ数を順に計算し、その結果を順に配列 fib に格納しなさい。 また計算終了後に、 a_1, a_2, a_16, a_25 に相当する結果を表示しなさい。
<実行例>
a_01 = 1
a_02 = 1
a_16 = 987
a_25 = 75025
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:c
[4] 期限:12月22日
[5] その他の制限: なし
0747デフォルトの名無しさん
2010/12/21(火) 20:28:14[2] 問題文:ブックマークA,Bを合体してCにしろ。そういう処理のやつを書きなさい。
[3] 環境
[3.1] OS:リナックス
[3.2] コンパイラ名とバージョン: ジイシイシイ
[3.3] 言語:シイ言語
[4] 期限:12月22日
[5] その他の制限: うごけば何でもいい
0748デフォルトの名無しさん
2010/12/21(火) 20:49:400749デフォルトの名無しさん
2010/12/21(火) 22:27:45手でやりなよ。
0750デフォルトの名無しさん
2010/12/21(火) 22:48:580751デフォルトの名無しさん
2010/12/21(火) 22:50:420752デフォルトの名無しさん
2010/12/21(火) 23:36:36[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1311403.txt.html
[3] 環境
[3.1] OS:Windows
[3.2] Visual Studio 2008
[3.3] 言語: C++
[4] 期限: 12月22日17:00まで
[5] その他の制限: プログラムの動きををコメントでつけてください。
よろしくお願いします。
0753デフォルトの名無しさん
2010/12/21(火) 23:58:42なんだこれ。
0754デフォルトの名無しさん
2010/12/22(水) 02:35:16ttp://ideone.com/qyk01
0755デフォルトの名無しさん
2010/12/22(水) 02:57:32百個くらいあるときは、わかんなくなっちゃうんだよ・・・
0756デフォルトの名無しさん
2010/12/22(水) 03:21:480757デフォルトの名無しさん
2010/12/22(水) 03:25:24たった100個ならそれこそ手動が楽でいいよ。
出来ないのはエディタになれてないとかそういうレベル。
0758デフォルトの名無しさん
2010/12/22(水) 03:28:20STL使ってもいいならやってもいいけどCのみじゃちょっとやる気が起きない
フォルダの階層構造が深くなっていったらどうするんだとか
色々考えていくと自前で全部作るのはメンドくさすぎる
てか、これ宿題じゃないだろ
0759755
2010/12/22(水) 03:40:23もしかして、こういうプログラムって難しいほうなの?なにげに
0760デフォルトの名無しさん
2010/12/22(水) 03:43:09ただ、手でやったらすぐすむよと。
毎日毎日その作業をやるならプログラム書くけど、マってのはそういう人種。
0761755
2010/12/22(水) 04:01:370762デフォルトの名無しさん
2010/12/22(水) 05:10:100763デフォルトの名無しさん
2010/12/22(水) 05:20:27ブックマークのサンプルとかないの?
っていうか現物をアップしてくれ
0764デフォルトの名無しさん
2010/12/22(水) 07:19:40マスターならプログラミングぐらいマスターしろよw
0765デフォルトの名無しさん
2010/12/22(水) 08:26:240766デフォルトの名無しさん
2010/12/22(水) 16:25:29[2] 問題文(含コード&リンク):
http://nlp.dse.ibaraki.ac.jp/~shinnou/lecture/nl/rep3.pdf
(課題2のみ)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限: 2011年1月6日
[5] その他の制限:
資料↓
http://nlp.dse.ibaraki.ac.jp/~shinnou/lecture/nl/nlp10.pdf
できれば実行結果が問題文にあるものと同じになるようにお願いします。
0767デフォルトの名無しさん
2010/12/22(水) 17:24:350768デフォルトの名無しさん
2010/12/22(水) 18:08:500769デフォルトの名無しさん
2010/12/22(水) 18:29:37エントロピーゲインがどこで働くのかわからないな。
0770デフォルトの名無しさん
2010/12/22(水) 18:32:020771デフォルトの名無しさん
2010/12/22(水) 20:01:55エントロピーゲインが大きい属性に注目して、
その属性でデータを分類します。
0772デフォルトの名無しさん
2010/12/22(水) 22:13:56[2] 問題文(含コード&リンク):
例題11-1において、A~Dの学生それぞれに対し
第1回~第3回の小テストの平均点を求めるプログラムを作れ
なおA~Dそれぞれの平均点は、配列の宣言と生成double a[4]をしてから
この配列のa[0]から順に代入するようにせよ
[3] 環境
[3.1] OS: windows 7
[3.2] gcc
[3.3] 言語:C
[4] 期限: 12/23
[5] その他の制限:
上記の例題11-1は
4人の学生A,B,C,Dの3回のテストの点数が表のようになっている
表中の12個の点数の平均を求めよ
A 45 50 60
B 75 95 45
C 100 90 95
D 60 70 80
という問題です。
また例題11-1の回答は下記のURLのようになり
回答もこのレベルのものに合わせてもらえると幸いです
whileやbreak?は習っていません
http://codepad.org/Frb50Xcg
0773デフォルトの名無しさん
2010/12/22(水) 22:16:16[2] 問題文(含コード&リンク):
例題11-1において、第1回~第3回のそれぞれの小テストにおいて
4人の学生の平均点を出力するプログラムを作れ
なお第1回~第3回のそれぞれの平均点は配列の宣言と生成double b[3]とし
この配列に代入するプログラムとせよ
[3] 環境
[3.1] OS: windows 7
[3.2] gcc
[3.3] 言語:C
[4] 期限: 12/23
[5] その他の制限:
細かい事は>>722の[5]と同じです
レベルを合わせていただけると助かります
よろしくお願いします
0774デフォルトの名無しさん
2010/12/22(水) 22:21:21○ >>773
なお>>772の答えは
a[0]=51.666668
a[1]=71.666664
a[2]=95.0
a[3]=70.0
>>773の答えは
b[0]=70.0
b[1]=76.25
b[2]=70.0
になるようです
0775デフォルトの名無しさん
2010/12/23(木) 00:31:33http://codepad.org/4wxUvqyK
>>773
http://codepad.org/naolimto
0776デフォルトの名無しさん
2010/12/23(木) 01:56:21ありがとうございます
0778デフォルトの名無しさん
2010/12/23(木) 15:52:06[2] 問題文(含コード&リンク):
2つの4×4行列を2次元配列に格納し、それらの積を求めるプログラムを作成せよ。
以下の関数を必ず利用すること。
関数の引数の型では1次元目が空白になっているが、
main関数では4×4の通常の2次元配列を用いればよい。
[3] 環境
[3.1] OS:Windows7
[3.2] gcc
[3.3] 言語: C
[4] 期限: 2010年12月24日09:00まで
[5] その他の制限:void mult_array(int(*a0)[][4], int(*a1)[][4], int(*result)[][4])
a0,a1 入力された行列の値が格納された2次元配列のポインタ
result 演算結果の行列の値が格納された2次元配列のポインタ
戻り値 なし
●入力に関して
キーボードからまず、1つめの行列の1行目の4つの整数を
スペース1つをあけて1行で入力し、改行する。
以下同様に1つめの行列の2行目、3行目、4行目、
2つめの行列の1・・・4行目を入力する。
この一連の入力時、入力を促す文字などは決して表示しないこと。
●出力に関して
1行目に結果の行列の1行目をスペースを1つあけて特に整形せず数値のみ出力(+改行)。
以下同様に2行目、3行目、4行目を特に整形せず数値のみ出力する。
指定した数値・改行以外の文字などの出力は一切行わないこと。
0779デフォルトの名無しさん
2010/12/23(木) 16:07:090780デフォルトの名無しさん
2010/12/23(木) 16:14:30#include <stdio.h>
void mult_array(int (*a0)[][4], int (*a1)[][4], int (*result)[][4]);
#define N 4
#define COL 128
int main(void)
{
int i;
int a[N][N], b[N][N], c[N][N] = {{0}};
char buf[COL];
/* a[][]の入力 */
for (i = 0; i < N; i++) {
fgets(buf, COL, stdin);
sscanf(buf, "%d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3]);
}
/* b[][]の入力 */
for (i = 0; i < N; i++) {
fgets(buf, COL, stdin);
sscanf(buf, "%d %d %d %d", &b[i][0], &b[i][1], &b[i][2], &b[i][3]);
}
mult_array(&a, &b, &c);
/* c[][]の出力 */
printf("\n");
for (i = 0; i < N; i++)
printf("%d %d %d %d\n", c[i][0], c[i][1], c[i][2], c[i][3]);
return 0;
}
0781デフォルトの名無しさん
2010/12/23(木) 16:15:13void mult_array(int (*a0)[][4], int (*a1)[][4], int (*result)[][4])
{
int i, j, k, s;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++) {
s = 0;
for (k = 0; k < N; k++)
s += (*a0)[i][k] * (*a1)[k][j];
(*result)[i][j] = s;
}
}
0782デフォルトの名無しさん
2010/12/23(木) 16:45:06※VCで作ってみた。gccで動くかどうかは?
http://ideone.com/5TUCi
※datafile.txtの中身
0 0 0 0 1
0 0 0 0 0
1 1 0 0 1
1 2 1 0 1
1 2 2 1 1
0 2 2 1 0
1 1 2 1 0
0 0 1 0 1
1 0 2 1 1
1 2 1 1 1
1 0 1 1 0
1 1 1 0 0
1 1 0 1 1
0 2 1 0 0
0783デフォルトの名無しさん
2010/12/23(木) 17:19:55Study C Version 2.20a for windows 7/Vista/XP
で動くようにしたらどうなりますか?
厚かましくてすみません;;
0784デフォルトの名無しさん
2010/12/23(木) 17:56:28[2] 問題文(含コード&リンク):
2*3行列 X と3*4行列Yの積X・Yを計算、出力するプログラムを作成せよ
ただし、行列の要素は全て整数であると仮定する
(要素は標準入力で与える)
ヒント
行列の計算は3重ループ
行列の積が定義できないときはエラーを出力して終わる
[3] 環境
[3.1] OS:Windows7
[3.2] gcc
[3.3] 言語: C
[4] 期限 : 12月25日
[5] その他の制限
まだ習い始めたばかりなので出来るだけ簡単な文書いてもらえると助かります
よく使う文はfor,ifくらいでwhileは習っていません
0785デフォルトの名無しさん
2010/12/23(木) 17:58:32[2] 問題文(含コード&リンク):
2*2行列 X の逆行列を計算し、出力するプログラムを作れ
(公式を使って構わない)
ただし、行列 X の要素は全て浮動小数点型であるとする
要素の値は標準入力で与える
ヒント
逆行列が定義できないときはエラーを出力して終わる
[3] 環境
[3.1] OS:Windows7
[3.2] gcc
[3.3] 言語: C
[4] 期限 : 12月25日
[5] その他の制限
まだ習い始めたばかりなので出来るだけ簡単な文書いてもらえると助かります
よく使う文はfor,ifくらいでwhileは習っていません
0786デフォルトの名無しさん
2010/12/23(木) 17:59:56[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2画像A,Bを表示してその差分のみを表示するCを表示せよ
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:VC 6.0等
[3.3] 言語:どちらでも可)
[4] 期限: 2010年12月27日(17時迄)
画像 A, B の差分の画像 C を生成する、ということでいいですか?
あと画像のフォーマットは 24bit bmp / 8bit (256色) bmp でいいですか?
0788786 ◆GvcJDPcjoA
2010/12/23(木) 18:12:280789デフォルトの名無しさん
2010/12/23(木) 18:27:34Study Cって初めて聞いた。最近の大学はこんなの使ってるのか・・・。
適当にググってインスコしてみたが
(1)まず適当なフォルダを作成する。(C:\test とか適当に)
(2)その中に C言語のソース(名前はmain.cとか適当に)を保存する。
(3)datafile.txtを作成して、C言語のソースと同じ場所に保存する。
(4)StudyCを起動すると、コマンドプロンプトに似た画面が開く
(5)コマンドプロンプトでcd コマンドを使い、カレントディレクトリを (1)で作成したフォルダにする。
※cd c:\test みたいな感じで入力する。
(6)メニュー(ファイル/開く/新しいバッファ)を選び、(2)で保存したC言語のファイルを選ぶ。
(7)メニュー(実行/実行)を選ぶ。
(8)コマンド引数を指定しろ、とか言われるので datafile.txt と入力してOKボタン
カレントディレクトリを動かさないでやる方法もあるけど、とりあえずこんな感じ
0790デフォルトの名無しさん
2010/12/23(木) 18:56:57まじありがとう。
あなた様は神だ
0791デフォルトの名無しさん
2010/12/23(木) 19:04:45http://hibari.2ch.net/test/read.cgi/tech/1289715349/480
題意を取り間違えていたら訂正しますので試してみてください。
0793デフォルトの名無しさん
2010/12/23(木) 19:19:170794デフォルトの名無しさん
2010/12/23(木) 19:46:54ありがとうございます。
実行できました。
0795755
2010/12/23(木) 20:55:07http://codepad.org/bSt9bHT0
[1] 授業単元:ネットサーフィン
[2] 問題文(含コード&リンク):ウインドーズでもどっちでもうごくようにしなさい。
[3] 環境
[3.1] OS:リナックスとウインドーズ
[3.2] コンパイラ名とバージョン: ジイシイシイとビジュアルシイ
[3.3] 言語:シイ言語
[4] 期限 : 12月24日
[5] その他の制限:うごけば何でもいい
0796デフォルトの名無しさん
2010/12/23(木) 21:11:580797デフォルトの名無しさん
2010/12/23(木) 21:43:06[2] 問題文(含コード&リンク):
ttp://up3.viploader.net/pc/src/vlpc005607.jpg
ttp://up3.viploader.net/pc/src/vlpc005608.jpg
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限 : 12月24日
[5] その他の制限:手法通りにやっていただけると幸いです
0798デフォルトの名無しさん
2010/12/23(木) 21:49:31[2] 問題文(含コード&リンク):
リンク先の画像に問題文を載せています。
ttp://www.dotup.org/uploda/www.dotup.org1315077.jpg
[3] 環境
[3.1] OS: Windows
[3.2] gcc
[3.3] 言語: C
[4] 期限: 12月中
完全に数学の問題ですが、自分には理解が及ばず書けませんでした。
よろしくお願いします。
0799デフォルトの名無しさん
2010/12/23(木) 21:50:46[2] 問題文(含コード&リンク):
ttp://up3.viploader.net/pc/src/vlpc005607.jpg
ttp://up3.viploader.net/pc/src/vlpc005608.jpg
ttp://up3.viploader.net/pc/src/vlpc005609.jpg
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限 : 12月24日
[5] その他の制限:手法、ヒントを踏まえてやっていただけると幸いです
また罫線は半角でも構わないそうです
0800デフォルトの名無しさん
2010/12/23(木) 21:50:55この問題文ってJavaじゃね?
0801786 ◆VOf09yik56
2010/12/23(木) 21:54:41申し訳ありません、VC6.0ではexe形式で出て来ますがすぐ消えてしまいます。
どのようにしたらよいのでしょうか?
0803デフォルトの名無しさん
2010/12/23(木) 22:11:06貼り直します
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1315138.jpg
http://www.dotup.org/uploda/www.dotup.org1315140.jpg
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限 : 12月24日
[5] その他の制限:手法通りにやっていただけると幸いです
0804デフォルトの名無しさん
2010/12/23(木) 22:12:42[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1315144.jpg
http://www.dotup.org/uploda/www.dotup.org1315145.jpg
http://www.dotup.org/uploda/www.dotup.org1315146.jpg
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限 : 12月24日
[5] その他の制限:手法、ヒントを踏まえてやっていただけると幸いです
また罫線は半角でも構わないそうです
>>800
C言語のはずです・・・
0805デフォルトの名無しさん
2010/12/23(木) 22:36:25input.readLineとかBufferedReaderって書いてあるからJavaだよね
0806デフォルトの名無しさん
2010/12/23(木) 22:37:40>シングルクォート''で囲んでいる中身は
>全角のスペース' 'がGood!
C言語でこれ出来る?
0807デフォルトの名無しさん
2010/12/23(木) 22:49:17すみません、まだプログラミングに疎いものでよく分かっていませんでした
ヒントの部分を無視したら出来そうですかね?
0808デフォルトの名無しさん
2010/12/23(木) 23:13:00まさか出題する側も……という怖い考えが頭をよぎった。
0809デフォルトの名無しさん
2010/12/23(木) 23:22:01人同士の対戦で良いんだよね?
対戦の相手と交互に、例えば aA って入力してマスを指定する?
そのマスに置けるかどうかと、終了の判定の判定だけすれば良いね?
0810デフォルトの名無しさん
2010/12/24(金) 00:14:10ちゃんと理解していないのですがそれでお願いします
無知で申し訳ないです
0811デフォルトの名無しさん
2010/12/24(金) 00:37:10ttp://codepad.org/KcktWJi8
入力は Aa でも aA でも良い、縦がABCで横がabcね
変なとこが有ったら言ってちょ
0812デフォルトの名無しさん
2010/12/24(金) 02:25:43ありがとうございます
多分それで大丈夫だと思います
後はどなたか>>803もお願いします・・・
こちらはwhile文を使わずに書いて頂けると助かります
0813デフォルトの名無しさん
2010/12/24(金) 02:37:49forでやれってことでいいのか?
0814デフォルトの名無しさん
2010/12/24(金) 02:42:45はい
お手数かけますがよろしければお願いします
0815デフォルトの名無しさん
2010/12/24(金) 02:57:57#include <math.h>
int main()
{
const double r = 2;
const double r2 = r * r;
double x = 0, y = r;
double s = 0;
double n = 100;
double dx;
printf("分割数 : ");
scanf("%d", &n);
dx = r / n;
for (x = 0; x < r; x += dx) {
y = sqrt(r2 - pow(x, 2.0));
s += dx * y;
}
printf("面積 = %f\n", s);
return 0;
}
0816デフォルトの名無しさん
2010/12/24(金) 03:00:58台形だったのかよ
0817デフォルトの名無しさん
2010/12/24(金) 03:14:13#include <math.h>
int main()
{
const double r = 2;
const double r2 = r * r;
double x = 0, y0 = r, y1 = r;
double s = 0;
double n = 100;
double dx;
printf("分割数 : ");
scanf("%d", &n);
dx = r / n;
for (x = dx; x <= r; x += dx) {
y1 = sqrt(r2 - pow(x, 2.0));
s += (y0 + y1) * dx / 2.0;
y0 = y1;
}
printf("面積 = %f\n", s);
return 0;
}
直しました
あと、>>815のあほなとこも直しておきました
0818デフォルトの名無しさん
2010/12/24(金) 03:21:17ありがとうございます
理解出来ました!
0819デフォルトの名無しさん
2010/12/24(金) 08:53:38ひでーなw
0820デフォルトの名無しさん
2010/12/24(金) 08:55:49どの辺が?
0821デフォルトの名無しさん
2010/12/24(金) 09:03:27>for (x = dx; x <= r; x += dx) {
とくにこの辺が
0822デフォルトの名無しさん
2010/12/24(金) 09:08:28すいません
もう少し具体的にお願いします
0823デフォルトの名無しさん
2010/12/24(金) 09:13:49分割数によってはx==rにならないためにループ回数が不足する
0824デフォルトの名無しさん
2010/12/24(金) 09:17:28直しておいてもらえませんか?
0825デフォルトの名無しさん
2010/12/24(金) 09:18:580826デフォルトの名無しさん
2010/12/24(金) 09:28:410827デフォルトの名無しさん
2010/12/24(金) 09:33:110828デフォルトの名無しさん
2010/12/24(金) 09:35:29今年度に改定するときに忘れたんだろうか
0829デフォルトの名無しさん
2010/12/24(金) 09:38:48#include <stdio.h>
#include <math.h>
double f(double x) { return sqrt(4 - x * x); }
int main(void)
{
int i, n;
double r = 2.0, h, s;
for(n = 100; n <= 100000; n *= 10) {
h = r / n;
for(s = 0.0, i = 0; i < n; i++) s += (f(i * h) + f((i + 1) * h)) * h / 2;
printf("n = %-6d %f\n", n, s);
}
return 0;
}
0830デフォルトの名無しさん
2010/12/24(金) 09:57:09これはこれで画像ちゃんと見てないしww
0831デフォルトの名無しさん
2010/12/24(金) 10:03:40すいません
もう少し具体的にお願いします
0832デフォルトの名無しさん
2010/12/24(金) 10:10:19標準入力からと書かれているのに埋め込まれている
0833デフォルトの名無しさん
2010/12/24(金) 10:19:442枚目で標準入力からってなってるのは矛盾してるな
0834デフォルトの名無しさん
2010/12/24(金) 10:21:59直しておいてもらえませんか?
0835デフォルトの名無しさん
2010/12/24(金) 10:31:44苦痛だな。
0836デフォルトの名無しさん
2010/12/24(金) 11:37:070837デフォルトの名無しさん
2010/12/24(金) 13:54:53http://codepad.org/hVW2K4cs
行と列の数はマクロとして与えたので行列の積が定義出来ない事はあり得ないけど
もし標準入力から与える場合は判定が生きてくる
0838デフォルトの名無しさん
2010/12/24(金) 14:12:46http://codepad.org/sGO48OiI
2×2の行列なので逆行列を求めるのに掃き出し法を使わずに公式を使った
0839デフォルトの名無しさん
2010/12/24(金) 14:14:13printf("%f\n", d);
はデバッグの時に取り除き忘れたので取っておいてください
0840デフォルトの名無しさん
2010/12/24(金) 14:19:09もう一つバグ発見
printf("%d × %d 型の行列の積として定義されます。\n", L, N);
は
printf("%d × %d 型の行列の積として定義されます。\n", N, L);
の間違いです
0841デフォルトの名無しさん
2010/12/24(金) 16:26:090842デフォルトの名無しさん
2010/12/24(金) 17:52:00http://codepad.org/BKdbnPIZ
0843デフォルトの名無しさん
2010/12/24(金) 18:22:44もう少し分かりやすくきれいなソースでお願いします
0844デフォルトの名無しさん
2010/12/24(金) 18:42:520845デフォルトの名無しさん
2010/12/24(金) 18:43:190846デフォルトの名無しさん
2010/12/24(金) 20:15:48ありがとうございます!
0847デフォルトの名無しさん
2010/12/24(金) 20:36:43[2] 問題文(含コード&リンク):1辺の長さが2の正方形の中に半径1の円形の標的がある。この板に向かってランダムに弾を撃って、標的に
が入ったか否かを調べることで円周率を求める(モンテカルロ法)プログラムを作りなさい。
撃った弾の数をx、命中した数をyとする。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
[3.3] 言語: C++
[4] 期限:2010年12月27日 12:00
[5] その他の制限:以下の関数で宣言すること
1.(-1,-1)~(1,1)の範囲の弾を撃った位置(座標)を示す関数 zahyou
2.(-1,-1)~(1,1)の範囲の弾の命中した座標を設定する関数 settei
このとき、zahyou型の変数を引数を持ち、そのメンバに乱数を用いて
標的の命中した座標を一様乱数で設定すること。
3.弾の命中した位置が、円形の標的内か外かであるかを判定する関数 hantei
これもzahyou型の変数を引数に持っていること。また、当り(1)か否(0)かをint型で返すこと。
4.標的に命中した回数:m、外れた回数:kとして、その確率を返す関数 kaku
引数はint型、戻り値は確率としてdouble型で返すこと。
5.弾の数は変更できるようにすること。
0848デフォルトの名無しさん
2010/12/24(金) 21:21:34>1.(-1,-1)~(1,1)の範囲の弾を撃った位置(座標)を示す関数 zahyou
これって関数じゃなくて構造体じゃないの?
2.に「zahyou型の変数を」ってあるんだけど
0849デフォルトの名無しさん
2010/12/24(金) 21:41:42すいません間違えました
「構造体 zahyou」です
0850デフォルトの名無しさん
2010/12/24(金) 23:05:31http://codepad.org/BLeTY01B
0851デフォルトの名無しさん
2010/12/24(金) 23:09:310852デフォルトの名無しさん
2010/12/24(金) 23:12:110853デフォルトの名無しさん
2010/12/24(金) 23:38:551.(-1,-1)~(1,1)の範囲の弾を撃った位置(座標)を示す関数 zahyou
『例として、標的に命中したとき、その命中した位置のx-y座標は、double型であり、
(-1,-1)~(1,1)の範囲にある』
5.弾の数は変更できるようにすること。
『弾の数は構造体 zahyou 型の変数の数で設定できるようにすること。
例:struct zahyou bullet[100]; と宣言すれば、100本の弾がプログラム上に準備できる』
『』の文章を追加でお願いします
見落としていました すいません
0854デフォルトの名無しさん
2010/12/24(金) 23:41:310855デフォルトの名無しさん
2010/12/24(金) 23:43:040856デフォルトの名無しさん
2010/12/24(金) 23:51:30x = sizeof(bullet)/sizeof(zahyou) ;
0857デフォルトの名無しさん
2010/12/25(土) 03:33:130858デフォルトの名無しさん
2010/12/25(土) 14:02:36>>856の部分をどこに入れればいいのでしょうか?
0859デフォルトの名無しさん
2010/12/25(土) 14:10:09お前の尻の穴だよ
0860デフォルトの名無しさん
2010/12/25(土) 20:15:16気に障る事を言ったのなら謝ります
教えてください
x = sizeof(bullet)/sizeof(zahyou) ;
をどこに組み込めばいいんですか?
0861デフォルトの名無しさん
2010/12/25(土) 20:18:54x=なんてしてるとこなんて一箇所しかないんだからちょっとは自分で考えようぜ
0862デフォルトの名無しさん
2010/12/25(土) 21:20:20お前の尻の穴だよ
0863デフォルトの名無しさん
2010/12/26(日) 00:45:36> 例:struct zahyou bullet[100]; と宣言すれば、100本の弾がプログラム上に準備できる』
こうあるんだから、その変数をまず宣言する。
その宣言から、100本の弾数をどうやって取得するかが、書いてあるヒント。
ソースの中の
//標準入力から弾の数を入力する場合
とコメントされてる前後のところをよく読んで,考えてみるといい
0864デフォルトの名無しさん
2010/12/26(日) 03:00:090865デフォルトの名無しさん
2010/12/26(日) 04:06:59>>1
0866デフォルトの名無しさん
2010/12/26(日) 04:19:160867デフォルトの名無しさん
2010/12/26(日) 05:25:47指を折る
指の間接は3つあるから3ビットまで表現可能
2本あれば4ビット(2ビット分は使わない)で16進数になる
4本使えば0xFFまで表現可能
両手を使えば0xFFFFまで出来る
0868デフォルトの名無しさん
2010/12/26(日) 06:45:460869デフォルトの名無しさん
2010/12/26(日) 06:52:10実際にインドでは数字を数えるときに間接を使っている
0870デフォルトの名無しさん
2010/12/26(日) 10:28:55それちょっと詳しく知りたいな。
ちなみに、フランスでは指を使っての掛け算をするらしい。
昔家にあった百科事典に載ってたけどやりかた忘れた。
0871デフォルトの名無しさん
2010/12/26(日) 12:49:59フランス語で数の数え方が20進法に近いのは、手の指と足の指を両方使ってた
名残らしいな
両方で丁度20本
0872デフォルトの名無しさん
2010/12/26(日) 16:46:54一番先の間接だけ曲げるのと一番先と一番根元の間接を曲げるのが出来ません
どうすれば良いですか?
インドよりも我が愛すべき大日本帝国の数学のほうがはるかに進んでいるのですが、それでもインドを引き合いに出すはどういったわけですか。
0874デフォルトの名無しさん
2010/12/26(日) 18:23:26ほらまた出たよ自己愛性人格障害が
インド人は白人、つまりアーリア人だ
マイクロソフトの製品のいくつかもインドを拠点に作っている
一番多いのはユダヤ人だらけのイスラエルだが
日本国内に開発する場所はないでしょ?
0875デフォルトの名無しさん
2010/12/26(日) 18:43:310876デフォルトの名無しさん
2010/12/26(日) 18:59:52同等の能力程度じゃコストからして割に合わないからね
0877デフォルトの名無しさん
2010/12/26(日) 20:50:20発展性のない数学やってたし
そういや九九を99までやってるのはインドだっけ?
0878デフォルトの名無しさん
2010/12/26(日) 21:07:1819x19までじゃなかったっけ?
さうがに1万通りを覚えるのは無理でしょ
0879デフォルトの名無しさん
2010/12/26(日) 22:32:483年生の時分には三角関数を使って円を描く。
インド(諸語あるようだが)での記数法が20進法ならば 19x19 の九九は大いに意味があるが、実際は 10 進法であり 19x19 はオーバースペック。
覚えこむ必要のないものまでやって、他にやらなければならないことがおろそかになってやしないか?
10進法の世界では日本の九九が必要にして十分。
>>877
日本の数学界の活躍は私の語るところではないにしても、日本人は潜在的に九九と算盤の素養があり、計算能力は平均以上ではないか。
江戸時代の数学:和算についてはかなりのところまで西洋数学に追いついていたよう。
0881デフォルトの名無しさん
2010/12/27(月) 00:50:31さあ早く私の宿題を片付けるんだ。
というスレ一同の意見を代弁してあげようと思った。
0882デフォルトの名無しさん
2010/12/27(月) 01:07:010883デフォルトの名無しさん
2010/12/27(月) 01:08:040884デフォルトの名無しさん
2010/12/27(月) 03:05:49問)N個の文字列を入力すると文字列の長さが短い順、同じ長さの時は順不同、に
並べ替えて表すプログラムを作りなさい。
二次元配列とポインタ配列を使うらしいんですけど、コンパイル時にエラーばかり出てしまいます。
どなたか分かる方いらっしゃいますか?
0885デフォルトの名無しさん
2010/12/27(月) 03:20:58まず、>>1を読め
0886デフォルトの名無しさん
2010/12/27(月) 03:47:27#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
#include <iterator>
#include <functional>
using namespace std;
typedef vector< string > Container;
class compare_length : public binary_function< Container::value_type, Container::value_type, bool > {
public:
result_type operator () ( first_argument_type const &lhs, second_argument_type const &rhs ) const {
return lhs.size() < rhs.size();
}
};
int main() {
ifstream infile( "test.txt" );
Container vs;
string s;
while ( infile >> s ) {
vs.push_back( s );
}
stable_sort( vs.begin(), vs.end(), compare_length() );
copy( vs.begin(), vs.end(), ostream_iterator< Container::value_type >( cout, "\n" ) );
}
0887デフォルトの名無しさん
2010/12/27(月) 08:02:120888デフォルトの名無しさん
2010/12/27(月) 09:29:09ケツ出したら掘る彫るしてやんよ?
0889デフォルトの名無しさん
2010/12/27(月) 09:30:43ネトウヨってキモイんですねw まだ大日本帝国(笑)
ここは日本国ですよ?
0890デフォルトの名無しさん
2010/12/27(月) 20:44:17[2] 問題文(含コード&リンク):最初のセルをスタックに定義した場合の連結リストへの新規、追加、削除プログラムを作りなさい。
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限:明日の正午
[5] その他の制限: 特になし
ワケわからんとです…お願いします。
0891デフォルトの名無しさん
2010/12/27(月) 22:02:45セルって何?講義で出てこなかった?
0892デフォルトの名無しさん
2010/12/27(月) 22:13:30で、headなりrootなりをヒープではなくスタックに用意すると。
でも、C++でなら…ねぇ
0893デフォルトの名無しさん
2010/12/27(月) 22:53:39スタックを使わないバージョンを授業でやったんじゃないの?
0894デフォルトの名無しさん
2010/12/27(月) 23:21:47単なるポインターリンクをグローバル変数を使用せずに実装しろって意味なのかな?
グローバル変数を使用した場合と異なるのは root のアドレスを引数に追加するだけだと思うけど、
題意に沿うならグローバル変数を使用した例を修正したコードを提出すべきだろうな
新規:ポインターリンクの最後に追加
追加:既存要素の次に挿入
削除:既存要素の削除
だと思うけど、追加と削除で既存要素はどの様に指定するの?インデックス?ポインター?要素の数値?
0895デフォルトの名無しさん
2010/12/27(月) 23:51:44まあ宿題だから仕方ないんだろうけどさw
0896デフォルトの名無しさん
2010/12/28(火) 00:02:000897ハル
2010/12/28(火) 00:06:41[2] 問題文(含コード&リンク):
1.「逆ポーランド記法で書かれた式を入力させ、計算結果を出力するプログラムを作れ」
2.「qが入力されるまで動作を繰り返すこと」
3.「指定のスタックのプログラムを利用し、stack.hを各自で用意。構造体の定義も移動せよ」
4.「使用できるのは四則演算と=のみ」
5.「=はスタックの一番上の要素を表示するためのもの」
以上を満たせばどんなものでもok
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン: vc++ 2005
[3.3] 言語: C++
[4] 期限:来年の7日
[5] その他の制限: 特になし
以下指定のスタックのプログラムになります。
30時間頑張ったんですが、ことごとくビルドに失敗し、心が折れました。
自慢じゃありませんが、あまり頼れる人脈もなくて……どうかおねがいします
0898ハル
2010/12/28(火) 00:10:07/stack.c/
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include"stack.h"
int main()
{}
void make_empty(Stack *s){
s->top = 0;}
int is_empty(const Stack *s){
return s->top == 0;}
int is_full(const Stack *s){
return s->top == STACK_SIZE;}
void push(Stack *s, int i){
if(is_full(s)) {puts("Overflow!");exit(EXIT_FAILURE);}
else s->contents[s->top++] = i; }
int pop(Stack *s){
if(is_empty(s)) {puts("Underflow!");exit(EXIT_FAILURE);}
else return s->contents[--(s->top)];}
0899ハル
2010/12/28(火) 00:11:02/stack.h/
#ifndef STACK_H
#define STACK_H
#define STACK_SIZE 100
typedef struct{
int contents[STACK_SIZE];
int top = 0;
}Stack;
void make_empty(Stack *s);
int is_empty(const Stack *s);
int is_full(const Stack *s);
void push(Stack *s, int i);
int pop(Stack *s);
#endif
0900デフォルトの名無しさん
2010/12/28(火) 02:03:010901デフォルトの名無しさん
2010/12/28(火) 02:08:35>>896
0902デフォルトの名無しさん
2010/12/28(火) 02:19:420903デフォルトの名無しさん
2010/12/28(火) 13:14:47しないよりいいかも
0904加奈子
2010/12/29(水) 01:19:38[2] 問題文(含コード&リンク):
トランプゲーム・ページワンを作成せよ。
動作はコマンドプロントの上でのみ。
カードの表示は1ならa、11ならjとする。
参考:http://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%AF%E3%83%B3
[3] 環境
[3.1] OS:windows
[3.2] VC++
[3.3] 言語: C
[4]期限:無し
[5] その他の制限:無し
0905加奈子
2010/12/29(水) 01:22:33コンピューターの思考など、まったくわかりません。
どなたか助けてください。
0906デフォルトの名無しさん
2010/12/29(水) 04:27:54夢も見るのかな?
0907デフォルトの名無しさん
2010/12/29(水) 04:40:55ちょっと規模の大きなプログラムになりそうだけど本当に制限無し?
あとでひっくり返されるとイラっとくるくらいは物量ありそうだけど
0908デフォルトの名無しさん
2010/12/29(水) 04:42:090909デフォルトの名無しさん
2010/12/29(水) 05:01:490910デフォルトの名無しさん
2010/12/29(水) 05:03:19最低限のコードなので好きに弄ぶがよろし
ttp://codepad.org/QE2fluSC
0911デフォルトの名無しさん
2010/12/29(水) 05:11:59手を見せ合ってたらゲームにならないから対人ゲームではないと思う、まさかの通信対戦?
コンピュータの手番に何かする処理は必要でしょ
手札リストを最初からチェックして出せるカードが見つかったら出すって処理でも良いと思う
そもそもページワンなんてガキの頃以来やってないからコツや戦略なんて解んないよね
0912デフォルトの名無しさん
2010/12/29(水) 05:41:51それにBOTを一つ。これでいいのかな。
コマンドプロンプトの上でのみ、というのが謎だけど。
0913デフォルトの名無しさん
2010/12/29(水) 06:00:44ゴタクはいいから、さっさと作れよデブ
0914デフォルトの名無しさん
2010/12/29(水) 06:11:01一応書いたけど表示に難が有るなぁ、トランプのマークって文字に無いのかなぁ
以下の点に注意
・コンピュータとプレイヤーの一対一対戦
・s,c,h,d がスペード〜ダイヤを表す、桁数を揃えたかったので10は+とした
・相手のカード(裏向き)、場に捨てられたカード、プレイヤーのカードの順で表示、各人のターン毎に再表示
・プレイヤーが先行で左端のカードを1とした番号を入力、山から引く場合は0以下を入力
・カードを先に捨てきれば勝ち、また最終山札を引いた方が負け
・ドロウ2やワイルドカード等のUNOチックなルールは一切無し(こんなルール俺が子供の頃は無かったなぁ)
ttp://codepad.org/zbRW6qyx
0915デフォルトの名無しさん
2010/12/29(水) 08:49:07ユニコードにはマークあるっぽいけどコマンドプロンプトじゃ出せないよなぁ
0916デフォルトの名無しさん
2010/12/29(水) 10:15:430917加奈子
2010/12/30(木) 00:14:34なんとかなりそうです。
これから頑張って説明付けて、理解できるようにします
0918デフォルトの名無しさん
2010/12/30(木) 19:35:34[2] 問題文:
5*5の' 'と'#'の2文字から構成される二次元配列のtxtファイルを読み込み、
'#'を1,' 'を0と表示させるプログラムを作成せよ
[3] 環境
[3.1] OS:Windows
[3.2] VC++
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:特になし
よろしくお願いします><
0919デフォルトの名無しさん
2010/12/30(木) 21:56:02[2] 問題文(含コード&リンク):
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://ideone.com/v82fx
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン: vc++ 2010
[3.3] 言語: C
[4] 期限:来年の1日
[5] その他の制限: 特になし
・・・どうかお願いします
0920デフォルトの名無しさん
2010/12/30(木) 22:02:04ライフゲームかよ
0921デフォルトの名無しさん
2010/12/30(木) 22:30:53初期状態の指定は?
0922デフォルトの名無しさん
2010/12/31(金) 01:38:38[2] 問題文:
3-gramでマルコフ連鎖を使って文章を生成、会話を行えるようにする。
[3] 環境
[3.1] OS:Windows
[3.2] VC++
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:特になし
2-gramまでは分かるのですが3-gram以降になるとどう組んで良いのか分かりませんでした。よろしくお願いします。
0923デフォルトの名無しさん
2010/12/31(金) 01:42:23http://ideone.com/Dueu8
です
0924デフォルトの名無しさん
2010/12/31(金) 03:17:10[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1330457.txt
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] 言語: C
[4] 期限:2011年1月2日
よろしくお願いします。
0925デフォルトの名無しさん
2010/12/31(金) 05:01:04適当に書いたので検証はしてくれ。
int check(const char* str) {
const char num[] = "0123456789";
int i, l, e;
if(str == 0 || *str == '\0') return 0;
if(*str == '+') {
if(*++str == '\0') return 0;
} else if(*str == '-') {
if(*++str == '\0') return 0;
}
l = 0;
while(*str != '\0') {
e = 1;
for(i = 0; i < 10; i++) {
if(*str == num[i]) {
e = 0;
l++;
break;
}
}
if(e) return 0;
if(8 < l) return 0;
str++;
}
return 1;
}
0926デフォルトの名無しさん
2010/12/31(金) 05:02:39int sign(const char* str) {
const char num[] = "0123456789";
int res, e, i;
if( str == 0 || *str == '\0') return 0;
res = 1;
if(*str == '+') {
if(*++str == '\0') return 0;
} else if(*str == '-') {
res = -1;
if(*++str == '\0') return 0;
}
while(*str != '\0') {
e = 1;
for(i = 0; i < 10; i++) {
if(*str == num[i]) {
e = 0;
break;
}
}
if(e) return 0;
str++;
}
return res;
}
0927デフォルトの名無しさん
2010/12/31(金) 05:04:31/* エラーが起きたときの仕様が決まっていないので
戻り値でエラーを返し、引数で整数値を取得するようにする。 */
int myatoi(const char* str, int* res) {
const char num[] = "0123456789";
int s,v,i;
if(res == 0) return 0;
if(!check(str)) {
*res = 0;
return 0;
}
v = 0;
s = sign(str);
if(*str == '+') {
str++;
} else if(*str == '-') {
str++;
}
while(*str != '\0') {
for(i = 0; i < 10; i++) {
if(*str == num[i]) {
v *= 10;
v += i;
break;
}
}
str++;
}
*res = s * v;
return 1;
}
0928デフォルトの名無しさん
2010/12/31(金) 12:35:35''って何?
0929デフォルトの名無しさん
2010/12/31(金) 14:59:170930デフォルトの名無しさん
2010/12/31(金) 22:17:56http://ideone.com/IPqqz
こんな感じ?
遅くなってごめんなさい。
http://codepad.org/vsVpHSug
0932デフォルトの名無しさん
2011/01/02(日) 02:06:59[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/9.txt
要約すると、プログラムを見て問題文に従って出力結果をだすようにするというものです。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年1月6日23:59まで
[5] その他の制限: なし
よろしくお願いします
0933デフォルトの名無しさん
2011/01/02(日) 02:36:30*
**
***
****
*****
******
*******
********
*********
**********
こんな感じで表示したいんだけど、どうすればいいの?
0934デフォルトの名無しさん
2011/01/02(日) 03:00:430935デフォルトの名無しさん
2011/01/02(日) 03:12:41void print(char, int);
int main(void){
int i, N=10;
printf("10 ? ");
scanf("%d", &N);
for (i = 0; i < N; i++){
print(' ', N-i-1); /* 9,8,7,...,1,0 */
print('*', i+1); /* 1,2,3,...,9,10 */
puts("");
}
}
void print(char c, int n){
int i;
for(i = 0; i < n; i++)
putchar(c);
}
0937デフォルトの名無しさん
2011/01/02(日) 14:02:15[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
指定されたエクセルファイルの中にあるデータを読み込み
それぞれのデータの各列に列の番号の値を加えて
別のエクセルファイルとして出力せよ.
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:
問題の意味は1列目に+1、2列目に+2をしろということです
5 20 15 → 6 22 18
8 50 14 → 9 52 17
9 30 16 → 10 32 19
2 40 17 → 3 42 20
よろしくお願いします
指定されてたエクセルファイルの中身は
まさに上の左側の4*3の数値でした
0938デフォルトの名無しさん
2011/01/02(日) 14:15:53>エクセルファイル
csvではなくて?
0939デフォルトの名無しさん
2011/01/02(日) 14:19:49sitei.csvでした
ややこしい書き方をして申し訳ありませんでした
0940デフォルトの名無しさん
2011/01/02(日) 15:37:18あとCSVなのに区切り文字はカンマじゃなくてスペース?
"CSV" == "Comma Separated Values" なんだけど
0941937
2011/01/02(日) 15:45:58エクセルを用いてCSVファイルを開いたときに
それぞれの行列の枠内に
このような値が出ますよということです
私がセルの区切りの線を引かずにスペースで表しただけです
申し訳ありません
0942デフォルトの名無しさん
2011/01/02(日) 15:47:37Character-Separated Values もあるから
0943デフォルトの名無しさん
2011/01/02(日) 15:48:11それは察してあげようよ
0944デフォルトの名無しさん
2011/01/02(日) 17:11:13#include <stdio.h>
#include <string.h>
int main(){
const char* ifname = "sitei.csv";
const char* ofname = "out.csv";
FILE* ifp;
FILE* ofp;
char buf[1024];
char* p;
int line, num, d;
ifp = fopen(ifname, "r");
ofp = fopen(ofname, "w");
if(ifp != NULL && ofp != NULL){
line = 1;
while(fgets(buf, 1024, ifp)){
num = 0;
for(p = buf; ;){
if(sscanf(p, "%d", &d) <= 0)break;
if(num++ > 0)fprintf(ofp, ", ");
fprintf(ofp, "%d", d + line);
p = strstr(p, ",");
if(p == NULL)break;
p++;
}
fprintf(ofp, "\n");
line++;
}
fclose(ofp);
fclose(ifp);
}
}
0945デフォルトの名無しさん
2011/01/02(日) 17:21:04#include <stdio.h>
#include <string.h>
int main(){
const char* ifname = "sitei.csv";
const char* ofname = "out.csv";
FILE* ifp;
FILE* ofp;
char buf[1024];
char* p;
int line, num, d;
ifp = fopen(ifname, "r");
ofp = fopen(ofname, "w");
if(ifp != NULL && ofp != NULL){
for(line = 1; fgets(buf, 1024, ifp) != NULL; line++){
p = buf;
for(num = 0; ; num++){
if(sscanf(p, "%d", &d) <= 0)break;
if(num > 0)fprintf(ofp, ", ");
fprintf(ofp, "%d", d + line);
p = strstr(p, ",");
if(p == NULL)break;
p++;
}
fprintf(ofp, "\n");
}
fclose(ofp);
fclose(ifp);
}
return 0;
}
0946デフォルトの名無しさん
2011/01/02(日) 17:45:026, 21, 16
10, 52, 16
12, 33, 19
6, 44, 21
となるぞ
題意は
6, 22, 18
9, 52, 17
10, 32, 19
3, 42, 20
じゃないのか
0947デフォルトの名無しさん
2011/01/02(日) 18:51:53#include <stdio.h>
#include <string.h>
int main(){
const char* ifname = "sitei.csv";
const char* ofname = "out.csv";
FILE* ifp;
FILE* ofp;
char buf[1024];
char* p;
int num, d;
ifp = fopen(ifname, "r");
ofp = fopen(ofname, "w");
if(ifp != NULL && ofp != NULL){
while(fgets(buf, 1024, ifp) != NULL){
p = buf;
for(num = 0; ; num++){
if(sscanf(p, "%d", &d) <= 0)break;
if(num > 0)fprintf(ofp, ", ");
fprintf(ofp, "%d", d + num + 1);
p = strstr(p, ",");
if(p == NULL)break;
p++;
}
fprintf(ofp, "\n");
}
fclose(ofp);
fclose(ifp);
}
return 0;
}
0948デフォルトの名無しさん
2011/01/02(日) 20:40:35これを変更して,配列に格納されている整数の最大値と最小値を表示する様にせよ.
#include<stdio.h>#include<stdlib.h>#include<time.h>
int main(void){
int *A; int num, sum=0, ave; int i; int max=0;
srand(time(NULL));
do{
printf("整数はいくつですか?(正整数):");
scanf("%d", &num);
}while(num<1);
A = malloc(sizeof(int)*num);
for(i=0;i<num;i++){
A[i] = rand()%100;
printf("%d 番目の整数は %d です.\n", i+1, A[i]);
}
for(i=0;i<num;i++){
sum += A[i];
}
ave = sum/num;
printf("合計は %d で平均は %d です.\n", sum, ave);
for(i=0;i<num;i++){
if(max<A[i]){
max = A[i];
}
}
printf("最大値は %d です.\n", max);
return 0;
}
0949デフォルトの名無しさん
2011/01/02(日) 20:44:48順番おかしくてすみません><
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):948の本分です。
[3] 環境
[3.1] OS:Windows
[3.2] VC
[3.3] 言語:C++
[4] 期限:2011年1月4日まで
よろしくお願いします!!
0950デフォルトの名無しさん
2011/01/02(日) 22:56:25#include <algorithm>
をインクルードして↓の処理を追加する
int min = *std::min_element(&A[0], &A[0] + num);
printf("最小値は %d です.\n", min);
0951デフォルトの名無しさん
2011/01/02(日) 23:55:24ありがとうございます!
動かしてみます!!
0952デフォルトの名無しさん
2011/01/03(月) 01:33:530953デフォルトの名無しさん
2011/01/03(月) 02:18:100954デフォルトの名無しさん
2011/01/03(月) 02:18:380956937
2011/01/03(月) 05:12:56[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
指定されたエクセルファイルの中にあるデータを読み込み
各列ごとにそれぞれのデータに対し[0,1]区間に正規化し
別のエクセルファイルとして出力せよ.
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:
問題の意味は1列目は1列目の範囲で
2列目は2列目の範囲とそれぞれ独立して正規化せよ
ということです
こちらのdata.csvは250行5列といったとても大きなものなので
sitei.csvを基に作成していただけたらありがたいです
0957937
2011/01/03(月) 05:14:37データの中に少数のデータもありますので
少数対応でお願いします
0958デフォルトの名無しさん
2011/01/03(月) 06:18:17正規化とは?
1列目:10 20 5 15 → 正規化:0.5 1 0.25 0.75
みたいに一番大きな値を1にして他を比率で表すって事?
0959937
2011/01/03(月) 06:42:12最大の値を1として列内で1の値(最大値)を基準として
他の値を比率であらわすということです
ただし列ごとに独立した基準でということです
よろしくお願いします
0960デフォルトの名無しさん
2011/01/03(月) 06:58:32普通に縦横入れ替えてループできないのか・・
0961デフォルトの名無しさん
2011/01/03(月) 07:22:24[0, 1]に正規化っていうことは最小値を0としててことだよね?
長いから↓に
http://codepad.org/mtb8d2x4
0962937
2011/01/03(月) 07:26:09250個の数を正規化したものを5つです
ただしそれぞれの列ごとに値の大きさが違いすぎるので
それぞれの基準で正規化しなくちゃいけないんです
(画素や座標といった基準の違うものがまとめて入ったデータなので
正直課題じゃなかったら座標は正規化せずに座標でいいと思うのですが)
0963937
2011/01/03(月) 07:27:49拝見させていただきます
0965937
2011/01/03(月) 10:39:49[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
正規化されたエクセルファイルの中にあるデータを読み込み
そのデータをそれぞれx軸の値として
y = x + a の式との交点であるy軸の値をそれぞれ
別のエクセルファイルとして出力せよ.
a の値は -1〜1 までの値を0.5刻みでランダムにとり
同じ行では同じ関数を使うものとする.
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:
問題文中でエクセルファイルとなっていますがCSVのことです
また前問(>>956)からの続きなので
>>956の解である>>961さんのURL内のコードに
本問で問われていることを付け足す形でお願いします
長くなりましたがよろしくお願いします
0966デフォルトの名無しさん
2011/01/03(月) 13:16:43えっ。単発じゃないのか
>>961につなげるなら>>961も入力、加工、出力に関数分けする必要があるじゃないか
入力→正規化→出力→入力→加工→出力ってやるんだろこれ
0967937
2011/01/03(月) 13:29:06>>元データ入力→正規化→出力→正規化データ入力→加工→出力
まさにそのやり方をしないといけないんです
0968デフォルトの名無しさん
2011/01/03(月) 13:36:36まず全ての問題のつながりを[5]あたりに書いとくこと
もうないよね?
0969937
2011/01/03(月) 13:48:17正直まだあるんですけどそこまでできあげちゃうと良レポートすぎるかなと思うのですが
この先の問題は
【質問テンプレ】
[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
その後(>>965の後)そのプログラム(>>965の解となるプログラム)に加え
各行に対し3つずつそれぞれランダムにaを決定した関数との接点を求め出力する.
また6列目に使用したaの値をa1,a2,a3という形で出力する
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:
ここまでで終わりです
0970937
2011/01/03(月) 13:55:28問題文最後の6列目というのはもとファイルが5列あって6列目にaの値を入れる欄を作れということです
問題分には明言されてませんが問3は一つのセルに
a1,a2,a3を用いて出た解1,2,3を記入した
5*250のセルをもとに (15)+1*250の結果を作れということです
列数で増えている1というのはaの値を表示するためのものです
多いうえにややこしい書き方をして申し訳ないです
0971937
2011/01/03(月) 13:58:14横1行は上記のようになった6*250のCSVです
何度も追記して申し訳ないです
0972デフォルトの名無しさん
2011/01/03(月) 18:26:55[2] 問題文(含コード&リンク):
5列5行の多次元配列(0または1が適当に並べられているもの)を用意し
1がある配列の上下左右の配列のうち2または3個1が存在するならその配列を0に変更し
そうでない場合は1のままにする この操作を10回行った配列を求めるプログラムを作成する
またこの配列は上下左右繋がっていて1,1の配列の場合上は1,5、左は5.1である
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:visual studio2005
[3.3] 言語: C言語
[4] 期限: 1月5日
[5] その他の制限:
いわゆるライフゲームみたいなやつです
1と0の配列は特に指定はありませんので そこは適当で構いません
よろしくお願いします
0973デフォルトの名無しさん
2011/01/03(月) 19:31:490974デフォルトの名無しさん
2011/01/03(月) 20:03:24http://codepad.org/hM68wL6d
0975デフォルトの名無しさん
2011/01/03(月) 20:37:48とりあえず>>956の方書き直したけど
http://codepad.org/EaoB8bcf
>>969の問題の意味がわからん
各列にランダム数(列内では同じ数)を足すって事?
0976デフォルトの名無しさん
2011/01/03(月) 20:46:030977デフォルトの名無しさん
2011/01/03(月) 20:57:31ありがとうございました
助かります
0978デフォルトの名無しさん
2011/01/03(月) 21:20:54こうか わからん
http://codepad.org/FxCZDVCT
0979976
2011/01/03(月) 22:09:57こうだと思った
937.exe <in.csv | 956.exe | 969.exe >out.csv
>>937
http://ideone.com/IhJYa
>>956
http://ideone.com/gzme7
>>969
http://ideone.com/hyzwc
0980デフォルトの名無しさん
2011/01/03(月) 22:24:240981デフォルトの名無しさん
2011/01/03(月) 22:24:51C/C++の宿題片付けます 145代目
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
劣化 perl なんかを使うのか?それじゃ C とかわらへんのでは?
0985937
2011/01/04(火) 05:13:44>>975, >>978拝見させていただきました
>>975の41行目 >>978の42行目の
csv = calloc(1, sizeof(CSV));
という記述に対して
'void *' から 'CSV *' に変換できません。
というエラーが出ます
>>979さんのは実行の仕方が解らないのでただいま勉強中です
また>>965の問ですがこれは「正規化された値にランダム数を足す」のではなく
(以下2行は手順を追うための文です)
正規化された値(範囲は[0,1])と 「関数y=x」の交点の値を別のcsvとして出力します
ここまでだと入力と出力のファイルが同じになります
(ここから本問)
正規化された値(範囲は[0,1])と 「関数y=x+a」の交点の値を別のcsvとして出力します
a の値は-1〜1 までの値を0.5刻みでランダムにとり
同じ横列では同じ関数を使って交点をとるものとする
それを縦列数分繰り返して出力するということです
データは横5データ縦250データのデータです
横列ごとに同一の関数と比較した交点の出力なので
結果としては正規化されただけのデータと比べて横列では同じ程度の数値の変化になります
0986937
2011/01/04(火) 05:14:37正規化された値と関数y=x+aとの比較を各横列ごとに3回行うということです
セル1-1に対して「y=x+a1との交点」「y=x+a2との交点」「y=x+a3との交点」 の値を
出力するCSVのセル1-1の位置に a1との解 , a2との解 , a3との解
とコンマで刻んで出力します
また正規化されたCSVが横5縦250なので横6縦250のところに
使用したaの値を a1,a2,a3 と出力せよということです
結果的には
a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1,a2,a3
となります
この横列が250行縦に続きます
元データの形(行列が詳しくないもので正しい用語を使えてるかわからないので)
1 2 3 4 5
1 2 3 4 5 横が5つのデータで
〜〜〜〜〜〜〜〜〜 縦が250個のデータです
1 2 3 4 5 並み線は147個分省略
0987937
2011/01/04(火) 05:17:50場合によって関数が違うので
関数との交点をとりましたよというような記述の仕方が必要なんです
ながながと申し訳ありません
よろしくお願いいたします
0988937
2011/01/04(火) 07:59:26プログラミング畑の人間じゃないものでして動作について
多めにコメントで説明してくださるとありがたいです
0989デフォルトの名無しさん
2011/01/04(火) 08:20:40・問題文は、出題されたまま全文を書いてください。
0990937
2011/01/04(火) 08:27:51問題文問2 >>965
問題文問3 >>969
問題文についての補足 >>985 >>986
です
補足は長すぎて書き込みを止められてしまったので分割してます
長くなってしまって申し訳ないです
問題文の原文は>>956 >>965 >>969です
0991デフォルトの名無しさん
2011/01/04(火) 09:52:54>>937 そろそろ次スレ移動しよう
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
0992937
2011/01/04(火) 10:31:17補足のところは授業のノートを見て書いたものですから
二次関数とX座標の交点のようにメモをとってたのでそう書いてしまいました
実際は y= x + a の x にランダムで指定範囲内から決定されたaを加算すればいいので
その辺が>>988で言っていた自分のミスに気付いたってやつです
交点求めるには代入すればいいですものね
問題文が簡素なのは「授業でやってるとおりにやればわかるでしょ」っていう先生の暗黙の了解なので
その部分は補足という形をとりました次スレに質問を貼りなおしたいと思います。
0993デフォルトの名無しさん
2011/01/04(火) 15:11:030994デフォルトの名無しさん
2011/01/04(火) 15:27:400995デフォルトの名無しさん
2011/01/04(火) 15:28:530996デフォルトの名無しさん
2011/01/04(火) 15:30:040997デフォルトの名無しさん
2011/01/04(火) 15:30:450998デフォルトの名無しさん
2011/01/04(火) 15:32:030999デフォルトの名無しさん
2011/01/04(火) 15:48:171000デフォルトの名無しさん
2011/01/04(火) 15:50:2810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。