C/C++の宿題片付けます 153代目at TECH
C/C++の宿題片付けます 153代目 - 暇つぶし2ch333:デフォルトの名無しさん
11/11/16 13:29:18.60
[1] プログラミング
[2] 下記のような構造を持ったデータが、std::string data; の中に格納されています。
   stlやboostの正規表現、構文解析等を利用して
   <div class="block">~</div> 内のブロック毎に
   <p>タグ内にある複数アイテムの情報(タイトル、URL)を摘出し、1つの変数に集約してください。
   ※blockの数やアイテムの情報(タイトルやURL)は変動する可能性があります。
[3] Windows / MSVC 10.0 / C++
[4] なるべく3日以内に
[5] stl, boost 1.47.0 使用可能 / アイテム用独自クラスやmap、vector等使用に関して制限ありません
よろしくお願いします

------
<!DOCTYPE HTML PUBLIC...
<html>
...
<div class="block">
<p class="first"><a href="URLリンク(dummy)" target="main">Title 1</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 2</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 3</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 4</a></p>
</div>
...
<div class="block">
<p class="first"><a href="URLリンク(dummy)" target="main">Title 5</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 6</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 7</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 8</a></p>
</div>
...
</html>


334:デフォルトの名無しさん
11/11/16 15:06:38.44
PHP使ったらすぐに解けそうな問題だな
regex使えるから結構簡単に行けるかも

335:デフォルトの名無しさん
11/11/16 15:51:40.76
[1] 授業単元:楽しいプログラミング
[2] 問題文(含コード&リンク): 以下の実行例のように,三角形の2 辺の長さとその2
辺のなす角(0~180[deg])を入力すると,もう1 辺の
長さと,三角形の面積を表示するプログラムを作成せ
よ.π = 3.14159265 とする.
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:2011年11月17日 9:00まで
[5] その他の制限: while, if, for, 配列まで


 三角形の2 辺の長さを入力してください。
辺1:-3.0
正の値を入力してください。辺1:3.0
辺2:6.0
2 辺のなす角度[deg] を入力してください:200.0
0<角度[deg]<180 の値を入力してください。30.0
もう1 辺の長さ= 3.717941
三角形の面積= 4.500000

336:デフォルトの名無しさん
11/11/16 16:14:54.59
#include <stdio.h>
#include <math.h>
int main(void) {
double a, b, deg, pi = 3.14159265;

printf(" 三角形の2 辺の長さを入力してください。\n");

for( ; ; ) {
printf("辺1:");
scanf("%lf", &a);
if(a > 0) break;
printf("正の値を入力してください。"); }

for( ; ; ) {
printf("辺2:");
scanf("%lf", &b);
if(b > 0) break;
printf("正の値を入力してください。"); }

printf("2 辺のなす角度[deg] を入力してください:");

for( ; ; ) {
scanf("%lf", °);
if(0 < deg && deg < 180) break;
printf("0<角度[deg]<180 の値を入力してください。"); }

printf("もう1 辺の長さ= %f\n", sqrt(a * a + b * b - 2 * a * b * cos(deg / 180 * pi)));
printf("三角形の面積= %f\n", a * b * sin(deg / 180 * pi) / 2);

return 0;
}

337:デフォルトの名無しさん
11/11/16 16:17:53.83
>>335
URLリンク(ideone.com)

338:デフォルトの名無しさん
11/11/16 16:18:37.14
>>299
どちらでもお好きな方でどうぞ。
URLリンク(codepad.org)
URLリンク(codepad.org)


339:デフォルトの名無しさん
11/11/16 16:19:05.50
間違えた
こっちで

URLリンク(ideone.com)

340:デフォルトの名無しさん
11/11/16 16:22:47.75
何度もすまね

URLリンク(ideone.com)

341:デフォルトの名無しさん
11/11/16 16:51:30.94
[1] 授業単元:C言語基礎
[2] 問題文(含コード&リンク): 20×20程度のエリアを作り
その中でキャラクターを動かすプログラムを作れ。

移動キーの割当
↑:ジャンプ
→:右へ移動
← : 左へ移動
 [3.1] OS: windows7 32bit
 [3.2] コンパイラ名とバージョン: bcc5.11
 [3.3] 言語: C
[4] 期限:2011年11月18日
[5] その他の制限: できるだけ簡単なプログラムでお願いします。


■■■■■■■■■■■■■■■■■■■■













  (・∀・)   ←動かすキャラ
 | |
■■■■■■■■■■■■■■■■■■■■

342:デフォルトの名無しさん
11/11/16 17:23:28.24
[1] 授業単元:楽しいプログラミング
[2] 問題文(含コード&リンク): 以下の実行例のように,三角形の2 辺の長さとその2
辺のなす角(0~180[deg])を入力すると,もう1 辺の
長さと,三角形の面積を表示するプログラムを作成せ
よ.π = 3.14159265 とする.
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:2011年11月17日 9:00まで
[5] その他の制限: while, if, for, 配列まで


 三角形の2 辺の長さを入力してください。
辺1:-3.0
正の値を入力してください。辺1:3.0
辺2:6.0
2 辺のなす角度[deg] を入力してください:200.0
0<角度[deg]<180 の値を入力してください。30.0
もう1 辺の長さ= 3.717941
三角形の面積= 4.500000

343:デフォルトの名無しさん
11/11/16 18:38:46.71
>>342
>>335-337

344:デフォルトの名無しさん
11/11/16 19:35:25.71
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク): 3問 URLリンク(ideone.com)
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日午後8:15まで
[5] その他の制限: 基礎の基礎なので、難しいプログラミングは含まれていないと思います。ついでに説明も付け加えてくださると助かります。
時間がないですが、よろしくお願いします。


345:デフォルトの名無しさん
11/11/16 20:28:00.06
>>344
帰納じゃなくて再帰じゃね?

346:デフォルトの名無しさん
11/11/16 20:33:48.99
>>345
再帰、だと思います。
英語をそのまま日本語にしたので、正確な呼称がわからなくて、帰納と訳してました。
ありがとうございます。

347:デフォルトの名無しさん
11/11/16 21:16:38.36
>>338
2個目はC++11だろ
コンパイルエラーだらけ

348:345
11/11/16 21:51:31.38
>>344
遅れちゃいるけど、
URLリンク(ideone.com)

入力値のチェックは入れてないので、適宜修正してくださいな。

349:デフォルトの名無しさん
11/11/16 21:53:33.90
>>344
出遅れたけど。
URLリンク(ideone.com)

350:デフォルトの名無しさん
11/11/16 22:49:14.14
>>320
URLリンク(codepad.org)

351:デフォルトの名無しさん
11/11/16 23:00:39.45
>>347
うん。もともと二個目は出題の要求に従ってない部分があるし。
無理やり従わせたためにCBaseMonsterクラスの派生クラスにおけるAction関数が無意味だし、
スマポ使えばすむところをこれまた無理やり従わせるために new delete にしてるし
あと、UML図書かないで鼻ほじりながら脳内仕様で作ったから設計があやしいw

どっちにしても二個目は宿題としては提出できないので一個目で。
こっちは出題の要求通り(のはず)。

352:デフォルトの名無しさん
11/11/17 00:48:48.87
>>350
ありがとうございます!

353:デフォルトの名無しさん
11/11/17 04:42:32.57
>>346
もしかして外国の学校に通ってる人? だったら大変だね。
一般的には recursion -> 再帰 induction -> 帰納 かなと。
あと偶数と奇数が逆? odd -> おかしい、奇妙な

354:デフォルトの名無しさん
11/11/17 04:44:36.15
英語の問題ならそのまま書いてくれた方がいいな

355:デフォルトの名無しさん
11/11/17 17:41:06.65
[1] 授業単元: プログラミング基礎 (ポインタと関数)
[2] 問題文(含コード&リンク): nxが指す整数の値を2乗する関数
void sqr(int *nx)を作成せよ
例えば、num =3 に対して関数sqrを呼び出すと、num=9となる。
関数の動作を確認出来るmain関数も作成すること
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月18日9:00まで
[5] その他の制限:
実行例,
整数を入力してください:3
その値の2乗しました :9


356:デフォルトの名無しさん
11/11/17 17:59:43.63
>>355
URLリンク(codepad.org)

357:デフォルトの名無しさん
11/11/17 19:52:54.65
[1] 授業単元: 実数型変数の精度
[2] 問題文(含コード&リンク):
以下の部分の処理(意味)の把握
*((unsigned int *)&a)・・・・・・・・aはfloat型変数
[3] 環境
 [3.1] OS:unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: c
[4] 期限: 11月17日 22:00 まで


358:デフォルトの名無しさん
11/11/17 20:16:31.83
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): アルファベットと空白からなる文字列を処理する以下のような関数を作成せよ。なお各関数は処理が成功したときに1、失敗したときに0を返すものとする。

(1) 先頭からインデックスpで指定される文字までを反転させる関数int reverse(char *s, int p)を作成せよ。例:
char s[] = "abc defg";
reverse(s, 3);
printf("%s¥n", s); // -> " cbadefg"

(2) インデックスpとqで指定される範囲の文字を反転させる関数int reverse2(char *s, int p, int q)を作成せよ。例:
char s[] = "ab cdefg";
reverse2(s, 4, 7);
printf("%s¥n", s); // -> "ab cgfed"
(ヒント: (1)で作った関数が応用できる?)

(3) 単語(空白で区切られた文字)の順序を反転する関数int reverse_word(char *s)を作成せよ。例:
char s[] = "abc de f ghi";
reverse_word(s);
printf("%s¥n", s); // -> "ghi f de abc"
(ヒント: (1)や(2)で作った関数が応用できる?)

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:
[5] その他の制限:どれもできるだけ引数で与えられた文字列の上で処理をするようにして無駄なメモリを使わないように心がけよ(よって関数の引数には常に編集可能な文字列を渡すこととする)。

359:デフォルトの名無しさん
11/11/17 20:20:42.61
char *s = "abc de f ghi";
こういう渡され方はしないという前提かな?

360:デフォルトの名無しさん
11/11/17 20:54:15.62
>>357
aへのポインタをunsigned int型変数へのポインタだと解釈した時の値 = aのバイト表現をunsigned int型の表現だとキャストせずに解釈した時の値
で大丈夫かな

361:デフォルトの名無しさん
11/11/17 20:55:34.05
ポインタだと解釈した時の値→ポインタだと解釈した時のポインタが示す値
こうか

362:デフォルトの名無しさん
11/11/17 20:56:29.84
>>359
なんでそう思うんだ?

363:デフォルトの名無しさん
11/11/17 20:58:49.06
>>362
書き換えが発生するからだろ

364:デフォルトの名無しさん
11/11/17 22:17:50.64
>>358
失敗の条件が無いので適当に組んだ。
URLリンク(ideone.com)

365:デフォルトの名無しさん
11/11/17 22:24:48.17
>>358
URLリンク(codepad.org)

