C/C++の宿題を片付けます 115代目
at TECH
1:デフォルトの名無しさん
08/08/03 14:25:18 BE:170408063-2BP(6868)
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
【C 関数検索 man on WWW】 URLリンク(www.linux.or.jp)
【過去ログ検索】 URLリンク(chomework.sakura.ne.jp)
【wiki】 URLリンク(www23.atwiki.jp)
前スレ
C/C++の宿題を片付けます 114代目
スレリンク(tech板)
2:デフォルトの名無しさん
08/08/04 07:46:14
只今全スレが稼働中です。
3:デフォルトの名無しさん
08/08/04 12:51:53
2chは今日も元気だってこと?
4:デフォルトの名無しさん
08/08/04 14:42:57
暇な奴が多いってことでしょ。
5:デフォルトの名無しさん
08/08/04 17:14:56
スレリンク(tech板:999番)
m9(^д^)
6: ◆7W9NT64xD6
08/08/04 17:31:05
[1]C言語応用
[2]2chの掲示板のdatファイルを解析して、レスストリーム(後述)に分解し、
フレーム付きのページで、ストリーム単位に閲覧することができるような
HTMLファイルを生成する。Windows/Linux/MacOS共に対応し、コマンドラインで
スレURLを与えれば、カレントディレクトリに、取得した時点のYYYYMMDDHHMMSS形式の
名称のディレクトリを作り、そこにフレーム付きページを生成する。
☆レスストリーム
(1)同一スレの別のレスへのアンカーを含まないレスは単一のストリームに含まれる、その
ストリームの代表レスとなる。
(3)同一スレの別のレスへのアンカーを含むレスは、指しているレスが所属するストリーム
のすべてに含まれる。
※一つのレスが複数のストリームに含まれることはあり得る。
[3] Windows/Linux /MacOS/gcc/C言語が望ましいがC++でも可
[4] 7月中でしたが8月中に変更
7:デフォルトの名無しさん
08/08/04 19:44:01
>>6
どこの学校の何年の課題だよ
8:デフォルトの名無しさん
08/08/04 19:50:19
自分がやりたいことを課題風に書いてアウトソースと予想
9:デフォルトの名無しさん
08/08/04 22:04:00
>>1
乙
10:デフォルトの名無しさん
08/08/04 22:14:03
>>6 = スレリンク(tech板:170番)
11:デフォルトの名無しさん
08/08/04 22:20:28
>>6
サンプルの dat とそれに対する出力例うp!
12:デフォルトの名無しさん
08/08/04 23:07:23
[1]C言語
[2]
3次元ベクトルの外積を計算するプログラムを作れ。(以下の要求に従え。)
2つの3次元ベクトルa, b の成分はそれぞれテキストファイルa.txt, b.txtに作っておく。各行は1つの成分とする。
プログラムの中で、ファイルa.txt, b.txtからベクトルa, b の成分を読み込むようにする。
a=(a1,a2,a3), b=(b1,b2,b3) に対して、a とb の外積は(a2b3-a3b2, a3b1-a1b3, a1b2-a2b1)
a とb の外積をファイルaxb.txtに書き出せ
[3]OS:Windows 言語:C
[4]2008/08/5(pm.6)
よろしくお願いします
13:デフォルトの名無しさん
08/08/04 23:11:56
>>12
a.txtとb.txtをアップしろ
14:こんなんかな?
08/08/04 23:16:31
[a.txt]
1.1 2.1 3.1
1.2 2.2 3.2
: : :
[b.txt]
3.1 3.2 3.3
4.1 4.2 4.3
: : :
15:デフォルトの名無しさん
08/08/04 23:17:01
>>13
たぶん適当でいいんだと思います
例
a.txt
1
2
3
b.txt
4
5
6
よろしくお願いします
16:デフォルトの名無しさん
08/08/04 23:22:23
>>15
どう考えても>>14さんの形だろ
ってことで>>14さんのファイルでやってみる
17:デフォルトの名無しさん
08/08/04 23:39:49
3次元ベクトルで各行に一成分なら>>15じゃね?
18:デフォルトの名無しさん
08/08/04 23:50:32
>>15
すみません、ひょっとしたらこうかも。
たぶん>>14さんのような高度な事はこの問題は求めてないと思うので。
例
a.txt
a1
a2
a3
b.txt
b1
b2
b3
19:名無しさん
08/08/05 07:28:40
#include <stdio.h>
#define N 3
int main()
{
double a[N], b[N], axb[N];
FILE *fpA = fopen("a.txt", "r");;
FILE *fpB = fopen("b.txt", "r");;
FILE *fpAXB = fopen("axb.txt", "w");;
long i;
for(i=0L; i<N; i++)
{
fscanf(fpA, "%lf", &a[i]);
fscanf(fpB, "%lf", &b[i]);
}
fclose(fpA); fclose(fpB);
axb[0] = a[2] * b[3] - a[3] * b[2];
axb[1] = a[3] * b[1] - a[1] * b[3];
axb[2] = a[1] * b[2] - a[2] * b[1];
for(i=0L; i<N; i++)
{
fprintf(fpAXB, "%lf\n", axb[i]);
}
fclose(fpAXB);
return 0;
}
20:名無しさん
08/08/05 07:34:28
違ってるね。aとbの添え字。
21:名無しさん
08/08/05 07:45:34
誤
axb[0] = a[2] * b[3] - a[3] * b[2];
axb[1] = a[3] * b[1] - a[1] * b[3];
axb[2] = a[1] * b[2] - a[2] * b[1];
正
axb[0] = a[1] * b[2] - a[2] * b[1];
axb[1] = a[2] * b[0] - a[0] * b[2];
axb[2] = a[0] * b[1] - a[1] * b[0];
axb = |a| * |b| * sin(theta)
直交ベクトルどうしのベクトル積は|a| * |b| * 符号
(1, 0, 0) x (0, 0, 1) ===> (0, -1, 0)
平行ベクトルどうしのベクトル積はゼロベクトル
(1, 2, 3) x (1, 2, 3) ===> (0, 0, 0)
22:デフォルトの名無しさん
08/08/05 10:39:44
>>21
ありがとうございました!
とても助かりました!
23:デフォルトの名無しさん
08/08/05 11:25:19
struct{
float _11, _12, _13, _14;
float _21, _22, _23, _24;
float _31, _32, _33, _34;
float _41, _42, _43, _44;
};
上記のようなマトリックスのクラスで、
m[1][2]のようにアクセスできるように演算子[]を多重定義せよ
という課題です。よろしくお願いします。
24:デフォルトの名無しさん
08/08/05 11:50:00
>>23
>>1くらい読め
25:デフォルトの名無しさん
08/08/05 16:39:16
2階線形常微分方程式、(d^2 y)/(dx^2 )=A(Aは任意の実数),dy/dx(x=0のとき)=0,y(x=0のとき)=0
をオイラー法で解くと、具体的にどのようなC言語のプログラムになるのでしょうか。
(刻み幅10の場合)
よろしくお願いいたします。
26:デフォルトの名無しさん
08/08/05 16:43:31
>>25
>>24
27:デフォルトの名無しさん
08/08/05 16:45:59
>>24 >>26
あんたも>>1を読もうな?読める?読めない?聖徳太(ry
28:デフォルトの名無しさん
08/08/05 16:47:27
> 気に入らない質問やその他や発言はスルーの方向で。
これね。読める?読めない?聖徳(ry
29:デフォルトの名無しさん
08/08/05 17:00:47
>>28
おまえがいうな
30:デフォルトの名無しさん
08/08/05 17:10:23
別に、テンプレを無視しているからって気に入らないとは限らないじゃんか
テンプレ通りじゃないから回答はしないけど、
スルーするほど気に入らないわけじゃないから
テンプレに則って質問すれば回答しますよっていう
意思表示でしょ?
もしくは、もっと単純に、このスレでは質問はテンプレ通りにしてくれよ
ていうアドバイスかもしれないし
31:デフォルトの名無しさん
08/08/05 21:39:59
お願いします
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
●トランプめくり
・好きなカードを入力する。
・好きなカードの柄を選択する。
・好きな数字を入力する。
・入力された好きなカードを表示して、指定したもので良ければ、
トランプカードめくりを行う。
・トランプめくりの実行
・Enterキーにて、トランプを1枚表示する。
・入力された好きなカードが登場するまで繰返す。
カードを何枚めくったか表示する。
・途中で終了したい場合は、'E' or 'e' + Enterキーで終了する。
[3] 環境
[3.1] OS:Windows
[3.2] VC
[3.3] 言語:C
[4] 期限: [無期限]
[5] その他の制限:
32:デフォルトの名無しさん
08/08/05 22:02:22
【質問テンプレ】
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):
LU分解による連立一次方程式について、その精度を計算するプログラムを作成せよ。過程がわかるようにコメントを添えること。
[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン: VC
[3.3] 言語: Cのみ
[4] 期限: 8月8日17時
[5] その他の制限 とくになし
精度計算の方法からすでに僕ではわかりません。
4次元くらいの方程式で大丈夫だと思います、よろしくお願いします。
33:名無しさん
08/08/05 22:49:10
>>32
精度補償付き数値計算でググれ
インラインアセンブリが必要になるが、線形計算の精度を出せる。
それでは学部の課題としては高度過ぎるか?
だとすると行列の条件値(condition number)の話かもしれない。
行列A
その逆行列をinv(A)
Aのノルムを ||A||
inv(A)のノルムを ||inv(A)||
とすると
条件値= ||A|| * ||inv(A)||
になる。
ノルムの定義は各種あるので調べてみよ。
条件値と精度を関連付ける理屈を理解する必要がある。そうしないとレポートにならない。
理屈さえ分かれば、ノルムの計算法と逆行列の求め方に帰着するはずだ。
34:デフォルトの名無しさん
08/08/05 23:04:10
>>29
> 気に入らない質問やその他や発言はスルーの方向で。
35:デフォルトの名無しさん
08/08/06 03:47:31
>インラインアセンブリが必要になるが
詳説もとめます。
36:デフォルトの名無しさん
08/08/06 03:57:58
前スレ>>631さま
前スレ>>558です。
遅くなりましたが、ありがとうございました。
コメントの文言を変える等の若干手を加えたことを除いて、ほぼそっくりそのまま、提出したところ、
昨日遅く返事が来て、たいへん褒められました。ほとんど減点が無いそうで、クラスで1人だけだそうです
しかし、是非、「解説を書いてくれ(なければネットで同じコードがないか探すぞ)」と言われて(脅されて)
困ってます。
コードを見ても、ちんぷんかんぷんです。(中級者コースですが、初心者レベルです(哀))
コードの内容を教えて下されば幸甚です。
何か、悪質な問題だとか、色々ご指摘を受けてたようですが、実際、意図的に制限を付けて難しくしたと
言っていました。
37:引用
08/08/06 05:17:34
[1]C言語中級コース
[2]標準入力から読み込まれた文字列を改行で区切って辞書順に比較し、長さ上位の10行について
その前後周辺5行(前2行+当該+後続2行)を行番号+":"付きで表示するプログラムを作成
しなさい。(後続が無い場合は空行を表示)
当該行は先頭行番号前に*を付けて区別させること。
表示が重なり合う場合にも対応し、同じ行を二度出力しないようにすること。
制限:行取り込みにはfgets関数を用いること。1行は最大で4Kバイト以内であるとして良い。
入力された文字列は物質のように扱い、その加工(複製、部分複製、結合、部分文字削除)は
一切禁止する。fgetsで上書きするかfreeで解放するこの2つ以外認めない。
行の長期記憶は、固定変数char *(memory[50])でのみ行うことが出来るものとし、
それ以外の変数(ポインタ以外)で行を記憶してはならない。
static変数は使ってはならない。mallocで確保した領域は必ずfreeすること。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
38:名無しさん
08/08/06 08:19:28
>>35
正しくは、精度補償じゃなくて精度保証ね。
IEEE-754を前提として、浮動小数点数のラウンディングの方法(四捨五入、全て切り上げ、全て切り下げ)を制御ができる。
ラウンディングを「全て切り上げ」に設定して、線形代数の計算を1回行い、答えその1を得る。
次に、ラウンディングを「全て切り下げ」に設定して、同じ線形代数の計算をもう1回行い、答えその2を得る。
真の答え=( 答えその1 + 答えその2 ) / 2
精度=絶対値( 答えその1 − 答えその2 )
となる、という定理が証明されている。
インラインアセンブリについては URLリンク(www.oishi.info.waseda.ac.jp) を見よ。
39:名無しさん
08/08/06 08:23:09
Linuxだったら /usr/include/fpu_control.h も見よ。
40:デフォルトの名無しさん
08/08/06 08:40:23
>>36
cs.tuat.ac.jp?
41:デフォルトの名無しさん
08/08/06 12:52:02
なんかそんな寓話がありそうだな。
42:デフォルトの名無しさん
08/08/06 14:23:37
>>37
>636 :デフォルトの名無しさん :2008/07/30(水) 17:35:28
>>>558
>>>631
>この問題は仕様と満たそうとすると、10x5行をmemoryに取り込んだ状態で
>つぎの2行が取り込む物ではないが、さらに次の行では取り込む物の場合
>過去の2行復元が出来ないよ。
最近読み込んだのは、それは長期じゃないから、長期記憶領域と呼ばないで良いとしないと出来ない。
43:デフォルトの名無しさん
08/08/06 15:02:05
>>42
>>37
> それ以外の変数(ポインタ以外)で行を記憶してはならない。
この、「ポインタ以外」ってのも良くわからない。
ポインタなら構わないという意味にも取れるが、
それなら、別途ポインタの配列を作るよな・・・
44:デフォルトの名無しさん
08/08/06 15:27:57
おやおや、麻呂のクソースの出番でおじゃるか?
麻呂を呼んだのは誰でおじゃ〜る?えっ?お呼びでない?
45:デフォルトの名無しさん
08/08/06 17:13:15
んにゃ。多分お呼びじゃない
46:42
08/08/06 17:25:46
>>43 無理やり、こう↓読まないと解けない問題
>行の長期記憶は、固定変数char *(memory[50])でのみ行うことが出来るものとし、
ポインタ変数以外の変数 で行を記憶してはならない。
>それ以外の変数(ポインタ以外)で行を記憶してはならない。
47:デフォルトの名無しさん
08/08/06 17:41:04
[1]C言語演習(入門コース)
[2] 次の10進数覆面算を解くプログラムを作って実行させる。
(解は何個あるかを求める。0個の場合もあるかも知れない)
(FINE+PROGRAM)*IS=DIFFICULT
PC*LANG=IS*NICE
LANG<>NICE
PC<>IS
(同時に満たすものを探す)
(異なる文字で同じ数字が割り当てられても良いが、同じ文字に複数の数字を割り当てられないものと
する。また文字列先頭は0で始まらないものとする。
解が無いことが事前に判明した場合は、その理由を記せば、コードを書かなくても良い。
[3]Linux/gcc/C
[4]8/31 正午(プログラムと解説、実行結果をメール)
手が付けられません。よろしくお願いします。解説と実行結果のほうも甘えてよろしいでしょうか?
まだ期限まで時間がありまんで、回答は急ぎません。
48:デフォルトの名無しさん
08/08/06 18:44:16
>>47
URLリンク(kansai2channeler.hp.infoseek.co.jp)
解説:
総当りしただけ
実行結果:
A=9 C=0 D=3 E=0 F=2 G=0 I=5 L=4 M=9 N=5 O=2 P=6 R=5 S=4 T=6 U=0 @@@
49:デフォルトの名無しさん
08/08/06 19:43:26
ヤター
俺が一番載りだ!
皆見てくれ凄いだろ
50:デフォルトの名無しさん
08/08/06 19:58:04
以下の二つの問題が分かる方助けて頂きたく願います
1.キーボードから入力した二つの整数値x,yのxのy乗を計算するプログラム
を作成しなさい。
2.キーボードから入力した文字列を全て大文字(小文字は大文字に、大文字
はそのまま)に変換して表示するプログラムを作成しなさい。ただし、文字
を大文字に変換する関数を作成し、それを利用すること。
この二つです、よろしくお願いします
51:デフォルトの名無しさん
08/08/06 20:00:57
真似されないうちに貼っておこう
#include <stdio.h>
#define xx(v, from) for(v = from; v <= 9; ++v)
#define yy(expr) if(!(expr)) break
#define zz(v) printf(" " #v "=%d", v)
static int A,C,D,E,F,G,I,L,M,N,O,P,R,S,T,U;
int main(){
xx(P, 1)xx(C, 0)xx(I, 1)xx(S, 0){
// generated by "...".split(//).inject {|acc, item| "("+ acc +")*10+"+ item }
yy(P*10+C != I*10+S);
xx(L, 1)xx(A, 0)xx(N, 1)xx(G, 0)xx(E, 0){
yy(((L*10+A)*10+N)*10+G != ((N*10+I)*10+C)*10+E);
yy((P*10+C)*(((L*10+A)*10+N)*10+G)==(I*10+S)*(((N*10+I)*10+C)*10+E));
xx(D, 1)xx(F, 1)xx(M, 0)xx(O, 0)xx(R, 0)xx(T, 0)xx(U, 0){
yy((((((F)*10+I)*10+N)*10+E)+( ((((((P)*10+R)*10+O)*10+G)*10+R)*10+A)*10+M))*(I*10+S)
==(((((((((D)*10+I)*10+F)*10+F)*10+I)*10+C)*10+U)*10+L)*10+T));
zz(A);zz(C);zz(D);zz(E);zz(F);zz(G);zz(I);zz(L);zz(M);zz(N);zz(O);
zz(P);zz(R);zz(S);zz(T);zz(U);puts(" @@@");}}}}
52:デフォルトの名無しさん
08/08/06 20:01:44
51 名前:デフォルトの名無しさん 投稿日:2008/08/06(水) 20:00:57
真似されないうちに貼っておこう
53:デフォルトの名無しさん
08/08/06 20:20:53
すみません>>50です質問し直します
[1] プログラミングT
[2] 1.キーボードから入力した二つの整数値x,yのxのy乗を計算するプログラム
を作成しなさい。
2.キーボードから入力した文字列を全て大文字(小文字は大文字に、大文字
はそのまま)に変換して表示するプログラムを作成しなさい。ただし、文字
を大文字に変換する関数を作成し、それを利用すること。
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] 言語:C
[4] 期限:明日の昼まで出来たらお願いします
よろしくお願いします
54:デフォルトの名無しさん
08/08/06 20:21:36
>>50
1.位は自力でやれば?
2.
#include<stdio.h>
void smallToCapital(char* string);
int main()
{
char* str;
scanf("%s",str);
smallToCapital(str);
printf("%s",str);
}
void smallToCapital(char* string)
{
char c;
int i;
for(i=0;c=string[i];i++)
{
if('a'<=c&&c<='z')
string[i]+='A'-'a';
}
}
55:デフォルトの名無しさん
08/08/06 20:26:54
52 名前: デフォルトの名無しさん Mail: 投稿日: 2008/08/06(水) 20:01:44
51 名前:デフォルトの名無しさん 投稿日:2008/08/06(水) 20:00:57
真似されないうちに貼っておこう
56:デフォルトの名無しさん
08/08/06 20:32:13
>>54様
ご回答ありがとうございます。
何分初心者なもので
なんとか1もお願いできませんでしょうか。
57:デフォルトの名無しさん
08/08/06 20:35:52
>>48様 解は16個、ちなみにこれ皆DIFFICULT
118815618
125521431
125521536
132232630
143346720
145549426
146643816
266665196
352250046
367767552
442248128
442248226
452258950
494497895
494497990
574472340
58:54
08/08/06 20:39:50
>>56
超適当
#include<stdio.h>
int pow(int x,int y);
int main()
{
int x,y,z;
scanf("%d%d",&x,&y);
z = pow(x,y);
printf("%d",z);
}
int pow(int x,int y)
{
int z=1,i;
for(i=0;i<y;i++)
z*=x;
return z;
}
59:デフォルトの名無しさん
08/08/06 20:42:34
>>58様
適当でも十分です
ご回答感謝します
60:デフォルトの名無しさん
08/08/06 20:48:13
55 名前:デフォルトの名無しさん 投稿日:2008/08/06(水) 20:26:54
52 名前: デフォルトの名無しさん Mail: 投稿日: 2008/08/06(水) 20:01:44
51 名前:デフォルトの名無しさん 投稿日:2008/08/06(水) 20:00:57
真似されないうちに貼っておこう
61:デフォルトの名無しさん
08/08/06 20:56:54
真似されない内の意味が分からん。貼ったらそれを真似されるだろw
62:デフォルトの名無しさん
08/08/06 23:45:21
>>54
今日も一人クズを育てたねw
おつかれさま。設問1のプログラム書いて貼る時の気持ち、お察しします。
63:デフォルトの名無しさん
08/08/06 23:51:03
>>54
ある意味神頼みなコードやね
コンパイラとか最適化とかデバッグオプションの有無で動いたり動かなかったりw
64:デフォルトの名無しさん
08/08/07 00:01:43
動くときがあればいいんだけどなw
65:デフォルトの名無しさん
08/08/07 00:14:48
>>36
上位10行:*行 上位10行でない行:-行とする
先頭10行は無条件に読み込み、memory内に設定(全部*行)
読込み中にmemory内の最小値の位置を記憶しておく
11行目以降は、読み込んだ行が最小値より小さいか大きいかで分岐
小さい場合
memory内の最後の*行の後ろに-行が2行設定されているかどうかで分岐
設定されていない
読み込んだ行を、memoryの最後に-行として設定
設定されている
rlineの位置を1つずらす(rline内には最大で次に読み込む行の前2行を記憶)
大きい場合
最小値の行を-行にする
最小値の行とその前後2行の内、memory内から削除可能な範囲を削除
読み込んだ行の前の行がrline内にある場合は-行としてmemoryの最後に追加
読み込んだ行を*行としてmemoryの最後に追加
memory内の*行の内、最小値の位置を求める
こんな感じ(あんまりソースのコメントで書いてあることと変わらないけど)
66:デフォルトの名無しさん
08/08/07 00:46:55
>>63
char *str; を char str[12345]; とかえれば、特に問題ないと思いますが、どういう最適化がはたらくのでしょうか。
for(i = 0; (c = string[i]); i++) {
と書いたほうがいいのはなぜでしょうか?
67:デフォルトの名無しさん
08/08/07 00:51:02
>>66
あれ?入門スレとここ以外にもマルチしてる?
68:デフォルトの名無しさん
08/08/07 00:52:25
>>67
ここにしか投げていませんし、ここしか読んでいません。
69:デフォルトの名無しさん
08/08/07 00:55:28
スレリンク(tech板:674番)
これと同じだったものでマルチかなと思ったんだけどほかの生徒さんか
70:デフォルトの名無しさん
08/08/07 00:59:46
それはいいとして、後者は警告を防ぐため。
条件部に代入文を書くと警告が出るのを防ぐために、()をつけてる。
71:デフォルトの名無しさん
08/08/07 01:03:57
>>70
たしかに、gcc ではtrue/false 判定をする代入文を使用すると「丸括弧でくくったほうがいいのでは?」という warning が出ますが、
なぜそんな warning を出すようにしているのか、よくわからないのです。
72:71
08/08/07 01:05:04
単に == と = の間違いを警戒しているだけかもしれませんが。
73:デフォルトの名無しさん
08/08/07 01:15:18
>>47 >>48 を元に変更させていただきました。
long int left, right1, right2, right3, right4, right5, right6, right7, right8, right9;
FOR_(P, 1) FOR_(C, 0)
FOR_(I, 1) FOR_(S, 0)
{
IF_(P!=I || C!=S);
FOR_(L, 1) FOR_(A, 0) FOR_(N, 1) FOR_(G, 0)
FOR_(E, 0)
{
IF_(L!=N || A!=I || N!=C || G!=E);
IF_((P*10+C) * (((L*10+A)*10+N)*10+G) == (I*10+S) * (((N*10+I)*10+C)*10+E));
FOR_(F, 1)
FOR_(R, 0) FOR_(O, 0) FOR_(M, 0)
{
left = (I*10+S) * (((((F)*10+I)*10+N)*10+E)
+ ( ((((((P)*10+R)*10+O)*10+G)*10+R)*10+A)*10+M ) );
right9 = left%10; left /= 10; right8 = left%10; left /= 10;
right7 = left%10; left /= 10; right6 = left%10; left /= 10;
right5 = left%10; left /= 10; right4 = left%10; left /= 10;
right3 = left%10; left /= 10; right2 = left%10; left /= 10;
right1 = left%10;
IF_( right2==I && right3==F && right4==F && right5==I && right6==C && right8==L );
FOR_(D, 1) FOR_(U, 0) FOR_(T, 0)
{
IF_( right1==D && right7==U && right9==T );
PRINT_(P); PRINT_(C); PRINT_(I); PRINT_(S);
PRINT_(L); PRINT_(A); PRINT_(N); PRINT_(G);
PRINT_(E); PRINT_(F);
PRINT_(R); PRINT_(O); PRINT_(M);
PRINT_(D); PRINT_(U); PRINT_(T);
puts(" @@@");
} } } }
74:デフォルトの名無しさん
08/08/07 01:56:25
>>57
やはり、麻呂のクソースの出番でおじゃるか・・・
75:デフォルトの名無しさん
08/08/07 02:08:31
>>57
別の文字なのに同じ数字が入ってもええのん?
76:デフォルトの名無しさん
08/08/07 02:09:23
>>75
>>47 によればおk
77:デフォルトの名無しさん
08/08/07 02:10:01
>>47
> 異なる文字で同じ数字が割り当てられても良いが
でしたね、すまそ。
78:デフォルトの名無しさん
08/08/07 03:54:36
>>73
LANG!=NICEだけど
G==Eでも構わないはずでは?
79:デフォルトの名無しさん
08/08/07 04:34:13
麻呂のクソースは数日掛かるでおじゃる。あっ、いや、ちょっと書店へ・・・
覆面算のソースを載せている本を探しに、でなぁ・・・
80:デフォルトの名無しさん
08/08/07 04:37:20
>>47
#include<stdio.h>
#define FINE (F*1000+I*100+N*10+E)
#define DIFFICULT (D*100000000+I*10010000+F*1100000+C*1000+U*100+L*10+T)
#define PC (P*10+C)
#define LANG (L*1000+A*100+N*10+G)
#define NICE (N*1000+I*100+C*10+E)
int main(void){
int program, is, A, C, D, E, F, G, I, L, M, N, O, P, R, S, T, U;
for(is=10;I=is/10,S=is%10,is<=99;is++){
for(D=1;D<=9;D++){ // DIFFICULT
for(F=1;F<=9;F++){ // FINE
for(C=0;C<=9;C++){
for(U=0;U<=9;U++){
for(L=1;L<=9;L++){ // LANG
for(T=0;T<=9;T++){
if(DIFFICULT%is) continue;
for(N=1;N<=9;N++){ // NICE
for(E=0;E<=9;E++){
program=(DIFFICULT/is)-FINE;
if(program<1000000 || program>9999999) continue;
P= (program/1000000)%10;
R= (program/100000)%10;
O= (program/10000)%10;
G= (program/1000)%10;
if((program/100)%10!=R) continue;
A= (program/10)%10;
M= (program/1)%10;
if(PC*LANG==is*NICE && LANG!=NICE && PC!=is) printf("(%d+%d)*%d=%d %d*%d=%d*%d\n", FINE, program, is, DIFFICULT, PC, LANG, is, NICE);
} } } } } } } } }
return 0;
}
81:73
08/08/07 04:53:45
>>78
G=E と、なる場合は、G=E=0 またはG=E=1 というクイズ。
ここで>>73に追加
#define IF_(expr) if(!(expr)) /*break*/continue
82:デフォルトの名無しさん
08/08/07 13:51:10
[1] 授業単元: 宿題じゃないんだ、すまない。
[2] 問題文(含コード&リンク):
次の関数作っておねがいぷりーず。
1.辺の長さがlhの正六角形からはみ出ない最大の正方形の辺の長さlsを求める関数。
2.辺の長さがlsの正方形がはみ出さない最小の正六角形の辺の長さlhを求める関数。
lhとlsはどちらもfloat型。小数点以下6桁までは精度保って。
[3] 環境
[3.1] OS: WindowsXPだが?
[3.2] VC8.0でおk
[3.3] 言語: Cでいい
[4] 期限: なるたけ早く
[5] その他の制限:
83:デフォルトの名無しさん
08/08/07 14:17:40
数学方面のスレでそれぞれのいっぺんを求める式を得たほうが楽なような
84:デフォルトの名無しさん
08/08/07 15:20:08
ほっほっほ、最初から真似するつもりはないでおじゃるが、今回は
真似どころか麻呂オリジナルクソースになりそうでおじゃるなぁ〜
後出しジャンケン、勝たぬなら、負けて見せようホトトギス
85:デフォルトの名無しさん
08/08/07 15:21:22
正六角形の中に円を描いて正方形を描くのかな
それなら簡単な気がする
86:デフォルトの名無しさん
08/08/07 16:15:17
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
パーティクルを採用した、エフェクトプログラムデモを作成する。
・光の粒子が回転移動。
・爆発エフェクト(破片の物理移動) など。
例)花火
1.情報の洗い出し → 構造体
2.初期化 → 爆発時に初期データセット
3.実処理 → 移動、加減速、色調
4.後処理 → 情報の削除(メモリの解放)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: Cのみ
[4] 期限: 8月18日
[5] その他の制限:特になし
エフェクトは自由にとのことでしたが、炎や、例にある花火で作っていただけるとありがたいです。
期限がまだあるため、早急な回答は求めません。
よろしくお願いします。
87:デフォルトの名無しさん
08/08/07 16:30:04
>>86
3D?
DirectX 使ってもいいのなら探せばサンプルあるだろ
88:デフォルトの名無しさん
08/08/07 16:42:00
>>85
正方形の角が全部、六角形の変にくっつく方が、若干デカくね?
89:デフォルトの名無しさん
08/08/07 16:50:28
>>82
一定の係数をかけるだけになるだろうからその係数をさがせば
float func(float lh) { return lh * SECRET_NUMBER; }
90:デフォルトの名無しさん
08/08/07 17:00:36
あるクラスの試験の点数を整数で繰り返し入力し、
点数の合計と平均点を出力するプログラムを作成しなさい。
点数は、0点以上100点以下とし、
この範囲外の点(0点未満または100点より大きい点)が入力されたときは、
入力を終了し、点数の合計と平均点を出力する
(最後に入力された範囲外の点は集計の対象としない)。
また、平均は小数点以下2桁まで出力する。
繰り返しの命令は、何を使ってもよい。
91:デフォルトの名無しさん
08/08/07 17:03:14
>>90
>>1くらい読め
92:デフォルトの名無しさん
08/08/07 17:07:07
> 気に入らない質問やその他や発言はスルーの方向で。
オマエモナー、って読める?読めない?聖徳(ry
93:デフォルトの名無しさん
08/08/07 17:09:22
>>92
スルーできてないw
94:デフォルトの名無しさん
08/08/07 17:18:51
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
4*4行列の列ごとの各要素の絶対値の総和の最大値
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC
[3.3] 言語: C
[4] 期限: 8月8日12:00まで
課題の途中で上記の関数が作れないので止まりました・・・行列は2次元の配列で定義しているので
配列を引数にできるように関数を作ってください。。。
95:86
08/08/07 17:19:50
>>87
説明不足すいません。DirectXは使用不可です。
3Dは使わず、"*"や、"+"などの記号で表現お願いします。
訂正申し訳ありません。
96:デフォルトの名無しさん
08/08/07 17:25:19
>>95
ベースとなるサンプルはないの?
97:86
08/08/07 17:56:51
>>96
炎のエフェクトの実行結果を見せてもらっただけなので、サンプルは貰っていません。
炎は、各方向に記号が常に飛び散っているエフェクトでした。
98:デフォルトの名無しさん
08/08/07 18:16:35
>>97
もっと具体的にかけないものかね。
コンソールアプリなのかどうかすら読み取れない
99:デフォルトの名無しさん
08/08/07 18:50:48
>>90 [C/C++ : C]
#include <stdio.h>
int main(void){
int count = 0;
int total = 0;
int data = 0;
do {
printf("INPUT [%2d] :", count+1);
if(fscanf(stdin, "%d", &data) < 1) break;
if(data < 0 || data > 100) break;
total += data;
count++;
} while(1);
if(count)
printf("COUNT=%d, AVERAGE=%.2f\n", count, (float)total/count);
}
100:85
08/08/07 19:07:38
>>82
家に着いたから書いてみた。あってるのかは知らない
URLリンク(kansai2channeler.hp.infoseek.co.jp)
101:デフォルトの名無しさん
08/08/07 19:32:51
>>82
>>82
#include<stdio.h>
#include<math.h>
int main(void){
float lh, ls;
double magic_number;
magic_number=3-sqrt(3);
printf("\nInput lh : ");
scanf("%f", &lh);
ls=lh*magic_number;
printf("ls=%f\n", ls);
printf("\nInput ls : ");
scanf("%f", &ls);
lh=ls/magic_number;
printf("lh=%f\n", lh);
return 0;
}
102:82
08/08/07 20:55:06
>>100
とても素直なプログラムだな。思考の仕方がよく見える。
>>101
マジックナンバーがとってもスマートだな。こりゃいい。
どちらさんもありがとう、ありがとう。
103:デフォルトの名無しさん
08/08/07 23:12:00
>>102
>>100と>>101で数値が違うがどうすんだ?
104:デフォルトの名無しさん
08/08/07 23:36:58
>>98
コンソールアプリです。
あまりプログラムが分からず、度々すんません。
105:デフォルトの名無しさん
08/08/07 23:58:29
>>103
>>101 (>>88) のほうが正解だろうね、>>100 (>>85) よりも大きな正方形。
106:デフォルトの名無しさん
08/08/08 01:12:10
>>94
二元配列を引数にとるのは面倒だからそれを入れた構造体を作るのがいいと思うよ
>>86
難解だね、暇だからちょっとやってみるけど期待しないでね
107:デフォルトの名無しさん
08/08/08 01:48:37
>>94
double f(double a[4][4])
{
double max = 0;
int i, j;
for(i=0; i<4; i++) {
double temp = 0;
for(j=0; j<4; j++) temp += fabs(a[j][i]);
if(temp > max) max = temp;
}
return max;
}
108:デフォルトの名無しさん
08/08/08 07:11:55
>>107 double f(double a[4][4]) じゃなくて、ポインタ。
double f(double (*a)[4])
>>37 *(memory[50]) って、*memory[50] と同じ。
109:デフォルトの名無しさん
08/08/08 09:00:12
107の書き方でも別に問題ないと思うけど?
初心者にはこっちの方がわかりやすいだろうし。
110:デフォルトの名無しさん
08/08/08 09:00:47
いっけねぇ
ポインタじゃなくてポンタかと思ってた
111:デフォルトの名無しさん
08/08/08 18:47:54
>>106
WindowsXPだとエスケープシーケンスが使えないと仮定したほうがよさそうです
// 最下位ビットから順に RGB で光(≠色)の三原色の合成です RG=黄色 GB=水色 RB=紫 RGB=白色
void set_color(int color){
if(color>=0 && color<=7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}
// (x,y)=(0,0) が左上になります (※スクロールバーがある場合は一番(左)上までスクロールバーが移動します)
void set_cursor_pos(int x, int y){
COORD pos;
pos.X=x;pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
112:デフォルトの名無しさん
08/08/09 00:04:45
[1] 検索
[2] 配列に格納された文字列を前方一致検索して表示する
[3] 環境
[3.1] Windows xp
[3.2] borland
[3.3] C言語
[4] 期限:2008年08月10日
113:デフォルトの名無しさん
08/08/09 00:58:34
っつーかね、最近思うんよ、書店で参考書を探せば答えられる課題なんて
いくらでもあると。
114:デフォルトの名無しさん
08/08/09 01:52:21
でもこのスレってそういうもんじゃね?
宿題で参考書買って解けないような問題出すやつある意味すげえよ
115:デフォルトの名無しさん
08/08/09 01:53:06
まぁ、学校ごとに固有の問題を出してはいるが、それでも解き方や
ヒントは普通にあるわけで・・・
116:デフォルトの名無しさん
08/08/09 02:24:09
>>114
それが結構あったりするのです‥‥‥。いや、それが面白かったりして。
117:デフォルトの名無しさん
08/08/09 07:02:53
void型関数、指定された文字を指定された個数だけ表示させる関数本体を作成する問題
#include <stdio.h>
void putnchars(char x,int n);
int main(void)
{
putnchars('A',1);
putnchars('B',2);
putnchars('C',3);
putnchars('D',4);
return 0;
}
//関数本体を作成せよ
実行結果が
A
BB
CCC
DDDD
となるようにしなければいけないのですが、どうしてもできません。教えてください
118:デフォルトの名無しさん
08/08/09 07:35:16
>>117
#include <stdio.h>
void putnchars(char x,int n) {
for(;n>0;n--) putchar(x);
puts(""); }
int main(void) {
putnchars('A',1); putnchars('B',2);
putnchars('C',3); putnchars('D',4);
return 0; }
119:デフォルトの名無しさん
08/08/09 07:52:24
ありがとうございます。助かりました。
120:デフォルトの名無しさん
08/08/09 08:41:23
コードに該当する部分に全角はいかんよ、文字列ならそれを扱うルールはあるが
コードに該当する部分は原則半角じゃ。
121:デフォルトの名無しさん
08/08/09 11:22:23
>>120
そうだね
全角文字だとエラーでコンパイルできないもんね
122:デフォルトの名無しさん
08/08/10 20:18:45
ラベルや関数名は全角文字OKだろ。
123:デフォルトの名無しさん
08/08/10 20:39:38
122 名前:デフォルトの名無しさん 投稿日:2008/08/10(日) 20:18:45
ラベルや関数名は全角文字OKだろ。
124:デフォルトの名無しさん
08/08/10 20:40:19
>>122は>>117が読めない子
125:デフォルトの名無しさん
08/08/10 20:46:34
#include <stdio.h>
int 関数(void) {
printf("あああ\n");
return 0;
}
int main(void) {
関数();
return 0;
}
エラー出ました orz
126:デフォルトの名無しさん
08/08/10 20:55:11
>>125
VC++2008でビルドしたらコンパイル出来た
まあ使わないけどね
127:デフォルトの名無しさん
08/08/10 21:09:55
コンパイラが都合よく見繕ってくれるってのも、プログラマの認識レベルを下げる
原因になりそうな気がするのだが、まぁ車も安全装置が開発されたりと
それでもやらかす奴はやらかすわけで・・・
128:デフォルトの名無しさん
08/08/10 21:24:25
大規模なソフトウェアを開発をしたいと思ったら
自動化できることはできる限り自動化しないと
人間の把握できる範囲を超えてしまう
もちろん基礎は大事
129:デフォルトの名無しさん
08/08/10 21:40:21
[1]ゲームアルゴリズム
[2]テトリス制作でブロックを落とすところ(回転はしなくてよい)
[3]Windows Vista
Microsoft Visual Studio 2005
C++
[4]8/20まで
[5]現在、基本情報技術者午後レベルを習っている状況
問題点
・凸型ブロックが落ちると途中で四角になってしまう
・左右移動するとブロックが分解された残像みたいなのが残る
・最下位の床につくと止まらずに突き抜けてしまう
コードをテキストでうpしました。
URLリンク(www2.uploda.org)
130:デフォルトの名無しさん
08/08/10 23:29:49
>>129
152-159行目をチェックしな
同じような部分が何度もでているところは関数に分けた方がいい
131:130
08/08/10 23:35:29
>・凸型ブロックが落ちると途中で四角になってしまう
これしか見てなかった
全面的に作り直してねって事だったんだなw
132:デフォルトの名無しさん
08/08/11 03:21:29
>>129
みられない
133:デフォルトの名無しさん
08/08/11 08:39:25
>>132
再うp
URLリンク(www.uploda.org)
134:デフォルトの名無しさん
08/08/11 10:10:48
プログラム全体の見通しがあまりにも悪いから、最初から書き直した方が良い。
機能単位に分けてちゃんと処理追えるようにさ。
悪いけど、こんなもんどこにバグがあるかなんて探したくもない。
135:デフォルトの名無しさん
08/08/11 10:12:48
>>134
すいません。出直してきます
136:デフォルトの名無しさん
08/08/11 10:48:09
>>135
方針として
1.固定化されたブロックと表示用のバッファは別にする
2.ブロックの移動に関する処理はブロックの種類によらず共通化する
137:デフォルトの名無しさん
08/08/11 11:10:45
>>136
丁寧なご回答ありがとうございました。がんばります
138:デフォルトの名無しさん
08/08/11 12:07:34
>>86
やってみた
URLリンク(kansai2channeler.hp.infoseek.co.jp)
139:901
08/08/11 14:14:57
【質問テンプレ】
[2] 問題文:Bingoゲーム
・使用する数字は1〜75まで、同じ数字は、登場しない
・スペースキー押下にて、スロットのように表示する。
ヒント:for文を使用して行う。
表示する際は、一旦、画面消去してから、表示することになる。
・スペースキー押下にて、停止させる。
ヒント:kbhit(),_getch() 関数を使用する。
・登場した番号リストを表示する。
・終了は、'E' or 'e'にて、終了するか、全ての数字が登場した場合。
[3] 環境
[3.1] OS:Windows
[3.2] VS
[3.3] C
[4] 期限:できるなら早めがいいです
[5] その他の制限:俺に聞けスレから誘導されましたあちらへの書き込みは以下です
901 :デフォルトの名無しさん:2008/08/11(月) 13:17:59
こんにちは質問です
決められた範囲(こちらで指定する)の数字をスロットのように表示させるにはどうすればいいでしょうか?
画面はコマンドプロンプトでjpgなどは無しでおねがいします
905 :901:2008/08/11(月) 13:53:55
また、スペースキーを押した場合そのスロットが止められるように とのことなんですが・・・
ループ処理で、printfで表示したものを消す→表示→消す→表示
みたいなやり方とかあるんでしょうか?
また後出しになって申し訳ありませんが
kbhit(),_getch() 関数を使用する
そうです。関係なかったらすみません
140:sage
08/08/11 15:26:46
2分探査木と平衡木のどちらかをc言語でつくれ(データの追加、削除をする機能を含む)
↑が全くできません。助けて下さい
よろしくお願いします
141:sage
08/08/11 15:29:38
2分探査木と平衡木のどちらかをc言語でつくれ(データの追加、削除をする機能を含む)
↑が全くできません。助けて下さい
よろしくお願いします
142:デフォルトの名無しさん
08/08/11 15:42:37
[1] 数理物理
[2] 1、∫(sinx)^πdx (∫の上が1、下が0)
の計算をガウス・ルジャンドル積分法とモンテカルロ法で計算し、比較せよ。
2、x,y,z>0 x+y+z<1 で囲まれる三角錐に
(x-1/3)^2+(y-1/3)^2+(z-1/3)^2>(1/2√3)^2
の球で削った部分の体積を求めよ。
[3] 環境
[3.1] Linux
[3.2] ?
[3.3] C
[4] 明後日までにお願いします。
どうしてもわからないのでお願いします。
143:デフォルトの名無しさん
08/08/11 15:57:38
>>142
C/C++の宿題を片付けます 114代目
スレリンク(tech板:619番)
スレリンク(tech板:723番)
144:デフォルトの名無しさん
08/08/11 16:37:38
[1] c入門
[2] 単方向,非循環の線形リストをC言語でつくれ
(条件ポインタ,構造体を使用する・線形リストの生成・データ削除の機能)
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] C
[4] 今日
145:デフォルトの名無しさん
08/08/11 16:50:52
>>144
C/C++の宿題を片付けます 114代目
スレリンク(tech板:606番)
146:デフォルトの名無しさん
08/08/11 17:15:42
>>145
727 名前:デフォルトの名無しさん[sage] 投稿日:2008/07/31(木) 16:47:18
>>606
URLリンク(kansai2channeler.hp.infoseek.co.jp)
147:デフォルトの名無しさん
08/08/11 17:20:05
>>139
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define NUMBER_MAX 75
void swap(int *a, int *b){int c;c=*a; *a=*b; *b=c;}
void disp_numbers(int number[], int number_num){
int i;
system("cls");
for(i=0;i<number_num;i++) printf(" %2d ", number[i]);
printf("\n");
}
int main(void){
int number[NUMBER_MAX], i, x, keycode, is_exit=0;
for(i=0;i<NUMBER_MAX;i++) number[i]=i+1;
for(i=0;i<NUMBER_MAX;i++){
for(disp_numbers(number, i);;){
x=rand()%(NUMBER_MAX-i);
printf(" %2d \r", number[i+x]);
if(_kbhit() && (keycode=_getch())){
if(keycode==' ' || keycode=='E' || keycode=='e'){
swap(&number[i], &number[i+x]);
is_exit=(keycode=='E' || keycode=='e');
break;
}
}
}
if(is_exit) break;
}
disp_numbers(number, i);
return 0;
}
148:デフォルトの名無しさん
08/08/11 17:52:30
[1] c入門
[2] 2分探査木と平衡木のどちらかをc言語でつくれ
(データの追加、削除をする機能を含む)
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] C
[4] 今日
テンプ無視してすいません
よろしく願いします
149:デフォルトの名無しさん
08/08/11 18:04:26
>>148
C/C++の宿題を片付けます 114代目
スレリンク(tech板:175番)
URLリンク(www.psg.cs.titech.ac.jp)
150:デフォルトの名無しさん
08/08/11 19:21:14
>>144
仕様が指定されてない故、クソースでいくでおじゃっ、少し待ってたもう
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4767日前に更新/320 KB
担当:undef