Joel on Software の試験問題みたいなやつじゃな… xor 交換法使えってやつ

366:デフォルトの名無しさん
11/11/17 23:31:30.50
>>364
C99か

367:デフォルトの名無しさん
11/11/18 01:32:33.72
[1] 授業単元:
[2] 問題文(含コード&リンク):
URLリンク(codepad.org)
リンク先のコードを新規データをリストの最初にする
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:VS2008
 [3.3] 言語:C
[4] 期限:早めにお願いします

368:デフォルトの名無しさん
11/11/18 02:02:37.58
>>367 確認していないが。
67-78行を以下に変更でいいような?
pointer_student = (struct student *)malloc( sizeof(struct student) );
pointer_student->next = root;
pointer_student->number = in_number;
strcpy(pointer_student->name, in_name);

369:デフォルトの名無しさん
11/11/18 02:08:43.36
22-48行は逆順に登録されるようにしなくていいのか?

370:368
11/11/18 02:59:54.66
コードから新規データのみと解釈したんだけどね。どーでしょうねぇ。
てか、データ構造も大事だけど先に関数を習いたいねぇ・・・。

>>299 解答がないのは資料不足。エスパーではないので情報は全部だしてもらわんと。
基本モンスタのクラスがあるはずだが(^^;;


371:デフォルトの名無しさん
11/11/18 03:14:47.98
リファクタリングも宿題の内ということでわざと冗長に書いてあるのかと思った
関数習う前にlinked listを宿題で出すかね

372:デフォルトの名無しさん
11/11/18 05:13:55.78
>>367
データの登録先を全てリストの先頭にするということだと解釈した。
URLリンク(ideone.com)

373:デフォルトの名無しさん
11/11/18 08:44:46.32
> 【質問テンプレ】
> [1] 授業単元:実数型変数の精度
> [2] 問題文(含コード&リンク):実数型変数の形式は以下のものとする。
符号部(1ビット)、指数部(nビット)、仮数部(mビット)

①指数部を符号なし整数としてオフセットを用いて表現する方法の調査

②以下のコードによるプログラムの実行結果から実数型変数の形式を類推する方法の検討
URLリンク(codepad.org)
> [3] 環境
>  [3.1] OS:unix
>  [3.2] コンパイラ名とバージョン: gcc
>  [3.3] 言語: C
> [4] 期限: (11月18日13:00まで

374:デフォルトの名無しさん
11/11/18 09:50:21.60
>>329>>330
遅れたがありがとう
あとこれをコンピュータ側が自動的に反転させてくれるように出来ないかな?


375:デフォルトの名無しさん
11/11/18 10:56:57.75
>>374
??? 自動的に反転とは? 何を求めているのか分からない。なんか例を出してよ。

376:デフォルトの名無しさん
11/11/18 12:36:02.25
>>374
上下、左右反転だとエスパーしてみた。
URLリンク(codepad.org)

377:デフォルトの名無しさん
11/11/18 12:58:06.53
776 名前:名無しさん@涙目です。(東日本)[] 投稿日:2011/11/18(金) 12:50:14.89 ID:E2JpCOtJ0
朝鮮人出身の孫正義に対し、日本人として産まれ育った皆さんが何か勝てる要素あります?
ないですよねえ(笑)

とすると、、
…あれあれ~?
「日本人の方が朝鮮人より優れている!」というネトウヨの主張、矛盾が生じますよ?(笑)

▼ 781 名前:名無しさん@涙目です。(WiMAX)[sage] 投稿日:2011/11/18(金) 12:51:05.55 ID:kdvVz5BV0
>>776
ネトウヨというレッテル貼り付ける時点で議論を放棄した馬鹿になるぞ

▼ 798 名前:名無しさん@涙目です。(神奈川県)[sage] 投稿日:2011/11/18(金) 12:55:36.12 ID:B2VXzqAn0
>>776
逆に金と朝鮮コネクション以外になにかあるのですか?
ネットにある彼のプレゼンを注意深くきいてみると「詐欺師」という印象しか受けませんが?
印象に残るようなフレーズを連呼しながら、時に感情的にその場限りの嘘を吐き続けるだけの男
こんな男に騙されるほうも騙されるほうですがw


378:デフォルトの名無しさん
11/11/18 13:55:25.95
>>375>>356
例えば
123
456
789
という3×3の行列をscant()で読み取ると
対照線を軸に反転出来たらいいんだ
上の例でいくと
987
654
321
みたいな感じになればおk

379:デフォルトの名無しさん
11/11/18 14:12:13.75
転置行列の逆みたいな感じか
左右反転してから上下反転すれば出来るな

380:デフォルトの名無しさん
11/11/18 15:27:48.74
>>378
#include<stdio.h>
int main(void)
{
int i,j;
int a[3][3];
scanf("%d",&a[0][0]); scanf("%d",&a[0][1]); scanf("%d",&a[0][2]);
scanf("%d",&a[1][0]); scanf("%d",&a[1][1]); scanf("%d",&a[1][2]);
scanf("%d",&a[2][0]); scanf("%d",&a[2][1]); scanf("%d",&a[2][2]);
printf("%d ", a[0][0]); printf("%d ", a[1][0]); printf("%d¥n",a[2][0]);
printf("%d ", a[0][1]); printf("%d ", a[1][1]); printf("%d¥n",a[2][1]);
printf("%d ", a[0][2]); printf("%d ", a[1][2]); printf("%d¥n",a[2][2]);
printf("¥n");
printf("%d ", a[2][2]); printf("%d ", a[1][2]); printf("%d¥n",a[0][2]);
printf("%d ", a[2][1]); printf("%d ", a[1][1]); printf("%d¥n",a[0][1]);
printf("%d ", a[2][0]); printf("%d ", a[1][0]); printf("%d¥n",a[0][0]);
printf("¥n");
printf("%d ", a[2][2]); printf("%d ", a[2][1]); printf("%d¥n",a[2][0]);
printf("%d ", a[1][2]); printf("%d ", a[1][1]); printf("%d¥n",a[1][0]);
printf("%d ", a[0][2]); printf("%d ", a[0][1]); printf("%d¥n",a[0][0]);
return 0;
}


381:デフォルトの名無しさん
11/11/18 15:28:40.70
半分ネタなんだが、こうやって書いても出来ないもんは出来ないんだな

382:デフォルトの名無しさん
11/11/18 18:47:50.77
>> 373
(1) 参考:URLリンク(ja.wikipedia.org)
(2) ヒント:出力の2つめのフィールドが偶数になっているときに、情報落ちしている。
これで仮数部が表現できるビット数がわかる。注意:けち表現も考慮に入れよ。

・・・というか出題のコードが悪いよ。


383:デフォルトの名無しさん
11/11/18 19:32:43.34

[1] 授業単元:プログラミング演習

[2] 問題文(含コード&リンク):


URLリンク(codepad.org)

[3] 環境
 [3.1] OS:Linux Ubuntu 10.04
 [3.2] コンパイラ名とバージョン:不明ですが恐らくgccだと思います。
 [3.3] 言語:C

[4] 期限:11/25


384:デフォルトの名無しさん
11/11/18 19:46:58.93
>364
ごめん。>358じゃないんだけど、reverse_wordってちゃんと動く?
少なくとも俺の環境だとダメ。VC2010(に入ってるcl.exe)とMinGWのgccの両方で試したけどダメ。
>366の発言が関係してる?

385:デフォルトの名無しさん
11/11/18 20:07:37.69
>>384
VC2010のC++はC89なのでC99はコンパイル通らないよ
gccならバージョンにも寄るがだいたい通る
つーか宿題にC99書くなって

Linux上のgccならC99でもいいっていう考えだろうけど、使うなよ
こんなクソ言語

386:デフォルトの名無しさん
11/11/18 20:58:29.77
>>383
採草地w ちゃんと写せよ

387:デフォルトの名無しさん
11/11/18 21:00:22.81
すなわちの前後が全く繋がってないような気がするんだが

388:デフォルトの名無しさん
11/11/18 21:14:54.23
>>384
変数宣言を移動しても、s3の処理で落ちる

389:デフォルトの名無しさん
11/11/19 00:28:11.38
[1] 授業単元:計算機アルゴリズムⅠ
[2] 問題文(含コード&リンク):
設問1-1
プログラム例9.4.4で「a_p=&a[0]; b_p=&b[0]; c_p=&c[0];」を「a_p=&a[4]; b_p=&b[4]; c_p=&c[4];」に置き換えた場合、同じ表示となるようにfor(・・・){・・・}を書換えなさい。
プログラム例9.4.4
URLリンク(www.dotup.org)

設問1-2
配列
float a[7] = {2.10, 3.21, 5.43, 6.54, 7.65, 8.76, 9.87}について、

(1)ポインタ変数を用いて、すべての要素を表示するプログラムを作成せよ。

(2)ポインタ変数を用いて、奇数の添字の要素を表示するプログラムを作成せよ。
  (a_p+=2を使用すること。)

(3)ポインタ変数を用いて、すべての要素を逆の順に、a[6]からa[0]まで表示するプログラムを作成せよ。
ただし、ポインタ変数には最初a[6]のアドレスを記憶させるようにする。
  (--a_pまたはa_p--を使用すること。)
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C
[4] 期限:[2011年11月25日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
            繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
            条件分岐if文、要素番号idx使用の書換、データの入れ替え
            条件分岐・論理演算子を用いたif文の条件、if文、else if文
            switch文、ポインタ変数・演算子*と&は習いました。
宜しくお願いします。

390:384
11/11/19 00:37:32.01
>358,364,385,388
reverse_wordだけ自分で書いてみた。stdioだけしか使わないようにしてみた。
URLリンク(ideone.com)
Cはほぼ初心者に近いけど、この問題はポインタとかアルゴリズムとかの勉強になって良いね。
無駄な部分が多分あると思うから、それは是非指摘してほしい。

391:デフォルトの名無しさん
11/11/19 00:59:42.73
>>389
設問1-1 URLリンク(codepad.org)
設問1-2
(1) URLリンク(codepad.org)
(2) URLリンク(codepad.org)
(3) URLリンク(codepad.org)


392:デフォルトの名無しさん
11/11/19 02:44:15.53
>>384
うーんreverse_word()の中でqがオーバーランしてるかな。
最後のreverse(s, q - 2 - s)で壊す。

393:デフォルトの名無しさん
11/11/19 03:00:00.82
調子にのっちゃダメー

394:384, 390
11/11/19 06:00:57.11
>392
確認なんだけど、
このレスはあくまでも>384へのレスであって、>390へのレスじゃないよね?

395:デフォルトの名無しさん
11/11/19 06:57:01.70
>>394
>>392>>364のコードのことです。

396:394
11/11/19 09:58:09.26
失礼しました。アンカーミスりました。
了解です。

397:デフォルトの名無しさん
11/11/19 19:01:13.51
(3)だけ
int find(char *s, int n){ while(*(s+n)!=' ' && n<strlen(s)) ++n; return n; }
int reverse_word(char *s)
{
if (strlen(s)<1) return 0;

int i,n;
for(i=n=0; i<strlen(s); i=n+1){ n=find(s,i); reverse2(s, i, n-1); }
reverse(s, strlen(s)-1);
return 1;
}

398:デフォルトの名無しさん
11/11/19 19:02:06.45
[1] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
アフィン変換で画像を変換せよ。ただし回転の中心は画像の中心であるである
URLリンク(codepad.org)
ここまでできたのですが画像の中心で回転してくれません。
[3] 環境
 [3.1] OS:windowsxp
 [3.2] コンパイラ名とバージョン:windows visual studio 2008
 [3.3] 言語:c
[4] 期限:11/20
[5] その他の制限:見づらいプログラムですいません。画像を中心に回転するようにしたいです

399:デフォルトの名無しさん
11/11/19 21:59:36.82
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):URLリンク(i.imgur.com)
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11/15 10:00
[5] その他の制限: そこまで複雑な関数は習ってません

詰んでます
お願いします

400:デフォルトの名無しさん
11/11/19 23:23:18.68
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
 入力された数値が素数か否かを判定し,結果を画面に出力せよ.ただし

 ①ループ命令を使う方法
 ②再帰処理を使う方法
 ③上記のどちらも使わない方法

 のいずれについても解答する事.
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11/27 23:00
[5] その他の制限: 初心者向けにお願いします


401:デフォルトの名無しさん
11/11/19 23:51:01.44
>>400
③ だけ
URLリンク(codepad.org)

402: ◆QZaw55cn4c
11/11/19 23:51:26.08
>>400
URLリンク(ideone.com)
URLリンク(ideone.com)
③ うーん、困りました。わかりません。

403:デフォルトの名無しさん
11/11/20 00:13:49.80
>>400
>>401 を縮めた
URLリンク(codepad.org)

404:デフォルトの名無しさん
11/11/20 00:15:58.06
>>391
有難う御座います

405:デフォルトの名無しさん
11/11/20 00:31:18.16
398ですがコメント文が間違ってたので投稿し直します
1] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
アフィン変換で画像を変換せよ。ただし回転の中心は画像の中心であるである
URLリンク(codepad.org)
ここまでできたのですが画像の中心で回転してくれません。
[3] 環境
 [3.1] OS:windowsxp
 [3.2] コンパイラ名とバージョン:windows visual studio 2008
 [3.3] 言語:c
[4] 期限:11/21 20:00
[5] その他の制限:見づらいプログラムですいません。画像を中心に回転するようにしたいです


406:デフォルトの名無しさん
11/11/20 01:35:45.40
>>403
奇数だけチェックするようにしてビットパターンの方も間引いたわけですか

407:デフォルトの名無しさん
11/11/20 01:41:02.34
>>405
src_x=(dest_x-dest_width/2)*cos(-theta)-(dest_y-dest_height/2)*sin(-theta)+src_width/2;
src_y=(dest_x-dest_width/2)*sin(-theta)+(dest_y-dest_height/2)*cos(-theta)+src_height/2;
でおk

408:デフォルトの名無しさん
11/11/20 01:41:20.74
>>403
5以上の素数は 6n±1 に限られるから、もっと少なくできるんじゃない?

409: ◆QZaw55cn4c
11/11/20 01:42:07.62
>>403
>>401
んーんーなるほど。

410:デフォルトの名無しさん
11/11/20 01:46:53.92
>>409
死んでもgoto使いたくないのか

411: ◆QZaw55cn4c
11/11/20 02:05:06.43
>>410
そんなことはないんですけど、今回はやめときました。
URLリンク(hibari.2ch.net) >>479
URLリンク(codepad.org)

412:デフォルトの名無しさん
11/11/20 02:05:23.27
>>399誰かたのんます・・・

413:デフォルトの名無しさん
11/11/20 02:22:04.60
>>412
放置されたら諦めろ。
URLリンク(codepad.org)

414:デフォルトの名無しさん
11/11/20 03:48:44.47
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
整数nを入力、2以上nイカの全ての素数およびその素数の累積を表示(while文を使用)
例) n=15の時:
素数:2,3,5,7,11,13 累積:41
[3] 環境
 [3.1] OS: (WindowsXP)
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:今日の22時まで
[5] while文使用でお願いします

415:デフォルトの名無しさん
11/11/20 04:40:23.12
>>400
main(i,n){scanf("%d",&n);_:if(n*(n>1)%++i)goto _;puts("not prime"+(i==n)*4);}


416:デフォルトの名無しさん
11/11/20 04:53:30.16
>>415
トリッキー過ぎるだろw

417: ◆QZaw55cn4c
11/11/20 04:58:29.46
>>412
>>399
残念。
URLリンク(codepad.org)

418: ◆QZaw55cn4c
11/11/20 05:03:18.15
>>415
>(n>1)
細やかな心遣いですね。

419:デフォルトの名無しさん
11/11/20 05:03:56.45
>>417
413 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/08(水) 04:58:51
典型的な自己愛性人格障害だな
治療不能
就職も出来ず一生ニート

416 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/08(水) 12:32:05
>>413
同属嫌悪ってやつか、自己紹介乙。
叩いているお前も十分基地外、池沼だよ。
そんなことしている暇があるんだろ?

便利な詭弁だよな
そうやって自分の問題から逃げていれば楽だもんだなあ

468 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/13(月) 21:08:24
Pen III 500MHz を2003年の夏まで使用していましたが
今はC2D、C2Qのを使用してますです!
Core iシリーズはVistaのごとくスルーしてます ><;

スクリーンショットマダァ?(・∀・ )っ/凵⌒☆チンチン

420:デフォルトの名無しさん
11/11/20 05:05:33.45
n;main(i){for(scanf("%d",&n);n%++i&&i<n;);puts("not prime"+(i==n)*4);}

421: ◆EiEUm/qHNk
11/11/20 06:18:42.24
[1] 授業単元:C言語
[2] 問題文:ガウスの消去法を使ってn元連立方程式を解け
URLリンク(ideone.com)
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C言語
[4] 期限:11月21日まで
[5] その他の制限:math.h や #difine などは習っていないので使えません。
アップロダに初めてソースを上げてみたのですが、学校では値が出ました、
あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
どうすればいいのかわかりません。

422:デフォルトの名無しさん
11/11/20 06:30:24.07
部分ピボット選択なら簡単

423:デフォルトの名無しさん
11/11/20 06:34:32.94
>>421
例えばこんな感じ

URLリンク(ideone.com)

424:デフォルトの名無しさん
11/11/20 06:36:11.32
math.hを習ってないという事はfabs()を自作しないといかんね
それから#defineが使えないならC99の可変長配列を使わないといけない

425: ◆EiEUm/qHNk
11/11/20 06:48:19.27
fabs?などというのも習っていません、自作というのもしてわいけないと思います。
配列ぐらいまでの範囲しか習っていませんので、、、
友人はif文を使うなどと言っているのですが、どこに入れれば良いのかもわかりません。

426:デフォルトの名無しさん
11/11/20 07:05:27.87
>>425
いや、

>あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
>どうすればいいのかわかりません。

なんでしょ?じゃピボット選択をするしかない

fabsの自作をしてはいけないというのなら三項演算子でも使ってプログラム内でやるよ
if文でもいいけど

427:デフォルトの名無しさん
11/11/20 07:11:29.83
URLリンク(ja.wikipedia.org)

>対角成分が 0 になる場合には、枢軸選択(ピボット選択)という式の交換を行う必要がある。
>対角成分が 0 になる場合以外でも、対角成分が絶対値が最大の係数になるように枢軸選択を
>行ったほうが、解の丸め誤差が少なくなる。ただし、これは行列要素の絶対値が同程度の大きさの
>場合のみ成り立ち、スケーリングを行わずに枢軸選択を行うとむしろ精度が悪化する場合もあるため、
>注意が必要である

つまり絶対値が最大の係数になるようにピボット選択をしなければならない
そのためにはfabs()が必要不可欠であるが、使用不可、自作も不可というのならプログラム内に
関数ではなく直書きするしかない

428: ◆EiEUm/qHNk
11/11/20 07:20:28.79
ピポッド選択をするのにif文、for文だけで対処できないのでしょうか?
先ほど私がロダにあげたソースに付け足していただけるとありがたいのですが、、



429:デフォルトの名無しさん
11/11/20 07:23:42.07
>>428
いやできるよ
ちょっと待って今他の作業をしてるもんで
他の人があげてくれるかもしれんし

それより心配なのはC99の可変長配列を関数間で受け渡し出来るのかという問題だ
可変長配列はalloca()の糖衣構文だと聞いているので、受け渡した時の書き方が
よくわからん

C89/C++ばかりやってるもんで

430:デフォルトの名無しさん
11/11/20 07:29:00.82
URLリンク(seclan.dll.jp)

(3) 関数引数での使用
 関数ブロックの中に、可変長配列を宣言することができますが、もちろん関数の引数にも
使うことができます。例えば、(1)のようにして使用します。可変長配列の中に使う変数は、
そこで使用する以前に他で宣言されていて、コンパイラに対して可視になっている必要が
あります。したがって、void sumup(int data[m][n], int m, int n){ ... } のような関数定義は、
ファイルスコープレベルで m や n という整数変数が宣言されていない限りエラーになります。

なんじゃこりゃ
使えんなー

全部main()内に書くか


431: ◆EiEUm/qHNk
11/11/20 07:44:36.16
>>429
うーん、よくわからないですけど
C言語ならったばっかりの学生に
作らせているので、main()のなかまでは
干渉しないとは思うのですが、、
すいません、よくわからないことをいって
しまって

432:デフォルトの名無しさん
11/11/20 07:48:27.24
>>399 >>412
URLリンク(codepad.org)
妥当な短さで汚いコードどうぞ。


433:デフォルトの名無しさん
11/11/20 09:09:40.18
やっと作業終わった・・・

>>421
URLリンク(ideone.com)

c99でかつfabs()を使わない部分ピボット選択ならこんな感じになるよ

434: ◆EiEUm/qHNk
11/11/20 09:14:05.77
>>433
作業お疲れ様です。
学校で試してみます!
本当にありがとうございました

435:デフォルトの名無しさん
11/11/20 09:15:02.50
>>430
書いてあるようにvoid sumup(int m, int n, int data[m][n])ならおkって意味だろ

436:デフォルトの名無しさん
11/11/20 09:15:49.91
>>432
出力結果が変だぞ

tensu ::::
8001 78 64 88 90
8004 34 40 52 67
8013 83 77 89 93
8025 98 81 69 77
8062 56 63 47 23

Student Average::::
8001 : 80.00
8004 : 48.00
8013 : 85.00
8025 : 81.00
8062 : 47.00

Subject Average::::
Mat : 69.8
Phys : 1.034023498044222881300000000000000000000e+291
Chem : +NAN
Eng : 70.0

437:デフォルトの名無しさん
11/11/20 09:18:42.28
>>435
void sumup(int data[*][*]. int m, int n);

プロトタイプ宣言で先に可変長配列を持ってきたい時はこう書く必要があるみたいだな


438:デフォルトの名無しさん
11/11/20 09:21:00.62
>>432
>>436の原因が分かった

sumSubjectの初期化がされていない

double sumSubject[4] = {0.0, 0.0, 0.0, 0.0};

439:デフォルトの名無しさん
11/11/20 18:05:09.98
>>407
for(i =0; i < x; i++){
for(j =0; j < y; j++){
v=i/2*cos(-15*PI/180)-j/2-*sin(-15*PI/180)+x/2;
w=-i/2*sin(-15*PI/180)+j/2*cos(-15*PI/180)+y/2;
image_out4[v][w] =image1[i][j];}}
一応こんな感じにやって見ましたが大丈夫でしょうか?


440:デフォルトの名無しさん
11/11/20 18:29:15.04
cos(-15*PI/180)とsin(-15*PI/180)の結果自体はループ外で求めておいたら?

441:デフォルトの名無しさん
11/11/20 18:53:36.30
>>439
逆にしないと絵に穴が開くのと
有効範囲かどうかのチェックが必要

442:デフォルトの名無しさん
11/11/20 19:01:35.94
>>439
>>407 で -theta にしてるのは dest を基準に考えると逆回転になるよって意味だからね

443:デフォルトの名無しさん
11/11/20 22:04:08.54
>>414は「nイカ」は「n以下」です。すいません

444:デフォルトの名無しさん
11/11/20 22:14:59.92
>>442
ありがとうございます。理解しました

445:デフォルトの名無しさん
11/11/20 23:20:51.73
>>414

#include <stdio.h>
int main(){
int n, sum = 2, i = 2, j;
printf("n = ");
scanf("%d", &n);

printf("素数:");
while (i++ < n) {
j = 2;
while ((i % j) && j * j <= i)
j++;
if (i % j) {
printf("%d,", i);
sum += i;
}
}
printf(" 累積:%d¥n", sum);

return 0;
}

446:デフォルトの名無しさん
11/11/20 23:54:05.16
>>445
そういう処理ならエラトステネスのふるいを使ってみるとか

447:デフォルトの名無しさん
11/11/21 00:06:21.94
>>445
累積が間違ってるな

448:デフォルトの名無しさん
11/11/21 00:16:15.20
>>445
とってもありがとうございます
>>447
多分合ってると思います。15入力してちゃんと41とでるので

449:デフォルトの名無しさん
11/11/21 00:34:47.74
多分素数の2が表示されてないからじゃね

450:デフォルトの名無しさん
11/11/21 00:34:49.52
>>448
X printf("素数:");
O printf("素数:2 ");

451:デフォルトの名無しさん
11/11/21 01:01:05.52
雑談すまん。
小さいコードなんで処理を追えるから勉強になります。

452:デフォルトの名無しさん
11/11/21 01:34:13.40
>>414
エラトステネスのふるいで。
URLリンク(ideone.com)

453:デフォルトの名無しさん
11/11/21 02:19:10.47
>>452
ありがとうございます!

454:デフォルトの名無しさん
11/11/21 02:32:02.30
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
線形リスト構造で、整数を1つ入れる度にソートし、出力するプログラムを作成せよ
配列はitem[11]とnext[11]を用意する。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C言語
[4] 期限:22日まで
[5] その他の制限:構造体はなるべく分かりやすくお願いします
よろしくお願いします

455:デフォルトの名無しさん
11/11/21 02:58:47.20
>>454
問題に書き写し間違いは無い?

>配列はitem[11]とnext[11]を用意する。
なら
int item[11];
int next[11];

>[5] その他の制限:構造体はなるべく分かりやすくお願いします
だと
struct list{
int item;
strruct list *next;
}data[11];

のように、やり方が互いに違うと思うんだが。

456:デフォルトの名無しさん
11/11/21 03:06:24.45
>>454
structとポインタ習ってます?

457:デフォルトの名無しさん
11/11/21 08:40:13.50
>>455-456
すみません。構造体云々は間違えてす
ポインタでした。
構造体はまだ習ってないです。

458:デフォルトの名無しさん
11/11/21 08:56:51.98
え、ポインタ?構造体を使わずにポインタを使う線形リスト?


459:デフォルトの名無しさん
11/11/21 09:04:00.57
>>457
それだと配列nextの扱いはどうなるんだ?
配列itemと内容が同じになりそうなんだが。

460:デフォルトの名無しさん
11/11/21 09:13:04.92
>>459
勘違いした。

461:デフォルトの名無しさん
11/11/21 09:15:29.05
item[]はただのコンテナで、next[]に次のitemの要素のインデックスを
保持するとかなするんじゃ?
とにかくリストのデータ構造が実現されていれば別に構造体じゃなくてもいい。

462:454
11/11/21 10:12:33.80
わかりづらくてホントにすみません。
言いたいことは、>>461さんのであってると思います。

463:デフォルトの名無しさん
11/11/21 10:39:56.99
>>454
ポインター(int *p など)は使っていない。
URLリンク(ideone.com)

464:デフォルトの名無しさん
11/11/21 11:12:33.86
挿入ソートかなこれ
C99じゃないとコンパイルエラーが出るな

465:デフォルトの名無しさん
11/11/21 13:54:05.05
>>442
理解したと思っていましたが出できた画像が回転でなくせん断された画像なんですがこのdestっていうのはなんですか?

466:デフォルトの名無しさん
11/11/21 14:45:31.32
>>465
dest は destination の略
式に変なアレンジしなければ大丈夫

467:デフォルトの名無しさん
11/11/21 15:20:30.58
>>466
変にアレンジしてました。今度こそ大丈夫です。ありがとうございました

468:デフォルトの名無しさん
11/11/21 16:20:09.76
>>464
gcc -std=c89
でコンパイル通るけど、エラーメッセージは?

469:デフォルトの名無しさん
11/11/21 18:08:42.75
gccじゃなくてbcc32を使ってた
初期化の部分で最低一個データを入れないとエラーになった
Eclipse CDTからMinGWで -std=c89 でやると確かにエラーが出ない
bcc32が間違ってるのか

470:デフォルトの名無しさん
11/11/21 18:25:16.15
[2]つぎの関数をつくる
void zeroSuppress(char *src, char *dst, char pos, char flg)
posは小数点を挿入する位置で1なら1桁目と2桁目の間に
小数点があるものとしてゼロサプレスします。
文字数<=posの場合処理しない。
動きの例
src = "0123456"、 pos = 1 →dst = "123456"
src = "0012500" pos = 2 →dst ="12500"
src = "0000001" pos = 3 →dst ="0001"
src = "000B12" pos = 2 →dst ="000"(Bとそれ以降は無視)
flg = 1だと\0でうめる
src = "0000001" pos = 3 →dst = "\0\0\00001"

471:デフォルトの名無しさん
11/11/21 18:55:57.69
何がしたいのか良く判らんのだけど
src = "0012500" pos = 3 の場合は?

472:デフォルトの名無しさん
11/11/21 20:11:39.05
>>470 宿題じゃなさげな・・・
引数にchar使うよーなのは・・・・かなり特殊な環境に思うんだが。
flg=1だと・・・"\0" "\0" "\000" "01"と解釈でいいんかしら?

473:デフォルトの名無しさん
11/11/21 20:20:05.80
>>472
宿題ではなさそうってのは同意だが、NULLで埋めて右詰って用途が謎だ
nullnullnull0001 って話だと思うよ

でもなんか仕様が良く判らんな、 >>471 への回答も無いし flg による動作に一貫性が無い
上司に要求仕様をちゃんと確認した方が良い

474:デフォルトの名無しさん
11/11/21 20:39:29.03
んー。エスパーしてみるが。
7セグメントLED(小数点付き)の出力用。。。
nulは非表示・・・。
文字数固定。

475:454
11/11/21 21:32:43.27
>>463
ありがとうございます。
諸事情で今はWinVCしか使用出来ないのですが、
これだとiとjとnextが定義されないのですが、iとjとnextを初期化してもエラーになるのはどうしてでしょうかね?

476:デフォルトの名無しさん
11/11/21 21:50:35.50
>>470
Bがある場合と、0埋めが判らないので、作りかけ。
URLリンク(ideone.com)

477: ◆EiEUm/qHNk
11/11/21 22:30:36.83
[1] 授業単元:C言語
[2] 問題文:3*3の逆行列Aをもとめよ
URLリンク(ideone.com)
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラとバージョン: gcc
 [3.3] 言語:C言語
[4] 期限:11月22日まで
[5] その他の制限:math.h や #difine などは習っていないので使えません。
アップロダにてソースを上げてみたのですが、学校では値が出ました、
あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
どうすればいいのかわかりません。
先日、ガウスの消去法で、行交換のしかたを教えてもらったのですが、上記にあげた
ソースにも行交換をしていただけるとありがたいです

478:デフォルトの名無しさん
11/11/21 22:54:28.63
>>477
3x3 の逆行列なら公式を使うという手もあるぞ
使っちゃダメかもしれないがw

479:454
11/11/21 23:11:12.33
宣言初期化全て出来ました
お騒がせしてすみません

480:デフォルトの名無しさん
11/11/21 23:31:31.09
[1] 授業単元:プログラミング技法、配列とポインタ
[2] 問題文(含コード&リンク):整数型配列a[10]とb[10]を宣言し、a[10]に任意で数値を10個入力する。
b[10]は初期値として0を代入しておく。
任意で入力された10個の整数のうち、奇数のみ抜き出してb[0]から順番に代入する。
最後に配列bの中身を出力し終了する。このとき0は表示されないようにすること。
[3] 環境
 [3.1] OS:win764bit
 [3.2] コンパイラ名とバージョン:cpad ver2.31
 [3.3] 言語:c
[4] 期限:11月22日18:00
[5] その他の制限:お願いします

481:デフォルトの名無しさん
11/11/22 00:21:56.67

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):(1,10,5) (1,20,10)...というテキストデータを読み込み、一番左の数字(ここでいう1と1)を一つの配列として表示と書きこみをするプログラム。(真ん中も右の数字も同じように処理する)
 [3.1] OS: (Windows/Linux/等々) Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) c言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 11月23日 15時
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 何でもおk

482:デフォルトの名無しさん
11/11/22 00:53:34.84
>>480
URLリンク(ideone.com)

>>481
テキストの仕様は一行なのか、複数行なのか、また数字は必ず3つの組?
一つの配列として表示とはどのように? 書きこみとはどこに?

483:デフォルトの名無しさん
11/11/22 00:59:30.49
>>482
すみません。

数字は必ず三つの組で、テキストは(1,10,5)改行(1,20,10)と続いていきます。
一つの配列として表示とは、「1,1,1,1,1,1,1,1...]みたいな感じだと思います。
書きこみ先は、新規のファイルにだと思います。


484:デフォルトの名無しさん
11/11/22 01:46:05.56
>>480
#include <stdio.h>
#include <memory.h> //だっけ?

int main(void)
{
 int a[10],b[10];
 int i,j;
 memset(b,0,10);
 for(i=0;i<10;i++){scanf("%d",a[i]);}
 for(i=j=0;i<10;i++,j++){
  if(a[i]&1)b[j]=a[i]);
  printf("%d\n",b[j]);
 }
 return(0);
}


485:デフォルトの名無しさん
11/11/22 03:21:57.86
>>481
まさかこんなに手間取るとは思わなかった…。
URLリンク(ideone.com)


486:デフォルトの名無しさん
11/11/22 03:31:32.09
>>481
すまない。>>485はバグ有り。
URLリンク(ideone.com)

487:デフォルトの名無しさん
11/11/22 03:41:11.76
>>481
URLリンク(ideone.com)
./a.out <input で画面出力
./a.out <input >output でファイル出力
テケトーですまん。

488:デフォルトの名無しさん
11/11/22 04:03:58.50
>>486
本当にありがとうございます。
すみませんが、./a.out [infile] [outfile]で実行しても、outfileに書きこまれないのですがやり方が悪いのでしょうか?

489:デフォルトの名無しさん
11/11/22 04:05:37.40
>>487
本当にありがとうございます。
申し訳ないのですが、配列の表示の仕方は縦ではなくて横が良かったのですが変更はできますか?

490:デフォルトの名無しさん
11/11/22 04:08:39.61
>>481ですが
付けたしになってしまって本当に申し訳ないのですが、書きこみは左、真ん中、右と一つずつ分けてそれぞれ3つのファイルに出力しないといけないみたいです。すみません。

491:デフォルトの名無しさん
11/11/22 04:16:00.35
>>490
URLリンク(ideone.com)
ファイル開けない理由はよくわからない。
残念ながらこっちの環境では成功してる。

492:デフォルトの名無しさん
11/11/22 04:18:56.73
>>491 バグ有り。またやってしまった。
初期化部分修正。
URLリンク(ideone.com)

493:デフォルトの名無しさん
11/11/22 04:25:23.29
>>491
ありがとうございます!
空のテキストファイルをoutfileにしてるのですが、実行しても何も書きこまれません。
環境は同じはずなのに何でだろう・・・

494:デフォルトの名無しさん
11/11/22 04:35:10.99
#include<stdio.h>
int main(int a,char** b){
FILE* fp;
if(a>1&&fp=fopen(b[1],"w")){ fprintf(fp,"test\n"); fclose(fp); }
return 0;
}

これ
./a.out outfile
で文字は入ります?


495:デフォルトの名無しさん
11/11/22 04:35:28.81
>>481
URLリンク(ideone.com)

496:495
11/11/22 04:37:35.16
すまん、俺もバグったw

497:デフォルトの名無しさん
11/11/22 04:38:10.24
間違えました。ごめんなさい。

#include<stdio.h>
int main(int a,char** b){
FILE* fp;
if(a>0){
if(fp=fopen(b[1],"w")){ fprintf(fp,"test\n"); fclose(fp); }}
return 0;
}

498:495
11/11/22 04:40:25.34
>>481
URLリンク(ideone.com)

499:デフォルトの名無しさん
11/11/22 04:51:13.82
>>497
文字入りました!

500:デフォルトの名無しさん
11/11/22 05:27:12.86
>>481
これでダメならもうお手上げです…。
URLリンク(ideone.com)

485=486=491=492=494=497でした。


501:デフォルトの名無しさん
11/11/22 05:36:36.47
>>500
何度もありがとうございます。
ただ、上手くいきません・・・
自分で変える部分は、13行目のfilenameとmodeの部分だけですよね?


502: ◆EiEUm/qHNk
11/11/22 05:46:49.54
だ、だれか逆行列のピボット選択のしかたを教えてください、、、

503:デフォルトの名無しさん
11/11/22 05:55:11.87
>>501
fcloseをfix。
URLリンク(ideone.com)

何も変更せずにそのままコンパイルしてください。
コンパイル後の使用方法 (読み込みファイルがtest.txtの場合)

./a.out text.txt test1.txt test2.txt test3.txt


504:デフォルトの名無しさん
11/11/22 05:56:03.12
致命的なtypo

コンパイル後の使用方法 (読み込みファイルがtest.txtの場合)
./a.out test.txt test1.txt test2.txt test3.txt


505:デフォルトの名無しさん
11/11/22 07:42:39.22
>>477
URLリンク(ideone.com)

一応行列Aが潰れていないか(正則であるか)のチェックを入れた
不要だったらカットして下さい

506:デフォルトの名無しさん
11/11/22 07:44:39.27
>>502
遅れてすみません
昨晩早く寝たもんで

507:デフォルトの名無しさん
11/11/22 08:48:51.75
>>471
src = "0012500" pos = 3 → dst = "12500"
flg = 1なら"\0\012500"

>>474
すごいです。当たりです。


508:デフォルトの名無しさん
11/11/22 08:51:53.71
>>507
posが何を意味しているのかわからない。

509:508
11/11/22 08:53:04.46
>>507
言葉で説明して下さい。


510:デフォルトの名無しさん
11/11/22 09:13:37.55
>>507
クイズかよw

511:デフォルトの名無しさん
11/11/22 09:36:01.49
>>508
posは小数点が挿入される位置です。

src = "0012500" pos = 3 → dst = "12500"
これだと12.500となるため頭の02つは消えます。
flg=1だと\0でうめるので0が\0になります。

512:508
11/11/22 09:43:01.14
>>511
ごめんなさい。わかりました。


513:デフォルトの名無しさん
11/11/22 12:08:22.93
>>470,511
'Bとそれ以降は無視'が不明なので作りかけ。
・英字が含まれていたらpos,flg無効?
URLリンク(ideone.com)

514:デフォルトの名無しさん
11/11/22 12:17:09.18
>>513
数字以外だとその文字とそれ以降を無視します。
たとえば
"0234YB00"だと"0234"の文字数4として扱います。
flgは有効です。このときposが1なら"234"
posが3なら"0234"となります。

515:デフォルトの名無しさん
11/11/22 12:59:18.96
>>514
もしかしたら、'n桁目'というのは右から数えてる?

516:デフォルトの名無しさん
11/11/22 13:06:07.92
>>515
yes

517:デフォルトの名無しさん
11/11/22 13:09:30.49
>>516
了解。
>>数字以外だとその文字とそれ以降を無視します。
これで左からだと解釈してた。

518: ◆EiEUm/qHNk
11/11/22 14:15:05.99
>>505
ありがとうございます

519:デフォルトの名無しさん
11/11/22 16:10:22.23
>>470,516
URLリンク(ideone.com)

520:デフォルトの名無しさん
11/11/22 16:39:34.64
>>>470,516,519
バグ修正
URLリンク(ideone.com)

521:481
11/11/22 16:41:15.63
>>503
ありがとうございます!
何も変更しなかったら成功しました!本当にありがとうございました。

522:デフォルトの名無しさん
11/11/22 17:21:51.36
>>519
ありがとう。

523:デフォルトの名無しさん
11/11/22 18:04:19.44
>>482
>>484
ありがとうございました

524:デフォルトの名無しさん
11/11/22 18:13:37.81
>>519
おーいバグってるぞ
ポインタがさかのぼりすぎ

Error 00001. 0x140300 (Thread 0x04D8):
Pointer arithmetic underrun: 0x0012FF1F-4, that is at offset 3-4 in local
block 0x0012FF1C(=[ebp-0x70] @dai45.exe:0x01:00040A) (size 100).
| dai45.c line 36:
| *pd++ = *ps++;
| *pd = '\0';
|> pd -= (pos - '0'+2);
|
| while (pd >= dst) { /* 不要な0をnullにする */
Call Tree:
0x004012AA(=dai45.exe:0x01:0002AA) dai45.c#36
0x0040140A(=dai45.exe:0x01:00040A) dai45.c#63
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)

------------------------------------------
Error 00002. 0x140300 (r) (Thread 0x04D8):
Pointer arithmetic underrun: 0x0012FF1F-4, that is at offset 3-4 in local
block 0x0012FF1C(=[ebp-0x70] @dai45.exe:0x01:00048A) (size 100).
| dai45.c line 36:
| *pd++ = *ps++;
| *pd = '\0';
|> pd -= (pos - '0'+2);
|
| while (pd >= dst) { /* 不要な0をnullにする */
Call Tree:
0x004012AA(=dai45.exe:0x01:0002AA) dai45.c#36
0x0040148A(=dai45.exe:0x01:00048A) dai45.c#72
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)

525:デフォルトの名無しさん
11/11/22 18:18:09.52
URLリンク(codepad.org)の実数の出力が上手くいきません
どうしても「5」ではなく「0」と出力されてしまいます
教えて下さい

526:デフォルトの名無しさん
11/11/22 18:49:35.28
>>525
X Jissu(double j) : Fukusosu() {}
O Jissu(double j) : Fukusosu(j,0) {}


527:デフォルトの名無しさん
11/11/22 19:52:24.02
>>526
なるほど!そういうことでしたか
ありがとうございます

528:デフォルトの名無しさん
11/11/22 20:06:47.97
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
URLリンク(iup.2ch-library.com)
URLリンク(iup.2ch-library.com)
URLリンク(iup.2ch-library.com)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2011年11月24日
[5] 解答例がある課題はそれをそのまま使っていただけたらと思います。

よろしくお願いします。

529:デフォルトの名無しさん
11/11/22 20:20:47.32
>>528 できれば、画像ファイルじゃなくて文字でくださいな。

530:デフォルトの名無しさん
11/11/22 20:46:07.43
>>528
そのまま使っていただけたらって、打ち込めって事?

531:デフォルトの名無しさん
11/11/22 20:48:23.68
[1] 授業単元:プログラミングI
[2] 問題文(含コード&リンク):角度0度から90度までのsin(x)の値を1度刻みで表示する
プログラムを作りなさい。
πの値は3.141592ではなく、M_PIを用いること。
[3] 環境
 [3.1] OS: (Windows/Linux/等々) windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) c言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)  2011年11月22日 23:50まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) for文またはwhile文を用いて答える。

プログラミング初心者です。いろいろ調べたのですが、答えが出ないので教えてください。お願いします。

532:デフォルトの名無しさん
11/11/22 20:51:53.69
テーブルにあらかじめデータを格納しておいて順番に表示

533:528
11/11/22 20:54:47.30
>>529 >>530
すいません!訂正しました。よろしくお願いします。

[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
URLリンク(iup.2ch-library.com)
URLリンク(iup.2ch-library.com)
解答例等>>534
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2011年11月24日
[5] 解答例がある課題はそれをそのまま使っていただけたらと思います。

534:528
11/11/22 20:55:47.56
課題2 解答例
struct cell *makeNullList(void)
{
struct cell *list;

list = (struct cell*)malloc(sizeof(struct cell));
if (list == (struct cell*)NULL) {
fprintf(stderr, "makeNullList: can not allocate memory for new list.\n");
exit(1);
}

list->next = (struct cell*)NULL;

return list;
}

課題3 解答例
struct cell *nextCell(struct cell *target, struct cell *list)
{
struct cell *next = (struct cell*)NULL;

if (target != (struct cell*)NULL) {
next = target->next;
}

return next;
}

535:デフォルトの名無しさん
11/11/22 20:55:52.15
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):
逆アフィン変換で幾何学変換を行うプログラムを作成せよ。2つの補間法(バイリニア,バイキュービック)を使用すること
URLリンク(codepad.org)
[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ名とバージョン: windows visual studio2008
 [3.3] 言語: c++
[4] 期限:2011年11月24日 13:00
[5] バイリニアはなんとか作成ができたのですがバイキュービックが全然理解できません。
貼ってあるのはバイリニアのプログラムです。



536:528
11/11/22 20:56:42.46
>>534の続き
課題9 解答例
struct cell *locateCell(int data, struct cell *list)
{
struct cell *current;

current = firstCell(list);

while ((current != (struct cell*)NULL)
&& (retrieveCell(current, list) != data)) {
current = nextCell(current, list);
}

return current;
}

プロトタイプ宣言
struct cell *makeNullList(void);
struct cell *nextCell(struct cell *, struct cell *);
struct cell *firstCell(struct cell *);
struct cell *endCell(struct cell *);
struct cell *previousCell(struct cell *, struct cell *);
struct cell *insertCell(int, struct cell *, struct cell *);
struct cell *deleteCell(struct cell *, struct cell *);
int retrieveCell(struct cell *, struct cell *);
struct cell *locateCell(int, struct cell *);
void deletelist(struct cell *);
void printlist(struct cell *);

537:デフォルトの名無しさん
11/11/22 20:58:22.39
>>531
こういうこと?
URLリンク(ideone.com)

538:デフォルトの名無しさん
11/11/22 21:06:46.15
>>537
はい!これを探してました!
助かりました、ありがとうございます。

539:デフォルトの名無しさん
11/11/22 21:07:26.57
探すw

540:デフォルトの名無しさん
11/11/22 21:11:39.21
>>538
出遅れた orz
一応貼っておく。 URLリンク(ideone.com)

541:デフォルトの名無しさん
11/11/22 21:28:37.68
[1] プログラミング応用
[2]問1 キーボードからUser構造体の情報(ID、ニックネーム、生年月日)を1名分入力し、
    その内容を表示するプログラムを作成せよ
 注:ニックネームにスペースを含めてはいけない
   scanf()中の文字列変数の指定方法に注意
指定方法
User A;
scanf("%s %s %d/%d/%d",
A.ID, A.name,
&A.year, &A.month, &A.day);
問2  問1のプログラムを改造し、複数名のユーザー情報をキーボードから入力し、
    最初のユーザーと同じ誕生月のユーザーの、「生年月」とニックネーム
    の一覧を出力するプログラムを作成せよ
  注:入力するユーザー数は固定値でよい(5名程度)
     入力する情報はダミーでよい
[3] 環境
 [3.1] W7
 [3.2] Visual C++ 2010 Express
 [3.3] どちらでも可
[4] 2011年11月25日22:00

よろしくお願いします。

542:デフォルトの名無しさん
11/11/22 21:44:21.02
>>531
#include <math.h>

#ifndef M_PI
#define M_PI 3.1415926
#endif

int main(void)
{
int i;
for (i = 0; i <= 90; i++)
printf("%d %f\n", i, sin(i / 180.0 * M_PI);
return 0;
}

コンパイルはgcc a.c -o a.out -lm
実行は./a.outで。

543:542
11/11/22 21:45:54.21
あー。ミスってるけどいいやw

544:デフォルトの名無しさん
11/11/22 21:55:34.15
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):5 つの要素を持つdouble 型配列vx[] に対し
て,その各要素の正負を反転するプログラムを,
ポインタ演算を用いて作成せよ.例えばvx[] が
{1.1, 2.2, -3.3, 4.4, -5.5}であったとき,プログ
ラムの結果vx[] は{-1.1, -2.2, 3.3, -4.4, 5.5}
となる.ただし,プログラムは以下の要件を満たすこと
とする.

解答例等
5 つの実数を入力してください
vx[0] = 1.1
vx[1] = 2.2
vx[2] = -3.3
vx[3] = 4.4
vx[4] = -5.5
正負を反転させました。
vx[0] = -1.100000
vx[1] = -2.200000
vx[2] = 3.300000
vx[3] = -4.400000
vx[4] = 5.500000
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2011年11月24日 9:00
[5] double 型配列vx[] はmain 関数内で宣言し,以下
の実行例のように各要素の値をユーザに入力させよ


545:デフォルトの名無しさん
11/11/22 21:56:30.19
>>544
続き
[5]
• main 関数内でポインタ変数vxp を宣言し,vxp を
用いたポインタ演算によって配列vx[] の各要素の
値を書きかえること.
• ポインタ演算で正負を反転させる際には,添字演
算子[] は使用しないこと.
• vx[] の5 つの要素すべてを書きかえてから,最後
にその結果を表示すること


546:デフォルトの名無しさん
11/11/22 21:58:59.18
なんで今日はこんなに宿題おおいん

547:デフォルトの名無しさん
11/11/22 22:03:42.97
>>541
値チェック無し。
1. URLリンク(ideone.com)
2. URLリンク(ideone.com)

548:デフォルトの名無しさん
11/11/22 22:07:29.00
1] 授業単元:画像処理
[2] 問題文(含コード&リンク):
text.txtを読み取って0なら空白を、1なら*を表示するプログラム(test.c)がある。
これを改良してtest.txtをtext.bmpに変換するプログラムを作れ。
(ただし、0を白色、1を黒色とする。)
test.c
URLリンク(codepad.org)

/********test.txtの中身**********
11 6
0 1 1 1 1 1 0 0 0 0 0
0 1 0 1 1 0 1 0 0 0 1
0 1 1 1 1 1 0 0 0 0 0
0 1 0 0 1 1 0 1 0 0 1
0 1 1 1 0 1 0 0 0 0 0
0 1 1 0 0 1 0 0 0 0 0
******************************/

[3] 環境
 [3.1] OS:windows7 32bit
 [3.2] コンパイラ名とバージョン: Borland5.51
 [3.3] 言語: c
[4] 期限:2011年11月27日 17:00
[5] windouwsAPIなど、複雑なものは使わずにお願いします。

549:デフォルトの名無しさん
11/11/22 22:08:00.42
>>546
明日休みだからじゃね?

550:デフォルトの名無しさん
11/11/22 22:15:56.77
>>544
こんな感じでどうでしょう?

URLリンク(ideone.com)

551:デフォルトの名無しさん
11/11/22 22:28:27.17
>>>544付け加えときます。すいませんポインタの問題です


552:デフォルトの名無しさん
11/11/22 22:34:44.64
>>548
bmpのフォーマットは?

553:デフォルトの名無しさん
11/11/22 22:35:54.81
>>544
URLリンク(ideone.com)

554:デフォルトの名無しさん
11/11/22 22:36:46.02
>>551,>>544
URLリンク(ideone.com)

555:デフォルトの名無しさん
11/11/22 22:38:21.08
>>544
URLリンク(ideone.com)

556:デフォルトの名無しさん
11/11/22 22:41:05.68
>>552
4bitでお願いします

557:デフォルトの名無しさん
11/11/22 23:10:52.76
>>528
URLリンク(ideone.com)

558:デフォルトの名無しさん
11/11/22 23:15:30.35
>>556
構造体は自前?ヘッダ?

559:デフォルトの名無しさん
11/11/23 00:03:06.03
>>558
borland5.11にあるヘッダファイルなら使ってもいいと思います

560:デフォルトの名無しさん
11/11/23 00:04:33.19
>>558
自前で簡単にできそうなら、できればそれでお願いします

561:デフォルトの名無しさん
11/11/23 00:46:12.24
>>546
いや、嫌がらせだよ。

562:デフォルトの名無しさん
11/11/23 01:26:51.10
>>560
一応聞いておくけどbmpのフォーマットはwindows用でいいんだよね…?

563:デフォルトの名無しさん
11/11/23 01:41:41.66
>>562
はい、windowsでお願いします

564:デフォルトの名無しさん
11/11/23 04:30:34.72
>>563
URLリンク(ideone.com)
bcc32コンパイル動作確認済み。

565:デフォルトの名無しさん
11/11/23 04:44:13.43
>>564
すまない、白と黒が逆だった
URLリンク(ideone.com)


566:デフォルトの名無しさん
11/11/23 09:05:42.47
[1] 授業単元:プログラミング演習 2
[2] 問題文(含コード&リンク)
行列の積を計算する関数multの関数プロトタイプ宣言が以下のように記述されている
void mult(double *ma, double *mb, double *mc, int n);
いま、定数Nの値がmain関数の外で#define N 3 と定義されている。N×Nの正方行列maとmb,そしてmcはmain関数の中で
double ma[N][N];
double mb[N][N];
double mc[N][N] = { 0.0 } ;
と定義されている。このとき関数multを次のように呼び出して行列の積mc=ma • mb を計算したい。
mult((double *)ma, (double *)mb, (double *)mc, N);
関数multをブラケット演算子[]なしで書き上げなさい。
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:11月23日(出来れば早めにお願いします)

567:デフォルトの名無しさん
11/11/23 10:54:47.22
>>565
ありがとうございます!
でもそのプログラムはどうやって使えばいいのでしょうか?
test.txtと同じディレクトリでコンパイルして実行しても
usage: program.exe file-IN file-OUTと出るだけです。

568:デフォルトの名無しさん
11/11/23 11:41:40.55
>>566
URLリンク(ideone.com)

569:デフォルトの名無しさん
11/11/23 11:50:38.44
>>566
>>568さんのとは少し違う方法で

URLリンク(codepad.org)

570:デフォルトの名無しさん
11/11/23 11:55:56.47
>>557
ありがとうございます!


571:デフォルトの名無しさん
11/11/23 14:46:23.20
>>567
変えました…。これでいけるはずです…。
URLリンク(ideone.com)

ちなみに前のは、cmd.exeから、

cd [プログラムの入ってるフォルダの絶対パス]
[プログラムの名前] test.txt test.bmp

とやることで入力、出力を指定できます。

572:デフォルトの名無しさん
11/11/23 15:17:02.93
>>571
できました、ありがとうございます!
ちなみにwindef.hを使えばもっと簡単にできるのですか?

573:デフォルトの名無しさん
11/11/23 15:23:35.21
すべての環境でビットマップ用にヘッダ群が用意されてるわけじゃないだろうからねぇ・・・
WindowsSDKが入ってるならWingdi.hにBITMAPINFOHEADER等が用意されているけど。


574:デフォルトの名無しさん
11/11/23 16:30:43.65
>>573
そうなんですか、ありがとうございました!

575:デフォルトの名無しさん
11/11/23 17:39:05.18
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):変数内の文字列変換
     URLリンク(www.kent-web.com)
[3] 環境
 [3.1] OS:指定なし
 [3.2] コンパイラ名とバージョン:指定なし
 [3.3] 言語:C
[4] 期限:2011年11月24日
[5] その他の制限:

よろしくお願いします



576:デフォルトの名無しさん
11/11/23 17:54:22.29
>>575
こういうこと? URLリンク(codepad.org)

577:デフォルトの名無しさん
11/11/23 17:55:04.04
>>575
解いてみようと思ったけど、shift-JIS?みたいで読めないな。
テンプレにあるアップローダーならokだと思うが。

578:デフォルトの名無しさん
11/11/23 19:49:44.56
>>577
>解いてみようと思ったけど、shift-JIS?みたいで読めないな。
んなこたぁない

579:566
11/11/23 19:54:21.48
>>568の方のwarningを消すにはどうすればいいでしょうか?

580:デフォルトの名無しさん
11/11/23 20:04:22.37
[1] 授業単元: 実数型変数の精度
[2] 問題文(含コード&リンク): 実数型の形式は以下のものとする
符号部(1ビット)   指数部(nビット)    仮数部(mビット)

以下のプログラムの実行結果から実数型変数の形式を類推する方法の検討
URLリンク(ideone.com)
[3] 環境
 [3.1] OS:unix
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限:

581:デフォルトの名無しさん
11/11/23 20:09:52.13
>>579
URLリンク(ideone.com)

582:デフォルトの名無しさん
11/11/23 20:26:29.99
>>580
>>373,382

583:デフォルトの名無しさん
11/11/23 21:47:07.73
>>582
ありがとうございます

あと、指数部を符号なし整数としてオフセットを用いて
表現する方法を教えてください。

584:デフォルトの名無しさん
11/11/23 21:55:45.61
初心者です、お願いします。


新規にフォームアプリケーションプロジェクトを作成すると
左のソリューションエクスプローラーの中に、
「ソースファイル」と「ヘッダーファイル」があります。

map関数を使いたいのですが、
#include <map>は「stdafx.h」に書けばいいですか?

また、
「Debug::WriteLine」を使いたいので「using namespace System::Diagnostics;」と書きたいのですが、
「stdafx.h」に書けばいいですか?


585:デフォルトの名無しさん
11/11/23 21:56:48.69
>>584
>>1

586:584
11/11/23 22:03:04.02
相談室に行ってきます。

587:583
11/11/23 22:08:10.25
追記:wikiではよく分からなかったので、噛み砕いて教えて下さい

588:デフォルトの名無しさん
11/11/23 23:02:02.66
>>587 1)Wikipediaの当該箇所をコピペ
(宿題を提出する上では理解する必要なない)

2)奇数から偶数になるときの値から-1~+1で提出すればよし。

だいぶ噛み砕いたつもり。



589:デフォルトの名無しさん
11/11/23 23:15:45.09
>>588

wikiのだとオフセットを用いて表現する、という条件が満たされていないような・・・

590:デフォルトの名無しさん
11/11/23 23:17:50.19
オフセット=バイアスね。

591:デフォルトの名無しさん
11/11/23 23:36:01.60
>>590
ありがとうございます

あと、
>>580
のfloatをlong doubleに変えた場合も同じやり方でいいんでしょうか?

592:デフォルトの名無しさん
11/11/23 23:56:39.38
>>591
あたり前だけど、試してから質問すればいいんでないかい?



593:デフォルトの名無しさん
11/11/24 00:05:41.71
>>592

試してみたら、仮数部が63ビットとかになったんですが。


多分合ってないと思うんですけど、どうでしょうか?

594:デフォルトの名無しさん
11/11/24 00:14:38.70
>>587
X wiki
O Wikipedia

595:デフォルトの名無しさん
11/11/24 00:26:01.85
sizeof(long double)
がおいらの環境で16(128ビット)なんでアリなんじゃないですかねぇ。

596:デフォルトの名無しさん
11/11/24 00:32:53.27
ああ、宿題の範囲こえてるからどーでもいーんじゃw?
printf("%Lf", long_double_value);
ってしないと正しく表示しないかも。

597:デフォルトの名無しさん
11/11/24 00:33:59.93
[1]データ構造とアルゴリズム
[2]
以下の関数を作成しなさい。

llist_t reverse(const llist_t ls);
連結リストlsの要素を逆順に並べ替えた連結リストを新たに作成して返す。

補足:
typedef struct node {
int data;
struct node *next;
} node_t;

typedef node_t *llist_t;
[3] Windows
[3.1]windows 7
[3.2] EasyIDEC Ver 0.0.9.0
[3.3] C言語
[4] 11月25日
[5] 再帰呼び出しを必ず用いる。



598:デフォルトの名無しさん
11/11/24 00:40:22.85
>>595
色々と調べたら仮数部は113ビットらしいんですが・・・


>>596
どういうことですか?

599:デフォルトの名無しさん
11/11/24 00:41:48.28
>>597
多分、ノード作成用の関数を教わっているはずなので教えてくださいな。

600:デフォルトの名無しさん
11/11/24 00:43:33.70
>>599 
すみません書き忘れてました。

int *allocInt(void){
return (int *)malloc(sizeof(int));
}
です。


601:デフォルトの名無しさん
11/11/24 00:44:02.73
printf("%d", [charからint]);
printf("%f", [floatかdouble]);
printf("%Lf", [long double]);
ということ。


602:デフォルトの名無しさん
11/11/24 00:49:48.21
>>599
ごめんなさい

node_t *allocNode(){
return (node_t *)malloc(sizeof(node_t));
}

でした。

603:デフォルトの名無しさん
11/11/24 00:54:38.19
>>601

%Lf でやっても変わりませんでした。

604:デフォルトの名無しさん
11/11/24 00:57:50.54
>>603
コードの良し悪しの場合はコード全部UPすべし

605:デフォルトの名無しさん
11/11/24 01:01:44.88
【質問テンプレ】
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):標準出力から文字型の配列str[3][20]に3つの文字列を入力し入力した順番に標準出力する。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: 不明
 [3.3] 言語: C
[4] 期限: 2011年11月4日8時まで
[5] その他の制限: 入力ではscanfでなくfgetsとsscanfを利用しないといけないみたいです。

それでは宜しくお願いします

606:デフォルトの名無しさん
11/11/24 01:05:18.97
>>605
URLリンク(ideone.com)

607:デフォルトの名無しさん
11/11/24 01:06:17.35
ごめん、sscanf使ってないから>>606は無かったことにして下さい。

608:デフォルトの名無しさん
11/11/24 01:22:09.73
>>605
マルチ?

C言語なら俺に聞け(入門編)Part 92
スレリンク(tech板)
#545,557

609:デフォルトの名無しさん
11/11/24 01:26:14.15
>>604

URLリンク(ideone.com)

ちなみにunixで実行したらsizeofは16ビットでした

610:デフォルトの名無しさん
11/11/24 01:50:27.64
【質問テンプレ】
[1] 授業単元:情報技術Ⅱ
[2] 問題文(含コード&リンク):
以下の2つの要件を満たす、3行3列の行列の積を計算し、表示するプログラムmultiply.cを作成せよ。

(1)整数型の行列A,Bおよびそれらの行列積A*Bを、以下の配列名で宣言する(A,Bの値は各個人で自由に設定)。

int matrix_a[3][3]={{1,2,3},{4,5,6},{7,8,9}};/*行列A*/
int matrix_b[3][3]={{10,11,12},{13,14,15},{16,17,18}};/*行列B*/
int matrix_multiply_a_by_b[3][3]={{0,0,0},{0,0,0},{0,0,0}};/*計算結果代入用の行列*/

(2)行列の積A*Bのi行j列目の要素の計算を、for文を用いて行うこと。

[3] 環境
 [3.1] OS: Wiンdows Vista
 [3.2] 不明
 [3.3] 言語: C
[4] 期限: 11月25日

お願いします

611:575
11/11/24 02:37:26.92
>>576
作成ありがとうございました

でもこれって型を変えて表示しているだけですよね
ASCIIコードから対応する文字に変換ってできませんかね?




612:デフォルトの名無しさん
11/11/24 03:13:22.18
>>610
#include <stdio.h>
#define f(x) for (x = 0; x < 3; x++) {
int main(void)
{
int matrix_a[3][3]={{1,2,3},{4,5,6},{7,8,9}};/*行列A*/
int matrix_b[3][3]={{10,11,12},{13,14,15},{16,17,18}};/*行列B*/
int matrix_multiply_a_by_b[3][3]={{0,0,0},{0,0,0},{0,0,0}};/*計算結果代入用の行列*/
int i,j,k;
f(i)f(j)f(k)
matrix_multiply_a_by_b[i][j] = matrix_a[i][k] * matrix_b[k][j];
}}}
f(j)f(i)printf("%5d", matrix_multiply_a_by_b[i][j]);}
printf("\n");}
}


613:デフォルトの名無しさん
11/11/24 03:25:54.90
>>597
URLリンク(ideone.com)
なんか美しくない

614:デフォルトの名無しさん
11/11/24 03:36:23.35
>>613
こんな夜中までありがとうございます
参考にさせてもらいます

615:デフォルトの名無しさん
11/11/24 06:01:53.55
>>587
>>373のコードだけではわかりにくいと思うので自分の勉強も兼ねて以下のような
コードを書いてみた
URLリンク(ideone.com)

(dec)はdecimal(10進数)、(bin)はbinary(2進数)の意味なのでよろしく

616:デフォルトの名無しさん
11/11/24 07:28:18.76
ちょっと前のほうのレスを見て
宿題片付けますwiki なんてものが存在するのかと一瞬勘違いした

617:デフォルトの名無しさん
11/11/24 10:06:41.81
>>605
こういう事?
#include <stdio.h>

int main(void){
char str[3][20], s[100];
int i, w;

printf("3つの文字列を入力して下さい(例:abc defgh ijkl)¥n");
fgets(s, sizeof(str[i]), stdin);

w = sscanf(s, "%s %s %s", str[0], str[1], str[2]);

printf("¥n");
for (i = 0; i < 3 && i < w; i++)
printf("入力した文字列の%d番目は%sです¥n", i, str[i]);

return 0;
}

618:デフォルトの名無しさん
11/11/24 10:17:07.28
\を¥で書く奴はいつもアホなコードだなあ

619:デフォルトの名無しさん
11/11/24 10:30:42.17
>>615
なんか例外吐いて落ちるんですけど(Windows XP + VC)

620:デフォルトの名無しさん
11/11/24 11:04:01.58
>>611
snprintfとprintfを使う問題ですよね?
ASCIIコードから対応する文字に直接変換出来ないこともないけど、
それだとsnprintfを使う必要性がないと思います。
問題の趣旨がsnprintfを使って変換することなので、これでいいのではないのですか?

621:デフォルトの名無しさん
11/11/24 11:33:34.44
>>619
どんな例外かわかる? 数値があふれるのを放置してあるからかなあ?
ループの範囲を小さくしてあふれない程度でやってみるとか...

622:デフォルトの名無しさん
11/11/24 11:35:08.39
何処でオーバーフローするかを確認する宿題なんじゃねぇの?
例外ハンドラーを組み込むとかすれば良いんじゃね?

623:デフォルトの名無しさん
11/11/24 11:49:19.50
>>621
CodeGuardのログ貼ってみますね

Error 00001. 0x400000 (Thread 0x0780):
Exception 0xC0000091:
| dai52.c line 75:
| printf("%.1f => frac (bin) 1+.%s, exp (dec) %d-127=%d\n",
| x, fracstr, ie3f.ff.exp, decexp);
|> printf("((dec) %.1f = (bin) 1.%s*10^%s)\n\n", x, fracstr, expstr);
| }
|
Call Tree:
0x00401378(=dai52.exe:0x01:000378) dai52.c#75
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)

Exception 0xC0000091というのは浮動小数点オーバーフロー

624:デフォルトの名無しさん
11/11/24 17:52:48.94
[1] 授業単元:リスト構造体
[2] 問題文(含コード&リンク):
enqueue()とdequeue()を用いて実行結果が

Please input E(登録) or D(削除): E
Input number and name: 8 Nakamura
Please input E(登録) or D(削除): E
Input number and name: 3 Saito
Please input E(登録) or D(削除): D
Number=8 Name=Nakamura
Please input E(登録) or D(削除): D
Number=3 Name=Saito
Please input E(登録) or D(削除): D
No Data!
Please input E(登録) or D(削除): E



のように動作するプログラムを作成せよ
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:VC2008
 [3.3] 言語:C
[4] 期限:11月25日
[5] その他の制限:

625:デフォルトの名無しさん
11/11/24 17:55:25.48
[1] 授業単元:C言語
[2] 問題文:123, 1.23, 1.2.3という数字を入力したとき、
       整数、小数、使用できない数字という分類に分けよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: 不明
 [3.3] 言語: C言語
[4] 期限:[2011/12/5]

よろしくお願いいたします

626:デフォルトの名無しさん
11/11/24 18:40:10.39
>>625
URLリンク(ideone.com)

627:デフォルトの名無しさん
11/11/24 19:53:51.73
>>626
ありがとうございます!

ちなみに、もしC++の場合だとどう変更になりますでしょうか?
出来たらやるという課題としてC++の場合があるのですが……

628:デフォルトの名無しさん
11/11/24 19:55:21.14
>>624
FIFOだな
・ポインタリンクで書くべきか配列のリングバッファで書くべきか判断できる?
・名前の文字数は無制限?

629:デフォルトの名無しさん
11/11/24 20:18:55.27
>>628
ポインタリンクで
名前の文字数は半角10文字までです

リスト構造体って難しい



630:デフォルトの名無しさん
11/11/24 21:58:51.42
>>627
URLリンク(ideone.com)

631:デフォルトの名無しさん
11/11/24 21:59:41.37
>>630
重ね重ね感謝いたします
ありがとうございました!

632:デフォルトの名無しさん
11/11/24 22:06:39.78
>>629
見ての通りFIFOのルートをグローバル変数としている
回避するには enqueue() と dequeue() に node** pptop を渡せば良い、お勉強する気が有るなら書き直すのも良いだろう
URLリンク(codepad.org)

633: ◆QZaw55cn4c
11/11/24 22:16:03.67
>>624
スレリンク(tech板:25番)

634:デフォルトの名無しさん
11/11/24 22:23:40.74
>>632
なるほど
さて、明日参考書を買ってくるか

635:デフォルトの名無しさん
11/11/24 22:25:41.16


処理系によってはdoubleとlong double(さらに、処理系によってはfloatとdoubleとlong double)の形式が同一のものがあるが、そのようにするメリットについて述べよ。

636:デフォルトの名無しさん
11/11/24 22:28:26.92
>>635 コンパイラ作るときに楽だから。

637:デフォルトの名無しさん
11/11/24 22:38:05.90
>>622
>例外ハンドラーを組み込むとかすれば良いんじゃね?

確かにそうなんだがかなり環境依存っぽいので、やる気なくしたw
詳しい人がいたら、例外処理を加えていただけるとw

>>623
なんか行数が変わってるw Winでコンパイルするのに#includeとか足してある?
もしprintfを呼んだ時点で死んでるなら、FLT_MAXと比較してprintfを呼ばないように
すればいいかも?

638:635
11/11/25 00:10:19.22
>>636

レポートにまとめるんで、出来れば具体的にお願いします。

639:デフォルトの名無しさん
11/11/25 00:43:20.24
>635

そういうコンパイラあるの?

640:デフォルトの名無しさん
11/11/25 01:17:29.83
>>635 質問テンプレでそーゆーのは書こうね。
1)C言語は処理系依存
2)処理系が自然に扱える不動小数点数が限られている場合がある。
3)C言語処理系の作成者は環境にな形式を選択できる。

4)コンパイラ製作者が楽をでき、処理系も素直になる。
5)どーしても特定のフォーマットが欲しければプログラマが作ればよい。
具体的に書いた。プログラム書く以外はあまりコメしたくないのん。
まとめるのは>>638さんがやるよーに受け取った。
「処理系依存」とか「未定義」がなぜC言語に存在するかも調べると、
理解深まるよ。

641:デフォルトの名無しさん
11/11/25 03:22:56.80
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
半径5cmの円の面積[cm^2]を求めるプログラムを作成し、
小数点以下5桁まで解を求めよ。
[3] 環境
 [3.1] OS: Windows7
 [3.2] gcc
 [3.3] 言語:C

プログラミング初心者です。よろしくお願いいたします。

642:デフォルトの名無しさん
11/11/25 04:00:13.58
>>641
#include <stdio.h>

#define PI 3.14159265358979323846
#define menseki(r) ((PI)*r*r)

int main()
{
double r = 5;
printf("半径5cmの円の面積 = %.5lf\n",menseki(r));
return 0;
}

643: ◆QZaw55cn4c
11/11/25 08:28:40.46
>>642
>%.5lf\n
l は不要。

644: ◆QZaw55cn4c
11/11/25 08:31:46.59
>>617
>printf("3つの文字列を入力して下さい(例:abc defgh ijkl)¥n");
>fgets(s, sizeof(str[i]), stdin);

i が未初期化。
というかループに書くのわすれたんですね。

645: ◆QZaw55cn4c
11/11/25 08:35:24.39
>>612
>printf("\n");
普通 putchar('\n'); とかく。
というか、なんだかすごいマクロの使い方ですね。せめて { の数をあわさないと、うちのくそエディタが狂うんですけど。

646:デフォルトの名無しさん
11/11/25 10:15:23.24
c言語の自由課題でトランプゲームやろうと思うんですけどいい案ないですか?

647:デフォルトの名無しさん
11/11/25 10:25:45.13
戦争

648:デフォルトの名無しさん
11/11/25 10:28:52.98
>>646
・ポーカーの点数計算
・七並べで、複数プレーヤーが最善手を選択した時の順位
・神経衰弱で、3手前しか覚えてないPCとの対戦

649:デフォルトの名無しさん
11/11/25 10:29:19.46
>>647
どうやればうまくいきます?

650:デフォルトの名無しさん
11/11/25 10:31:09.31
>>648
その中だったら七並べやりたいんですけど初心者で。詳しく教えてください。

651:デフォルトの名無しさん
11/11/25 10:34:28.82
>>650
【初心者歓迎】C/C++室 Ver.76【環境依存OK
スレリンク(tech板)


652:デフォルトの名無しさん
11/11/25 10:41:11.26
>>646
C言語でトランプゲームを作りたい
スレリンク(tech板)

653:デフォルトの名無しさん
11/11/25 11:14:40.01
643 名前:あぼ~ん[あぼ~ん] 投稿日:あぼ~ん


644 名前:あぼ~ん[あぼ~ん] 投稿日:あぼ~ん


645 名前:あぼ~ん[あぼ~ん] 投稿日:あぼ~ん

654: ◆QZaw55cn4c
11/11/25 12:28:05.59
>>653
へー、そういう書き込みでレス削除されたことになる専用ブラウザがあるんだ?

655:デフォルトの名無しさん
11/11/25 12:35:27.21
654 名前:あぼ~ん[あぼ~ん] 投稿日:あぼ~ん

656:デフォルトの名無しさん
11/11/25 12:38:34.34
自己愛の奴はあぼーんされると一番こたえるらしいな

657:デフォルトの名無しさん
11/11/25 12:49:05.54
>>653,655-656
餌をやるな

658:デフォルトの名無しさん
11/11/25 12:56:53.68
プログラマーの美意識?
URLリンク(aakitekucha.seesaa.net)


659:デフォルトの名無しさん
11/11/25 13:58:28.16
[1] 授業単元:(文字列)
[2] 問題文(含コード&リンク):文字列st の中に含まれる文字ch の個数(含まれて
いなければ0 とする)を返す関数
int str_chnum(const char st[], int ch)
を作成せよ.以下の実行例のように,関数の動作を確認
できるmain 関数も作成すること.
【注意】scanf で文字列を入力させた後にgetchar 関
数で文字を入力させたい場合,getchar で文字を入力
させる前に
scanf("%*c");
などとして,バッファに残った改行コードを読み捨て
ておく必要がある.

のように動作するプログラムを作成せよ
[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:11月25日 17:00
[5]例 文字列を入力してください:KoKo
検索する文字を入力してください:o
その文字は2 個含まれています。
その他の制限: ポインタは習っていません

660:デフォルトの名無しさん
11/11/25 14:06:32.01
#include <stdio.h>

int str_chnum(const char st[], int ch)
{
int i, num;
for(i = num = 0; st[i]; i++) if(st[i] == ch) num++;
return num;
}

int main(void)
{
char st[256];
int num, ch;

printf("文字列を入力してください:");
scanf("%s", st);
scanf("%*c");
printf("検索する文字を入力してください:");
ch = getchar();

num = str_chnum(st, ch);

printf("その文字は");
if(num) printf("%d 個含まれています。\n", num);
else printf("含まれていません。\n");

return 0;
}


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch