C/C++の宿題を片付けます 46代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2005/06/23(木) 17:11:14・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:Windows/Linux/等々
[3.2] コンパイラ(バージョン):
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで または 無期限 のいずれか
[5] その他の制限:どこまで習っているか、等々
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【前スレ】
C/C++の宿題を片付けます 45代目
http://pc8.2ch.net/test/read.cgi/tech/1118165596/
【歴代スレは>>2-13】
0002デフォルトの名無しさん
2005/06/23(木) 17:12:090003デフォルトの名無しさん
2005/06/23(木) 17:12:1243代目: http://pc8.2ch.net/test/read.cgi/tech/1115794784/
42代目: http://pc8.2ch.net/test/read.cgi/tech/1113811213/
41代目: http://pc8.2ch.net/test/read.cgi/tech/1109542053/
40代目: http://pc5.2ch.net/test/read.cgi/tech/1107625122/
39代目: http://pc5.2ch.net/test/read.cgi/tech/1106650397/
38代目: http://pc5.2ch.net/test/read.cgi/tech/1105541524/
37代目: http://pc5.2ch.net/test/read.cgi/tech/1103913840/
36代目: http://pc5.2ch.net/test/read.cgi/tech/1102753497/
35代目: http://pc5.2ch.net/test/read.cgi/tech/1101568895/
34代目: http://pc5.2ch.net/test/read.cgi/tech/1100530682/
33代目: http://pc5.2ch.net/test/read.cgi/tech/1097932699/
32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/
0004デフォルトの名無しさん
2005/06/23(木) 17:12:27死ね
0005デフォルトの名無しさん
2005/06/23(木) 17:12:4728代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
0006デフォルトの名無しさん
2005/06/23(木) 17:13:0713代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
09代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
08代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
07代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
06代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
05代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
04代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
03代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
02代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
01代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0007デフォルトの名無しさん
2005/06/23(木) 17:27:17[2] 問題文(含コード&リンク):戻り値をvoidとし、char型のポインタを一つ進める
関数を作れ。但し、関数の引数は一つにしなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): VC++ 6.0
[3.3] 言語:C
[4] 期限:なるべく早く
[5] その他の制限:関数の引数が複数とか、戻り値がvoidじゃなければ
それらしいものは出来るのですが、引数一つで戻り値がvoidだとよく分からないです。
void func(char* s)みたいな形になると思うのですが.
0008デフォルトの名無しさん
2005/06/23(木) 17:34:46void charnext(char **ps) { ++*ps; }
0009デフォルトの名無しさん
2005/06/23(木) 18:07:58[2] 問題文(含コード&リンク):
入試 センター試験で、入力データが
受験番号 受験科目数 第1科目得点 第2科目得点 第3科目得点
1111111 3 58 78 46
1111342 2 60 35
のように、受験科目数によって入力データの個数が異なる場合の
平均点を計算して出力するフローチャートおよびプログラムを
作成せよ。ただし、データは別のファイルにあらかじめキーイン
されており、明細印刷も同時に行う。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年06月24日まで
[5] その他の制限:whileまで習っています
なにとぞよろしくお願いいたします
0010デフォルトの名無しさん
2005/06/23(木) 18:10:58>[5] その他の制限:whileまで習っています
関数ポインタからwhileまで習っているのか…
0011デフォルトの名無しさん
2005/06/23(木) 18:18:45ファイルの形式がわからないと作れない。
0012デフォルトの名無しさん
2005/06/23(木) 18:27:32えーっと印刷ってstdprnだっけ?
それともAPIたたくんだっけ?
0014前スレ972
2005/06/23(木) 18:32:14>>997さん
返信ありがとうございます!
>>980さん
一応追加分を書き直してコンパイルしたところ、
kadai04C-1.c: In function `main':
kadai04C-1.c:152: warning: assignment makes pointer from integer without a cast
と表示されました。ちなみに引っ掛かったところは
if (p = strchr(buff, '\n'))の部分です。
>>997さん
こんぱいるしたところ
/tmp/ccDNxE6c.o: In function `node_add':
/tmp/ccDNxE6c.o(.text+0x42): undefined reference to `_msize'
collect2: ld returned 1 exit status
と表示されてしまいました...
0015デフォルトの名無しさん
2005/06/23(木) 18:38:09>>980のぶんのウォーニングはif文の条件式の中で代入式を使っていることに対する警告だが、
コードはあれで正しいので無視してもかまわない
0016デフォルトの名無しさん
2005/06/23(木) 18:39:37おれが悪かった。
dat形式の内部仕様はどうなっているんだい?(データはどういう風にならんでるの?
印刷はプログラム本体でやるのあきらめてリダイレクトすればいいとおもうんだがどうだろう。
Linuxにはそういう機構があるらしいが・・・。(lprとかいうものかな?
0017デフォルトの名無しさん
2005/06/23(木) 18:39:38#include <stdio.h>
int main()
{
char id[128];
int i, nsubjects, tmp, score;
FILE *fp;
if ((fp = popen("lpr", "w")) == NULL) {
perror("lpr");
return 2;
}
while (scanf("%s %d", id, &nsubjects) == 2) {
i = score = 0;
while (i < nsubjects) {
if (scanf(" %d", &tmp) != 1)
break;
score += tmp;
++i;
}
printf("%s %g\n", id, (double)score/nsubjects);
fprintf(fp, "%s, %g\n", id, (double)score/nsubjects);
}
pclose(fp);
return 0;
}
0019デフォルトの名無しさん
2005/06/23(木) 18:42:09ファイルの中身は
1111111 3 58 78 46
1111342 2 60 35
というようにスペースで区切るだけです。
印刷はlprでやっています
0020デフォルトの名無しさん
2005/06/23(木) 18:42:40ありがとうございます。早速やってみます
0022デフォルトの名無しさん
2005/06/23(木) 18:53:50うまくできていました。
フローチャートは自分で何とかします。
どうもありがとうございました
0023デフォルトの名無しさん
2005/06/23(木) 19:12:46[2] 問題文(含コード&リンク):
任意の長さの文字列とルートノードを引数として与えられたときに、動的に増えていく
二分木の名前表を作る関数を書け。
ただし、二分木のノードには名前の文字列を持ち、左右の枝は実態がある場合もない場合もある。
深さ優先で左からたどると、辞書式の順に、
左枝の文字列<中央の文字列<右枝の文字列となるようにせよ。
ヒント:
再起呼び出しを用いて、深さ優先に探索して、子のないノードに追加していけばよい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:6月24日12:00
[5] その他の制限:とくになし
どなたかお願いいたします。
0024デフォルトの名無しさん
2005/06/23(木) 19:16:33ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/593.txt
0025デフォルトの名無しさん
2005/06/23(木) 19:21:42[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
支店コードとつきと売上の対前月比からなるレコードが多数入力されるとき
(同一視店コードが複数月分連続する)、支店コードと最終月の対前月比だけを出力する。
入力例
101 1 1.25
101 2 0.96
103 1 0.82
103 2 0.92
103 3 1.53
0 0
出力例
101 0.96
103 1.53
[3] 環境
[3.1] OS:Windows98
[3.2] コンパイラ(バージョン):MS−DOSプロンプト
[3.3] 言語:C
[4] 期限:明日の朝まで(単位落とすかどうかの瀬戸際なんです)
よろしくお願いします
0026デフォルトの名無しさん
2005/06/23(木) 19:27:43それが分からないようなら、単位落としたほうがいいかもしれん。
0027デフォルトの名無しさん
2005/06/23(木) 19:56:050028デフォルトの名無しさん
2005/06/23(木) 20:00:110029デフォルトの名無しさん
2005/06/23(木) 20:02:540030デフォルトの名無しさん
2005/06/23(木) 20:03:160031デフォルトの名無しさん
2005/06/23(木) 20:14:49すみません数字は半角です
0032デフォルトの名無しさん
2005/06/23(木) 20:15:58この問題は別に全角だろうが半角だろうが関係ない、気にするな
#include <stdio.h>
#include <string.h>
struct rec {
char code[32];
int month;
double ratio;
};
main()
{
struct rec cur, prev;
memset(&prev, 0, sizeof prev);
while (scanf("%s %d %lf", cur.code, &cur.month, &cur.ratio) == 3) {
if (*prev.code && strcmp(cur.code, prev.code))
printf("%s %d %f\n", prev.code, prev.month, prev.ratio);
prev = cur;
}
}
0033デフォルトの名無しさん
2005/06/23(木) 20:19:21助かりました。ありがとうございます
0034デフォルトの名無しさん
2005/06/23(木) 20:24:13やっぱり全角だと全然ダメということに気づいた....OTL
monthとratioもchar[]型にしておけばまあ問題ないやね
0035デフォルトの名無しさん
2005/06/23(木) 21:00:54[2] 問題文(含コード&リンク):
N行、M行の表に整数データを読み込み横計縦計および
総和を計算し表形式で出力するプログラムを書け。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:2005年6月24日
[5] その他の制限:
宜しくお願いします
0036デフォルトの名無しさん
2005/06/23(木) 21:03:28半角だそうなので問題ないが、全角の場合はそう簡単な話じゃない。
全角スペースはscanfで分けれないから問題有りだ。
全角になるだけでかなりめんどい。
0037デフォルトの名無しさん
2005/06/23(木) 21:32:03http://pc8.2ch.net/test/read.cgi/tech/1118165596/523-524
0038デフォルトの名無しさん
2005/06/23(木) 21:32:38http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/594.txt
0039デフォルトの名無しさん
2005/06/23(木) 21:37:55ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/595.txt
0040デフォルトの名無しさん
2005/06/23(木) 21:45:48ありがとうございます、助かりました
0041デフォルトの名無しさん
2005/06/23(木) 21:47:15そんな馬鹿なと思ったら、確かにデリミタまで全角空白だな
こりゃウザいわ
0042デフォルトの名無しさん
2005/06/23(木) 21:58:16[2] 問題文(含コード&リンク):
任意の長さの文字列とハッシュ表の大きさを引数として与えられたときに、
ハッシュ値を返す関数を書け。
−文字列を数値化(文字コードを用いて)し、ハッシュ表の大きさで剰余をとればよい。
ハッシュ表の大きさに近い素数を見つけ、これを用いて剰余を計算したり、衝突した場合は、
ハッシュ値に+1や+2を加えて剰余を計算するなど、拡張できる。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:6月24日13:00まで
[5] その他の制限:特にありません。
お願いいたします。
0043デフォルトの名無しさん
2005/06/23(木) 21:58:201)二つの文字列を入力し、比較して同じ文字列だったら「一致しました」と表示する。
ただし同じ文字数で位置しない場合はコードの小さいほうを多きほうにコピーし表示する。
また文字列の長さが違う場合は短いほうを長いほうにコピーし表示する。
strcmp(),strlen(),strcpyを使用すること
2)1文字入力し、アルファベットか数字だったら「ALPHANUMERIC」、スペースだったら「SPACE」、違う場合は「OTHER」と表示する。
改行コードが入力されるまで繰り返す。
3)2)を再起呼び出しを使い修正
3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): VC++ 5.0
[3.3] 言語:C
[4] 期限:今日中
[5] その他の制限:文字列操作、分類、変換関数を使う
0044デフォルトの名無しさん
2005/06/23(木) 22:08:28きちんと3日前くらいに依頼しよ(はぁと
0045デフォルトの名無しさん
2005/06/23(木) 22:11:21なんか問題文みてもやる気しないし。
ま、だからここに投げてんだろうが。
0046デフォルトの名無しさん
2005/06/23(木) 22:13:040047デフォルトの名無しさん
2005/06/23(木) 22:13:43って問題もちらほらあるな
0048デフォルトの名無しさん
2005/06/23(木) 22:39:26[2] 問題文(含コード&リンク)
整数の配列に規則正しく数値を格納して、その値を出力するプログラムを書け。
配列内容
0 1 2 3 4 5 6 7 8 9
boxA 11、20、13、18、15、16、17、18、19、20
boxB 30、 6、24、12、18、18、12、24、6、30
boxC 1、 2、 3、 4、5、10、 9、 8、7、6
boxD 4、 7 、10、13、16、20、16、12、8、4
boxE 9、 7、 5、 3、1 、2、 4、6 、8 10
boxF 10、11、28、23、46、35 、64、47、88、59
※繰り返しの制御変数の値は初期値0、最大9まで。5回繰り返し。
出力フォーマット(配列内容は三桁)
(例)boxA = 111 111 111 111 111 111 111 111 111 111
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:明日
[5] その他の制限:while
よろしくお願いします。
0049デフォルトの名無しさん
2005/06/23(木) 22:41:06どう直したらよいのでしょうか?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/596.txt
0050デフォルトの名無しさん
2005/06/23(木) 22:44:48#include <stdio.h>
の直下の
int n, count, a[];
が要らない
0051デフォルトの名無しさん
2005/06/23(木) 22:59:50http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/597.txt
臭うので適当に流します。
0052デフォルトの名無しさん
2005/06/23(木) 23:12:04[2] 問題文(含コード&リンク)
http://www.i.h.kyoto-u.ac.jp/~tsuiki/lecture/jouka/3.html
上記のアプレットを用いて、次のプログラムを作成せよ。
1. data[0] (データ用メモリの 0 番地) に置かれた値の階乗を計算して出力す
るプログラム。
プログラムは、上記のアプレットのページで実行しているところを、プリント
アウトせよ。1. の場合、10 の階乗を計算しているところをプリントアウト
すること。それに、説明(どのメモリアドレスが何に用いられているかなど)
を書き加えること。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ(バージョン):上記
[3.3] 言語:上記参照
[4] 期限:明日 (延期になった)
他学部で、data[0] に10、data[1]に1を入れてからmulすればいいのは分かりますが、
その後、(storeの仕方)がまったく分かりません。
よろしくお願いします。
0053デフォルトの名無しさん
2005/06/23(木) 23:32:44[2] 問題文(含コード&リンク):ベクトル3D型に対して正規化を
行う関数vecNormalizeを作成する。引数は以下のような構成とする。
ただし引数に0ベクトルが与えられた場合は何もしないものとする。
void vecNormalize(struct Vector3D *v)
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++
[4] 期限:明日の午前中頃までです
[5] その他の制限:構造体、ポインタ辺りまで習いました
自分でも書いてみましたが混乱してしまってるので
ご指導お願いします。
0054デフォルトの名無しさん
2005/06/23(木) 23:33:57#include <stdio.h>
#include <math.h>
struct Vector3D{
double x;
double y;
double z;
};
void vecNormalize(struct Vector3D *v){
double len;
len = sqrt(v->x * v->x + v->y*v->y + v->z*v->z);
len = *v;
return;
}
int main(){
struct Vector3D *v;
double Len;
double a,b,c,i;
v->x = a;
v->y = b;
v->z = c;
scanf("%lf",&a);
scanf("%lf",&b);
scanf("%lf",&c);
Len = vecNormalize(&i);
printf("%lf\n", Len);
return 0;
}
0055デフォルトの名無しさん
2005/06/23(木) 23:36:03[2] 問題文:(1)以下のプログラム(aを1〜10まで入れ、最大値を表示する)の時、配列aの最後尾の配列要素に配列の最大値を入れ、最大値が入っていた要素位置に配列の最後尾にあった値を入れる関数koukan(a, n)を作成せよ。
(2)さらに、関数koukanを使って、配列aおよびそのサイズnが与えられるとき、昇順する関数A_order(a, n)を作成せよ。
両問とも、正しく動作するかチェックのためのメインも作成の事。
#include <stdio.h>
int main(void){
int i ,a[10], n = 10, max;
for(i = 0;i < n;i++){
printf("input a[%d]= ", i + 1);
scanf("%d", &a[i]);
max = a[0];
}
for(i = 0;i < n; i++){
if(max < a[i]) {
max = a[i];
}
}
printf("最大値=%d\n",max);
return 0;
}
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:明日
[5] その他の制限:よろしくお願いします。
0056デフォルトの名無しさん
2005/06/23(木) 23:59:480057デフォルトの名無しさん
2005/06/24(金) 00:07:44PC等 [プログラム] C/C++の宿題を片付けます 46代目 52
http://pc8.2ch.net/test/read.cgi/tech/1119514274/52
PC等 [プログラム] 質問にやさしく親切に答えてくれるスレ 141
http://pc8.2ch.net/test/read.cgi/tech/1107946285/141
PC等 [プログラム] 計算アルゴリズム 771
http://pc8.2ch.net/test/read.cgi/tech/1090227743/771
【3 件見つかりました】
005849
2005/06/24(金) 00:08:56ありがとうございます、本当に申し訳ないのですが
問題の条件にn,count,配列aの大域変数を付加することが
条件となっているのですが大域変数を残したまま
エラーをなくすことはできないのですか?
0059デフォルトの名無しさん
2005/06/24(金) 00:13:10× len = *v;
○ v->x /= len; v->y /= len; v->z /= len;
lenが0なら割らない
メンバは整数でいいんじゃね?
006052
2005/06/24(金) 00:14:55ほんとだ。でもそれは私と別人です。
大学生活版にも同じ質問があったのでその人かと。
0061デフォルトの名無しさん
2005/06/24(金) 00:15:02なんとなく、おしいんだよね。
ポインタの部分の復習とかしてみるといいかも。
ポインタにはかならず実体(指す(ポイントする)もの)があるから、それを忘れずに。
一度ね、ポインタを使ってる例を幾つか、コピペじゃなくてキーボードで入力してみるといいよ。
0062デフォルトの名無しさん
2005/06/24(金) 00:19:08すれ違い。
メアドさらせ。送ってやるから。
0064デフォルトの名無しさん
2005/06/24(金) 00:30:56#include <stdio.h>
#include <math.h>
#define Normal(v) sqrt((v)->x * (v)->x + (v)->y * (v)->y + (v)->z * (v)->z)
struct Vector3D{
double x;
double y;
double z;
};
void vecNormalize(struct Vector3D *v)
{
double len;
/* NULLポインタ、0ベクトルなら何もしない */
if(!v || (v->x == 0 && v->y == 0 && v->z == 0)){return;}
len = Normal(v); /* マクロにしちゃったけどやってることは同じ */
/* 長さを求めたら、それで割らないと */
v->x /= len;
v->y /= len;
v->z /= len;
/* doubleにstruct Vector3Dは入らないでしょう
len = *v;
*/
return;
}
0065デフォルトの名無しさん
2005/06/24(金) 00:31:09{
struct Vector3D v; /* ポインタでもいいけど、それなら確保しないと */
double Len;
double a,b,c;
/* scanfで値を受け取ってからベクトルに代入しないと */
scanf("%lf",&a);
scanf("%lf",&b);
scanf("%lf",&c);
v.x = a;
v.y = b;
v.z = c;
Len = Normal(&v);
printf("%lf\n", Len);
vecNormalize(&v); /* iは初期化されてないし渡すのdoubleじゃないし、戻り値voidだし */
Len = Normal(&v);
printf("%lf\n", Len);
return 0;
}
0067デフォルトの名無しさん
2005/06/24(金) 00:40:06あえて要点を外してるようにもみえなくもないなー。
006864
2005/06/24(金) 00:53:40なんだNormal(v)って。Vector3DLen(v)とか適当に読み替えておくれ。
006961
2005/06/24(金) 00:56:46問題はポインタの使い方とかに慣れてないことだと思ったんだが。
007053
2005/06/24(金) 01:03:34error: stray '\201' in program
error: parse error before `@' token
とエラーメッセージがずらーっと出てきたのですが
これは一体なんなんでしょうか・・・
0071デフォルトの名無しさん
2005/06/24(金) 01:06:34http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/598.c
(2)だけな
0072デフォルトの名無しさん
2005/06/24(金) 01:07:01全角空白か何かがしこたま入りこんでましたとさ
007352
2005/06/24(金) 01:08:04できました!!ほんとに助かりました。ありがとうございます!!!
あなたは神です!!
0074デフォルトの名無しさん
2005/06/24(金) 01:13:460075デフォルトの名無しさん
2005/06/24(金) 01:16:07全角*2→タブで置換してちょうだい。
0076デフォルトの名無しさん
2005/06/24(金) 01:17:11担当教官に通報しますた。
0077デフォルトの名無しさん
2005/06/24(金) 01:23:50ご返信、ホントにありがとうございます。
007853
2005/06/24(金) 01:31:46お手数おかけしました
ありがとうございます
0079デフォルトの名無しさん
2005/06/24(金) 10:16:12[2] 問題文↓
文字型1次元配列に空白を含む文字列を入力し、空白で区切られた文字列
をwordとして読み分ける。読み分けたwordを文字型2次元配列に格納する。
ただし、配列にwordの文字列を格納する際、最後に'\0'を追加すること。
読み取ったwordを一つづつ改行しながら出力してください。
[3] 環境
[3.1] OS:Windows2000
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:2005年6月25日12:00まで
[5] その他の制限:2次元配列まで習いました
よろしくお願いします。
0080デフォルトの名無しさん
2005/06/24(金) 12:02:35[2] 問題文(含コード&リンク):
下記3つのテンプレート関数をもつプログラムを作成しなさい。
1.バブルソートを利用し、dequeのオブジェクトを検索
2.セレクションソートを利用し、vectorのオブジェクトを検索
3.挿入ソートを利用し、リストを検索
[3] 環境
[3.1] OS:Windows2000/xp
[3.2] コンパイラ(バージョン):Visual C++ .NET (コンソール)
[3.3] 言語:C++
[4] 期限:2005年05月30日まで
[5] その他の制限:STLの概要、利用方法
0081デフォルトの名無しさん
2005/06/24(金) 12:03:300082ktc
2005/06/24(金) 12:06:00問3. 入力された文字列の文字を逆から表示するプログラムを関数を使って作成せよ。
0083デフォルトの名無しさん
2005/06/24(金) 12:07:46えらそうな奴だな
0084デフォルトの名無しさん
2005/06/24(金) 12:08:570085デフォルトの名無しさん
2005/06/24(金) 12:09:380086デフォルトの名無しさん
2005/06/24(金) 12:13:080087デフォルトの名無しさん
2005/06/24(金) 12:19:23008814
2005/06/24(金) 12:25:11出力の結果は木を記号を利用した図で表すか
深さ優先探索でなぞった結果を表示する
(例の場合は前順だとa b c d e f g h iと表示するんだと思います)
ようにしないといけないと言われました。
結果的にプログラムの変更をお願いしてしまい大変申し訳ありません。
お手数だとは思いますが宜しくお願いします。
0089デフォルトの名無しさん
2005/06/24(金) 12:33:25[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
次のアルゴリズムを作る
(1)2次方程式の解を求める.つまり,a,b,cが与えられたとき,
a*x*x + b*x + c = 0
という条件を満たす x の値を出すアルゴリズム.
(2)自然数(0ないし正の整数)が与えられたとき,その階乗 n! を出すアルゴリズム.桁あふれなどの物理的問題は無視してよい.
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): Visual C++ .NET
[3.3] 言語:C
[4] 期限:2005年7月1日まで
[5] その他の制限:ポインタ、構造体
どうかおねがいします
0090デフォルトの名無しさん
2005/06/24(金) 12:34:11ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/600.txt
0091デフォルトの名無しさん
2005/06/24(金) 12:35:50#include<stdio.h> main(){printf("文字列を入力してください\n");printf("マルチ\n");printf(”反転した文字列は「チルマ」です\n”);return 0;}
0093デフォルトの名無しさん
2005/06/24(金) 12:55:26(1)過去ログ参照。
(2)過去ログ参照。
0094デフォルトの名無しさん
2005/06/24(金) 13:01:07こういうことを聞いているのか?
template<class T>
void swapTemplate(T& ref1,T& ref2){
Tt = ref1;
ref1 = ref2;
ref2 = t;
}
template<class T>
void bubbleSort_forDeque(std::deque<T>& io_deq){
size_ti,k;
const size_tsize = io_deq.size();
if(size == 0) return;
for(i=0;i<size-1;i++){
for(k=i+1;k<size;k++){
if(io_deq[k] > io_deq[i]){
swapTemplate(io_deq[k],io_deq[i]);
}
}
}
}
0095デフォルトの名無しさん
2005/06/24(金) 13:22:520096デフォルトの名無しさん
2005/06/24(金) 14:35:45せめてreturn分岐の後にして欲しい。
0097デフォルトの名無しさん
2005/06/24(金) 15:29:23問題文
(1)80字以内の英文をgets()を用いて入力し、putchar()を用いて出力する。また、文字の並びを逆向きにputchar()で出力する。
(2)80字以内の英文をgetchar()を用いて入力し、puts()を用いて出力する。
ただし、( strcpy(),streat(),strlen()等)は使用しないこと。また(1),(2)に対
しては、それぞれ文字列へのポインタを仮引数とする関数(例えば、process1
(char *p),process2(char *p))を各自定義し、それらの内部で処理させること、
処理の流れは以下に示す仕様に従ってください。
<仕様>
1、メニューを表示し、上記処理(1)か処理(2)のどちらを実行させるか選ばせる。これは「1」または「2」の入力によって選択させる。
2、上記ステップにおいて、「1」、「2」以外の不適切な入力がなされたときには再度メニューを表示し、正しい選択を求める。
3、「1」または「2」の適切な入力がなされたときには、それによって指示される関数が文字列を処理する。
<入出力例>
MENU:
1.Input characters by maens of gets(),output them by means of putchar().
2.Input characters by maens of getchar(),output them by means of puts().
Please choose 1 or 2:5
Try again!
MENU:
1.Input characters by maens of gets(),output them by means of putchar().
2.Input characters by maens of getchar(),output them by means of puts().
Please choose 1 or 2:1
Please input characters:Taro Yamada
You inputted the following:Taro Yamada
The reversed characters is as follows:adamaY oraT
以上です製作どうかお願い致します
0098デフォルトの名無しさん
2005/06/24(金) 15:42:23仕様と入出力例が矛盾しているが。
0099デフォルトの名無しさん
2005/06/24(金) 16:43:02┃┌╋──╋┐┃
└╋┘ └╋┘
┃ ・ ・ ┃ ┌━━┐
●━╋┐ ┌╂━━━━╂┐ ┃
└━┷┴━━╂┘ └╋━┘
同じスレにはコピペ ┌╋┐ ┌╋┐
できるけど、違う ┃└╋╋━━╋╋┘┃
スレにはコピペでき ┃ ┃┃ ┃┃ ┃
ない不思議コピペ ┃ ┃┃ ┃┃ ┃
└━┘┘ └└━┘
0100デフォルトの名無しさん
2005/06/24(金) 17:26:43[2] 問題文(含コード&リンク):
TCP/IP通信型クイズ出題プログラムを作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:6月26日12:00まで
[5] その他の制限:特になし
自分なりにやってみたのですが、クイズの出題までは行くのですが、解答を出題したり、
問題がなかったりと、おかしくなってしまいます。おそらくクイズの出題のところがおかしいと思うのですが、
どこをどう直せばよいのかわかりません。
教えていただけるとうれしいです。お願いします。
サーバ: ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/604.txt
クライアント:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/605.txt
問題と解答:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/606.txt
ユーザ名:000000 パスワード:111111
説明不足なところがあれば言ってください。
0101デフォルトの名無しさん
2005/06/24(金) 18:05:41前にもこのスレでソケットの問題質問してた人のようだな(w
TCP/IPはストリーム型だから、データは区切りのないバイトストリームに過ぎない。ゆえに、
read(sockfd, buff, 1024);
のように読み取れば、1〜1024byteまで読み取る可能性があるのであって、それは
1行分のデータであるとは全然限らない。
今のようにメッセージが行志向のプロトコルの場合、
サーバならaccept()後、クライアントならconnect()後にfdopen()して、後は
stdioを使って送受信するのが一番ラクだろう。
FILE *reader, *writer;
connect(....);
reader = fdopen(sockfd, "r");
writer = fdopen(sockfd, "w");
fgets(buff, sizeof buff, reader); // メッセージの行読み
fprintf(writer, "%s\n", ....); // メッセージ送信
こんな感じだな。
0102デフォルトの名無しさん
2005/06/24(金) 18:10:01GOTO文を使わないcのコードに直すとどのようになるか教えてください。
DO 521 I = 2,N
JE = I - 1
DO 520 J = 1,JE
IF (EIGV(I).GT.EIGV(J)) GOTO 520
KS = J
KE = I
AA = EIGV(I)
IA = I
DO 517 K = KS,KE
BB = EIGV(K)
IB = IND(K)
EIGV(K) = AA
IND(K) = IA
AA = BB
IA = IB
517 CONTINUE
GOTO 521
520 CONTINUE
521 CONTINUE
0103100
2005/06/24(金) 18:30:55とりあえずこのままやってみます。
一行削除したらできるようになりました!
レスありがとうございました。
0104デフォルトの名無しさん
2005/06/24(金) 18:36:39こんな感じでどうだい?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/607.txt
0105デフォルトの名無しさん
2005/06/24(金) 18:37:19FORTRAN 知らないんだけど、これって多分ソートだよね?
for ( I = 1; I < N; I++ ) {
for ( J = 0; J < I; J++ ) {
if ( EIGV[ I ] < EIGV[ J ] ) {
AA = EIGV[ I ];
IA = I;
for ( K = J; K <= I; K++ ) {
BB = EIGV[ K ];
IB = IND[ K ];
EIGV[ K ] = AA;
IND[ K ] = IA;
AA = BB;
IA = IB;
}
break;
}
}
}
FORTRANの配列は 1〜 なのかな?C言語 0〜 で、宣言方法が違うので注意。
0106デフォルトの名無しさん
2005/06/24(金) 18:43:52それはともかく、
変数が全て大文字というだけで
Cのコードに見えないのだから不思議なものだな
0107デフォルトの名無しさん
2005/06/24(金) 18:45:52レベルの低い講師の想定にあわせなきゃいかんとは学生さんも大変だな
0108デフォルトの名無しさん
2005/06/24(金) 20:12:01[2] 問題文(含コード&リンク):
N 人の人がいて,それらは番号 0, 1, 2, ..., N-1 で表されているとする。
この N 人の人間関係(知り合いかどうか)を表した配列 a[N][N] がある。
ただし, i 番目の人と j 番目の人とが
知り合いであるときa[i][j] == a[j][i] == 1 であり,
知り合いでないとき a[i][j] == a[j][i] == 0 である。
このとき, x 番目の人から,知り合いの知り合いの知り合い.... という
繋がりで, y 番目の人まで辿り着くには,最小で何回の知り合いという
関係が必要か,
を返す関数 int acquaintDistance(int a[N][N], int x, int y) を作れ。
なお,x 番目の人から y 番目の人に辿り着けない場合には,
acquaintDistance は -1 を返すこととする。
関数名の acquaint は知り合いにさせる, distance は距離という意味である。
ヒント:待ち行列を利用する。最初に x を待ち行列に入れ,
後は,「待ち行列から一つ dequeue して,その人の知り合いを
待ち行列に enqueue する」ということを繰り返す。
ただし,一度 enqueue した人は二度と enqueue しないようにし,
y を enqueue する時点あるいは enqueue する一がいなくなった時点で,
終了する。x から各人までの知り合い距離を入れる配列も用意しておき,
新しい人を enqueue する度に,その人までの距離をその配列に入れる。
[3] 環境
[3.1] OS:VineLinux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年6月25日10:00まで
よろしくおねがいします。
0109デフォルトの名無しさん
2005/06/24(金) 20:48:24普通、ダイクストラ法使わないか?
0110デフォルトの名無しさん
2005/06/24(金) 20:55:27queueよりstackのほうが作りやすいと思うなー。
0111デフォルトの名無しさん
2005/06/24(金) 21:00:07とりあえずヒントそのままに愚直に実装したつもり
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/609.txt
0112デフォルトの名無しさん
2005/06/24(金) 21:02:14幅優先探索をさせたいんじゃないのか
0113デフォルトの名無しさん
2005/06/24(金) 21:05:43[2] 問題文:任意の画像を読み込み、任意の点を中心としたラインプロファイルを180度分とるプログラムを書け。
つまり、任意の点を通る直線を画像に水平を0度として作成しその直線上の濃度を取得、
1度ずつ回転し直線を作成してまた直線上の濃度を取得する。という感じです。
始点と終点さえ分かれば出来そうですがその求め方が分かりません。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):C++ Builder6
[3.3] 言語:C++
[4] 期限:来週中
[5] その他の制限:特になし
0114デフォルトの名無しさん
2005/06/24(金) 21:12:05もうちょいシンプル版。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/610.txt
0115デフォルトの名無しさん
2005/06/24(金) 21:13:56濃度って何。 Σ(線分が通るピクセル値)?
任意の画像はどう読み込むの。
むしろ、来週中までの問題を今投げるってことは、
最初から割り切ってここにカキコんでんのか。
少しは自分で実装試みてたら?
0116113
2005/06/24(金) 21:29:47グレースケールの画像を読み込みます。濃度というより輝度値ですね。直線が通るピクセルの輝度値を取得します。
画像自体はBMPやTIFFをOpenDialogで読み込み、Image1に出力するという感じです。
int theFile = FileOpen(OpenDialog1->FileName, fmOpenRead);
・・・
Image1->Picture->Assign(theBitmap);
任意の点はマウスクリックしてEdit1,Edit2にX,Y座標が出力されておりこれを基にしてます。
所詮言い訳ですけど、課題が出たのは先々週あたりです、
課題自体は複数の問題があり、
1.画像に対する水平線を引きその濃度プロファイルを出力
2.画像に対する垂直線を引きその濃度プロファイルを出力
3.上記の課題
水平と垂直はすぐ出来たんですがこの課題で始点と終点の指定が出来ずに時で完全に詰まってます。
プログラム作成の方針だけでもかまわないので教えてもらえないでしょうか?
0117デフォルトの名無しさん
2005/06/24(金) 21:51:06Borland C++触ったことねーからOpenDialog()だのFileOpen()だの
ナンノコッチャだけど
イメージの座標が(0,0) 〜 (X,Y)
で、マウスクリックされた「始点」が(x,y)であるとすると、終点は
(X, y * tan(θ) * (X-x)): θが0から1/2πまで
(x, Y): θが1/2π
(0, y * tan(θ) * (x)): θが1/2πからπまで
とかそんな感じだろ?
ただの高校数学の問題だとおもうが
0118デフォルトの名無しさん
2005/06/24(金) 21:54:19もし、Y<0ならば、(X,0)を求める(b)
(a)はX=0との交点、(b)はY=0との交点を求めることになる。
実際に紙に書いて試してみてください。分かったら、反対側も同様に。
0119117
2005/06/24(金) 21:56:51y + tan(theta) * (X-x)
y + tan(theta) * x
だな
0120デフォルトの名無しさん
2005/06/24(金) 21:58:340121デフォルトの名無しさん
2005/06/24(金) 22:23:172、コンパイラ gcc
指定された正の実数 a の n 乗根の計算
Newton法を用いて指定された正の実数 a の n乗根を求められるように
ただし、 nは自然数であり a も n も main() で与えることとします。
また fx(), dfx() には 元の引数だけでなく n も渡せるようにし、 fx(), dfx() の中で使われる x の べき乗の計算 ( xn) には for ループを用いなさい。
3、os LUNIX c言語
4、明後日までです。
0122デフォルトの名無しさん
2005/06/24(金) 22:27:04a, n を入力して下さい: 2.0 2
x fx dfx
1.500000 2.000000 4.000000
1.416667 0.250000 3.000000
1.414216 0.006944 2.833333
1.414214 0.000006 2.828431
2.000000 の 2 乗根は 1.414214
例(2)
% ./a.out
正の実数 a の n 乗根を求めます。
a, n を入力して下さい: 16.0 4
x fx dfx
12.000977 65520.000000 16384.000000
9.003047 20726.750000 6913.687500
6.757767 6553.889648 2918.962646
5.081286 2069.512451 1234.438843
3.841454 650.645142 524.784546
2.951653 201.762115 226.749710
2.369287 59.903343 102.862167
2.077716 15.511642 53.200199
2.004253 2.635670 35.877216
2.000014 0.136520 32.204563
2.000000 0.000435 32.000652
16.000000 の 4 乗根は 2.000000
0123デフォルトの名無しさん
2005/06/24(金) 22:30:02すみません。122が実行例です。
0124デフォルトの名無しさん
2005/06/24(金) 22:33:04どこの国のOSだよ
0125デフォルトの名無しさん
2005/06/24(金) 22:38:18[2] 問題文:
binaryファイルを読み込んで1バイト単位で16進数表示するためのプログラムを作成せよ
ただし256バイトごとに一時停止し継続、中断をできるようにすること
出力例 ./a.out
00 01 02 03 ・・・・・0e 0f
address -----------------------
00000000 30 31 32 33・・・・・45 46
00000010 00 01 02 03・・・・・0e 0f
中略
000000f0 41 42 43 44・・・・・4f 50
([ret]:continue, [q]:quit)?
[3] 環境
[3.1] OS:mac
[3.2] コンパイラ:gcc
[3.3] 言語:C
[4]日曜まで
よろしくお願いします
0126デフォルトの名無しさん
2005/06/24(金) 22:38:28{2}階乗関数kaijo() の作成
自然数 n の階乗 (n!= n * (n-1)* ... * 3 * 2 * 1) を計算する関数 kaijo() を定義して、
n を入力すると n!を出力するプログラムを作りなさい。
n の入力と n! の値の出力は、実行例を参考にして main() で行ってください。
実行例
% ./a.out
nを入力してください> 5
5! ---> 120
{3、1}OS : LUNIX
{3,2} gcc
{3,3} C言語
{4}来週の月曜日までです。
('−'*)ヨロシク 御願いします。
0127デフォルトの名無しさん
2005/06/24(金) 22:46:10int r;
for(r=1;s>=1;r*=s--);
return r;
}
0128デフォルトの名無しさん
2005/06/24(金) 22:46:11#include <stdio.h>
#include <stdlib.h>
int kaijo(int n)
{
if (n < 1)
return 1;
else
return n * kaijo(n - 1);
}
int main(void)
{
char buf[64];
printf(nを入力してください> ");
if (fgets(buf, sizeof buf, stdin))
{
int n = atoi(buf);
printf("%d! ---> %d\n", n, kaijo(n));
return 0;
}
return 1;
}
0129デフォルトの名無しさん
2005/06/24(金) 22:47:390130デフォルトの名無しさん
2005/06/24(金) 22:50:030131デフォルトの名無しさん
2005/06/24(金) 22:52:03アリガト!(´▽`)ございます。一様、学校にいってやってみます。
0132デフォルトの名無しさん
2005/06/24(金) 22:53:57nを入力してください"の前にダブルクォーテーションつけてくれ。
0133デフォルトの名無しさん
2005/06/24(金) 22:55:42(>Д<)ゝ”イエッサ!!
0134デフォルトの名無しさん
2005/06/24(金) 23:08:34[2]n の階乗を求める関数 kaijo() を
用いて自然対数の底 e を求めるプログラムを作りなさい。
ただし、結果は級数の第10項(1/9!)までループを使用して計算することとし、
項数についてはマクロを用いて定義することとします。
また、e の計算結果の出力は例を参考にして、 main()で行うこととします。
[3.1]OS LUNIX
[3.2]gcc
[3.3]c言語
[4] 来週の火曜日までです。
よろしく御願いします。((((((^_^;)
0135108
2005/06/24(金) 23:09:16参考にもなり助かりました。ありがとうございました。
0137デフォルトの名無しさん
2005/06/24(金) 23:51:11http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/611.txt
0138デフォルトの名無しさん
2005/06/25(土) 00:20:49#include <stdio.h>
#define N 10
double kaijo(int n) {
return n < 1 ? 1.0 : n * kaijo(n - 1);
}
double e() {
int i;
double r = 0;
for (i = 0; i < N; i++)
r += 1.0 / kaijo(i);
return r;
}
int main() {
printf("%f\n", e());
return 0;
}
0139デフォルトの名無しさん
2005/06/25(土) 00:30:22[2] 問題文(含コード&リンク): 遺伝的アルゴリズムを用いて関数の最適解を求める
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): Borland C++ 5.5.1
[3.3] 言語:C
[4] 期限今週の水曜
[5] その他の制限:ポインタ 配列 ファイル操作(fopenとか)の序盤 までは習っています
一応自分なりに完成させたのですが望んだ解が得られません
value=(-1)*c1*exp((-1)*c2*sqrt(1/2 * (pow(x1,2) + pow(x2,2)))) + exp(1/2 *((cos(c3 * x1) + cos(c3 * x2)))) + c1 + M_E;
↑はソースの一部なのですがc1,c2,c3には定数が入ります
x1,x2にはランダムな数を入れ、遺伝的アルゴリズムによって最適な解(valueが最大になるx1,x2の組み合わせ)
を探そう、ということなのですが
x1,x2にどのような値を放り込んでもvalueの値が3.718282(double)になってしまいます
x1とx2には指定された範囲で次々にランダムな数が放り込まれているのは確認しています
上にコピペした関数が私のミスでx1,x2によらず3.718282を返してしまうので修正していただけないでしょうか
http://www.geatbx.com/docu/fcnfun10.html
この関数を表現しようとしてますです
0141デフォルトの名無しさん
2005/06/25(土) 00:33:56[2] 問題文(含コード&リンク):
catコマンドとegrepコマンドとwcコマンドをパイプでつないで起動することで、
テキストファイルから空行を除いた上で行数・単語数・バイト数を数えるプロ
グラムを書け。 複数のファイルが指定されたときは、合計のみを表示するよ
うにすること。
[3] 環境
[3.1] OS:vineLinux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年6月25日12:00まで
おねがいいたします。。
0142デフォルトの名無しさん
2005/06/25(土) 00:43:57取りあえず、
+ exp(1/2 *((cos(c3 * x1) + cos(c3 * x2)))) + c1 + M_E;
↓
- exp(1/2 *((cos(c3 * x1) + cos(c3 * x2)))) + c1 + M_E;
定数とか、型宣言見ないと、なんとも言えん。
0143デフォルトの名無しさん
2005/06/25(土) 00:55:45を作成せよ。入力された値が素数の場合は素数と出力し素数で無い場合は最小の因数を出力せよ
と言う問題なんですがぜんぜんわかりません
0144139
2005/06/25(土) 01:06:19double calcval(int p[N])
{
int i;
double value,x1,x2,m1,m2;
double c1=20.0 ,c2=0.2, c3=2.0*M_PI;
m1=0;
for(i=0; i<16; i++)
{
m1=(m1+p[i]*pow(2,i));
}
m1=m1-32768;
x1=(double)m1/32768*5;
m2=0;
for(i=16; i<N; i++)
{
m2=(m2+p[i]*pow(2,i));
}
m2=m2-32768;
x2=(double)m2/32768*5;
value=(-1)*c1*exp((-1)*c2*sqrt(1/2 * (pow(x1,2) + pow(x2,2)))) + exp(1/2 *((cos(c3 * x1) + cos(c3 * x2)))) + c1 + M_E;
return value;
}
これが関数全体です
p[N]はp[32]={ランダムに0か1}
0145デフォルトの名無しさん
2005/06/25(土) 01:09:28#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
char buf[256];
int i, n, last;
n = atoi(fgets(buf,sizeof(buf),stdin));
if( n < 2 ) { fprintf(stderr, "input error\n"); return 0; }
last = sqrt(n);
i = 2;
do { }while(++i <= last && n % i);
if( i > last ) printf("%d は 素数\n", n);
else printf("%d は 合成数 [ 最小因数 %d ]\n", n, i);
return 0;
}
0146デフォルトの名無しさん
2005/06/25(土) 01:28:39x1, x2の算出はそれでいいのか?
-32.768<=x(i)<=32.768の条件を満たさないぞ
0147デフォルトの名無しさん
2005/06/25(土) 01:33:221/2→0 で演算される(∵1も2もintだから)からそれに何を掛けようが0。
後は無駄な演算を最初からやめるべき。GAなら時間かかる実験をやるわけだろ?
1/2→0.5
pow(x1,2)→x1*x1
(-1)*→-
0148デフォルトの名無しさん
2005/06/25(土) 01:57:44テンプレくらい嫁
#include <stdio.h>
int is_sosuu( int val )
{
int num = 2;
do{
if( 0 == val % num ) return num;
num ++;
}while( num<val );
return 0;
}
int main( void )
{
int val;
scanf( "%d", &val );
val = is_sosuu( val );
if( 0 == val ) printf( "素数\n" );
else printf( "最小の因数 %d\n", val );
return 0;
}
0149デフォルトの名無しさん
2005/06/25(土) 02:03:17[2] 問題文(含コード&リンク): ttp://acm.uva.es/problemset/v1/105.html これを解く
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:2005年06月28日13:00まで
よろしくおねがいします
0150デフォルトの名無しさん
2005/06/25(土) 02:26:53ttp://online-judge.uva.es/board/viewtopic.php?t=7059
P.E.を無くすくらい何とかしろ
0151デフォルトの名無しさん
2005/06/25(土) 02:38:01[2]文字ピラミッドの作成
実行例に示すように文字 + を使って指定された高さの文字ピラミッドを書くプログラムを考える。 1行の幅を41文字とし、高さが1の時はその中央21文字目に + を書き、
高さが2の時はさらに中央21文字目を中心に幅3だけ + を書くことにします。
サンプルプログラムの関数 line_display()内を補って、完成させなさい。
[3・1]OS:Linux
[3・2]gcc
[3・3]c言語
[4]来週の水曜日 です
0152デフォルトの名無しさん
2005/06/25(土) 02:41:30#include <stdio.h>
#include <string.h>
#define N30
int main(void)
{
int a[N];
int i, s, e, pos, height;
memset(a, 0, sizeof(a));
while (scanf("%d %d %d", &s, &height, &e) == 3) {
for (i = s; i < e; i++) {
if (height > a[i]) {
a[i] = height;
}
}
}
height = 0;
for (i = 0; i < N; i++) {
if (height != a[i]) {
printf("%d %d ", i, a[i]);
height = a[i];
}
}
printf("\n");
return 0;
}
0153デフォルトの名無しさん
2005/06/25(土) 04:14:25#include <stdio.h>
void line_display(int h)
{
char line[42];
int i, j;
for (i = 0; i < 41; i++) {
line[i] = ' ';
}
line[i] = '\0';
for (i = 0; i < h; i++) {
line[21 - i] = line[21 + i] = '+';
printf("%s\n", line);
}
}
int main()
{
int x;
printf("takasa?: ");
scanf("%d", &x);
line_display(x);
return 0;
}
0154デフォルトの名無しさん
2005/06/25(土) 11:00:38[2] 問題文(含コード&リンク):
多項間の四則演算及び累乗(^で表現する)に対応し、多重括弧に対応する電卓を作れ。
演算子「+」「-」「*」「/」「^」間の優先順位も正しく扱えること。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5.1
[3.3] 言語:C
[4] 期限:日曜PM6:00まで
[5] その他の制限:配列に数式を読み込んで、計算結果を出力させます。
ご指導をお願いします。
0155デフォルトの名無しさん
2005/06/25(土) 11:03:43[2]squeeze?の作成
getlineを使って文字列s2の文字と等しい文字を区切られた文字列s1(ただし「、」で区切られている)から除去されるようなプログラムをかく。
[3・1]OS:Linux
[3・2]gcc
[3・3]c言語
[4]来週の火曜日 です
今独学で勉強しています。「プログラミング言語C第2版」のP59.演習2−4の変則問題です。答えの本:アンサーブックをみたのですが、
void squeeze(char s1[], char s2[])
{
int i, j, k;
for (i = k = 0; s1[i] != '\0'; i++){
for (j = 0; s2[j] != '\0' && s2[j] != s1[i]; j++)
;
if (s2[j] == '\0')
s1[k++] = s1[i];
}
s1[k] = '\0';
}
そこしかのっていませんでした。ほかの部分がわからないので教えてください。お願いします。
0156デフォルトの名無しさん
2005/06/25(土) 11:15:16[2] 問題文(含コード&リンク): 引数で与えられた数だけ画面に * を表示する関数を作成する。それを用いて20以下の乱数で求まった長さの*線を10本引いて終了する。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):visual C++6.0
[3.3] 言語:C++
[4] 期限:なるだけ早くお願いします
[5] その他の制限:関数の作成
どなたか助けて下さい
0157156
2005/06/25(土) 12:14:440159デフォルトの名無しさん
2005/06/25(土) 12:54:15教えてくれませんか?
0160デフォルトの名無しさん
2005/06/25(土) 12:56:220161デフォルトの名無しさん
2005/06/25(土) 12:57:32http://www.google.co.jp/search?q=sin+%E3%83%86%E3%82%A4%E3%83%A9%E3%83%BC%E5%B1%95%E9%96%8B%E3%80%80%E8%BF%91%E4%BC%BC&hl=ja&biw=
0162デフォルトの名無しさん
2005/06/25(土) 13:00:230163デフォルトの名無しさん
2005/06/25(土) 13:02:39#include <stdio.h>
int main( int argc, char *argv[] )
{
int i, j, line_length;
if( argc < 2 ) return -1;
sscanf( argv[1], "%d", &line_length );
if( line_length > 0 )
for( i=0; i<10; i++ ){
for( j=0; j<line_length; j++ ) putchar('*');
putchar('\n');
}
return 0;
}
0164デフォルトの名無しさん
2005/06/25(土) 13:23:29[2] 問題文(含コード&リンク):
実空間サイズが200×200の2次元平面で、原点座標を実空間の中央(100.100)と考えた仮想空間があります。
その仮想空間で、座標値を入力し、原点からの入力座標の角度を求め、表示せよ。
※求める角度は整数値とする。
※X軸のプラス方向を0度とする。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):Visual C++
[3.3] 言語:C++
[4] 期限:6月30日
[5] その他の制限:
atan(?)は使わなくて出来るとかおっしゃってました。
よろしくお願いします(_ _(--;
0165デフォルトの名無しさん
2005/06/25(土) 13:29:31f(x)=a0+a1*x+a2*x^2+a3*x^3+a4*x^4+…
と置く。(式1)(こういう形の式になってくれるとうれしいと願う気持ち)
f'(x)=a1+2*a2*x+3*a3*x^2+4*a4*x^3+…
f''(x)=2*a2+6*a3*x+12*a4*x^2+…
f'''(x)=6*a3+24*a4*x+…
f''''(x)=24*a4+…
…
だから、
f(0)=a0, f'(0)=a1, f''(0)=2*a2, f'''(0)=6*a3, f''''(0)=24*a4, …
これがどんな数列になっているのかと考えてみると、
f^(k)(0)=k!*ak (k=0,1,2,3,4,…)
<=> ak=f^(k)/k!
となる。(式2)(こうなる証明は省略)
さて、
f(x)=sin(x)だから、f'(x)=cos(x), f''(x)=-sin(x), f'''(x)=-cos(x), f''''(x)=sin(x), …
f(0)=0, f'(0)=1, f''(0)=0, f'''(0)=-1, f''''(0)=0, f'''''(0)=1…
これを式2に代入すると、
a0=0, a1=1, a2=0, a3=-1/3!, a4=0, a5=1/5!…
式1に代入すると、
f(x)=sin(x)=x-x^3/3!+x^5/5!+…
0166デフォルトの名無しさん
2005/06/25(土) 16:04:240167デフォルトの名無しさん
2005/06/25(土) 19:54:16atan2使えば楽なのに何故敢えて使わない?
0168159
2005/06/25(土) 20:46:17[2] 問題文(含コード&リンク):
「sin(x)=x-x^3/3!+x^5/5!+…∞を近似、計算し、数学関数の値を比較する」
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): わかりません
[3.3] 言語:C
[4] 期限:6月29日まで
[5] その他の制限:まだ初心者でほとんどわかりません
ホントわからないんでお願いします!
0169デフォルトの名無しさん
2005/06/25(土) 20:55:39比較とはグラフと数値のどっちだ?
0170デフォルトの名無しさん
2005/06/25(土) 21:24:14#include <stdio.h>
#include <math.h>
#define factorial(x) gamma((double)(x)+1.0)
#ifndef M_PI
#define M_PI 3.14159265
#endif
#define X (M_PI/6) /* 30 degree */
int main( void ){
double answer=0.0, work=-1.0;
int i=1;
while( work != answer ){
work = answer;
answer += (double)((i%4==3) ? -1 : 1)*pow(X, (double)i)/factorial(i);
i+=2;
};
printf("x = %f\n", X);
printf("sin(x) = %f\n", sin(X));
printf("Maclaurin expansion -> %f\n", answer);
printf("error = %f\n", sin(X) - answer);
return 0;
}
0171デフォルトの名無しさん
2005/06/25(土) 21:39:20アークタンジェント(実は数学全然理解していない自分…orz)をつかえば一発ででるけど
別のやり方でできる、と言われました。
まぁ、使っては駄目とは言われてないので、atan(?)を使ってプログラム書いてもいいのかもしれませんが……。
0172デフォルトの名無しさん
2005/06/25(土) 22:15:200173デフォルトの名無しさん
2005/06/25(土) 22:27:04って課題が出たけど、pow関数使ったやつは作り直しになってた。
まあテーマが「アルゴリズム」だったからだろうけど
0174デフォルトの名無しさん
2005/06/25(土) 22:33:13ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/615.txt
0175デフォルトの名無しさん
2005/06/25(土) 22:44:51もしかして
文字'n'をval1、'x'をval2に入力させて
printf("%c^%c\n", val1, val2);
0176デフォルトの名無しさん
2005/06/25(土) 22:59:35自然数オンリーなら
int mypow(int x, int y)
{
int r = 1;
int mask = 0x40000000;
for( ; mask ; mask >>= 1) {
r *= r;
if(mask & y) r *= x;
}
return r;
}
多分まともに動く。
0177デフォルトの名無しさん
2005/06/25(土) 23:41:01[2] 問題:数値を入力し、最大値、最小値、平均値を出力せよ。
※-999が入力されたら入力を終了し、最大値、最小値、平均値を表示する。
平均の値は小数6桁まで表示
↓↓↓実行結果↓↓↓
1
4
5
-999
平均3.333333
最大5
最小1
[3] 環境
[3.1] OS:Windows
[3.2] BCC++:
[3.3] 言語:C
[4] 期限:2005年06月26日1:00まで
[5] その他の制限:とくになし。
0178デフォルトの名無しさん
2005/06/25(土) 23:41:21[2] 問題:数値を入力し、最大値、最小値、平均値を出力せよ。
※-999が入力されたら入力を終了し、最大値、最小値、平均値を表示する。
平均の値は小数6桁まで表示
↓↓↓実行結果↓↓↓
1
4
5
-999
平均3.333333
最大5
最小1
[3] 環境
[3.1] OS:Windows
[3.2] BCC++:
[3.3] 言語:C
[4] 期限:2005年06月26日1:00まで
[5] その他の制限:とくになし。
0180デフォルトの名無しさん
2005/06/25(土) 23:56:20#include <stdio.h>
#include <limits.h>
int main(void) {
int n, max = INT_MIN, min = INT_MAX, num = 0, sum = 0;
while (1) {
scanf("%d", &n);
if (n == -999) break;
++num; sum += n;
if (max < n) max = n;
if (n < min) min = n;
}
printf("平均%.6f\n最大%d\n最小%d", (double)sum / num, max, min);
return 0;
}
0181デフォルトの名無しさん
2005/06/26(日) 00:03:45#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *pArray = 0;
int Max = 0, Min = INT_MAX, Total = 0;
int i, n;
for (i = 0; ; i++) {
int n;
pArray = (int *)realloc(pArray, (i + 1) * sizeof (int));
if (!pArray)
return 1;
else if (scanf("%d%*[^\n]%*c", &n) == 0)
return 1;
else if (n == -999)
break;
else if (Max < n)
Max = n;
if (Min < n)
Min = n;
Total += n;
pArray[i] = n;
}
n = i;
for (i = 0; i < n; i++)
printf("%d\n", pArray[i]);
printf("平均 %f\n最大%d\n最小%d\n", (double)Total / n, Max, Min);
free(pArray);
return 0;
}
0182デフォルトの名無しさん
2005/06/26(日) 00:20:33それは嫌がらせだろ(w
0183デフォルトの名無しさん
2005/06/26(日) 02:42:25>-999が入力されたら入力を終了
入力値の条件が足りてないだろ?
マイナスを許可してるのか?(でも-999は別扱い...)
32bitなのか?
0184デフォルトの名無しさん
2005/06/26(日) 03:51:14[2] 問題文(含コード&リンク):
static GLfloat vertex[][3]={
{0.0,0.0,0.0},
{1.0,0.0,0.0},
{1.0,1.0,0.0},
{0.0,1.0,0.0},
{0.0,0.0,1.0},
{1.0,0.0,1.0},
{1.0,1.0,1.0},
{0.0,1.0,1.0}};
この頂点座標から法線ベクトルを計算するプログラムを作成し、結果をnormalに格納せよ
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): Borland C++ 5.5
[3.3] 言語:C
[4] 期限:26日午後1時まで
[5] その他の制限:特になし
すいません、アホで全く分からず(汗
よろしくお願いします
0185デフォルトの名無しさん
2005/06/26(日) 03:56:08とは?
>normal
型と宣言は?
0186デフォルトの名無しさん
2005/06/26(日) 05:30:03main(){
normal[0][0] = 0; normal[0][1] = 0; normal[0][2] = -1;
normal[1][0] = 0; normal[1][1] = 0; normal[1][2] = 1;
}
0187デフォルトの名無しさん
2005/06/26(日) 09:29:15プッ
0188デフォルトの名無しさん
2005/06/26(日) 11:00:34[1] 授業単元:LINUXプログラミング
[2] 問題文:システムコールのforkとexecvを用いて、
コマンドインタープリタ(myshという名称とする)を作成せよ。
ただし以下の機能をサポートすること。
・設定ファイル(.path)にコマンドサーチパスを指定できること。
なお、ファイル内のパスの指定方法は、各自で考えて定義すること。
・パイプを利用して複数のコマンドの入出力を結合できること。
・ヒストリの機能をサポートすること。
"history"コマンドは、引数なしで実行すると過去のコマンド実行のヒストリを表示し、
引数を指定するとその引数に相当するヒストリ内のコマンドを実行するものである。
・コマンドの実行中にCtrl-Cを入力すると、現在のコマンドの実行を中断できること。
・exitの入力により、myshを終了できること。
[3.1] OS:Linux
[3.2] コンパイラ:gcc
[3.3] 言語:C
[4] 期限:2005年6月28日23:59まで
よろしくお願いします。
0189デフォルトの名無しさん
2005/06/26(日) 11:31:44あと36時間がんばろうよ。
0190デフォルトの名無しさん
2005/06/26(日) 14:12:14> なお、ファイル内のパスの指定方法は、各自で考えて定義すること。
ここくらいは自分で定義しようよ
0191デフォルトの名無しさん
2005/06/26(日) 14:12:32プッ
0192デフォルトの名無しさん
2005/06/26(日) 14:15:19プッ
for(;;)
0193デフォルトの名無しさん
2005/06/26(日) 16:12:17[2] 問題文(含コード&リンク):
W杯予選対戦成績を入力して予選グループ内の順位表を表示するプログラムを作成しよう。
順位表
Team MP W D L GF GA Pts
Iran 5 4 1 0 6 1 13
Japan 5 4 0 1 7 3 12
Bahrain 5 1 1 3 2 4 4
Korea DPR 5 0 0 5 2 9 0
略記和表記意味
MP 試合数現時点までの試合数
W 勝数 現時点までの勝った試合数
D 引分数 現時点までの引き分けた試合数
L 負数 現時点までの負けた試合数
GF 得点 現時点までの得点合計
GA 失点 現時点までの失点合計
Pts 勝点1試合での勝ちは3 点, 引き分けは1 点、負けは0点。現時点までの合計
0195↑続き
2005/06/26(日) 16:15:30> a.exe
Type ’I’ or ’E’ [Input score:I/End:E] > I <- 予選1戦を入力するので,’I’
<<Iran(IRN):0 Japan(JPN):1 Bahrain(BHN):2 Korea DPR(PRK):3>>
Type the code of home team > 2 <- ホームチームはバーレーン
Goals of Bahrain> 0 <- バーレーンの得点は0
Type the code of away team > 0 <- アウェイチームはイラン
Goals of Iran> 0 <- イランの得点は0
Bahrain(BHN)- Iran(IRN)[0 - 0 ] : OK ?[Y/N] >Y <- 確認 OK なので’Y’
Type ’I’ or ’E’ [Input score:I/End:E] > 3 <- 入力ミス
Type ’I’ or ’E’ [Input score:I/End:E] > I <- 訂正
<<Iran(IRN):0 Japan(JPN):1 Bahrain(BHN):2 Korea DPR(PRK):3>>
Type the code of home team > 1
Goals of Japan>2
Type the code of away team > 3
Goals of Korea DPR>1
Japan(JPN)- Korea DPR(PRK)[2 - 1 ] : OK ?[Y/N] >Y
0196↑さらに続き
2005/06/26(日) 16:19:26<<Iran(IRN):0 Japan(JPN):1 Bahrain(BHN):2 Korea DPR(PRK):3>>
Type the code of home team > 3
Goals of Korea DPR>1
Type the code of away team > 2
Goals of Bahrain>2
Korea DPR(PRK)- Bahrain(BHN)[1 - 2 ] : OK ?[Y/N] >Y
Type ’I’ or ’E’ [Input score:I/End:E] > I
<<Iran(IRN):0 Japan(JPN):1 Bahrain(BHN):2 Korea DPR(PRK):3>>
Type the code of home team > 1
Goals of Japan> 10
Type the code of away team > 0
Goals of Iran> 0
Japan(JPN)- Iran(IRN)[10 - 0 ] : OK ?[Y/N] >N <- 入力ミスなので’N’
Type the code of home team > 0
Goals of Iran> 2
Type the code of away team > 1
Goals of Japan> 1
Iran(IRN)- Japan(JPN)[2 - 1 ] : OK ?[Y/N] >Y
Type ’I’ or ’E’ [Input score:I/End:E] > I
0197↑さらに続き
2005/06/26(日) 16:20:48=============================
Iran 3 2 1 0 4 1 7
Japan 2 1 0 1 3 3 3
Bahrain 2 1 1 0 2 1 4
Korea DPR 3 0 0 3 2 6 0
=============================
[3] 環境
[3.1] OS:Linuxエミュレータ
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年6月27日
[5] その他の制限:ポインタ までやりました
長文失礼しました。【アップローダー==ラウンジ】が落ちているのかつながらなかったため、このような形式ですみません。
最終的に最後の表を出力させるのが目的です。
どうかよろしくお願いします。
0198デフォルトの名無しさん
2005/06/26(日) 16:32:05[2] 問題文(含コード&リンク):
2〜1000までの表をつくり、
エラトステネスのふるいを用いて、素数を求め、素数には○、素数以外には×をつけよ
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):Visual C++
[3.3] 言語:C
[4] 期限:6/30まで
[5] その他の制限:if,whlie,for,配列までしかやってないんでその範囲でお願いします
0199デフォルトの名無しさん
2005/06/26(日) 17:08:10どういう表が必要かがわからない。
#include <stdio.h>
#define N 1000
int main(void) {
int i, sieve[N + 1], notprime;
char marubatsu[2][3] = {"○", "×"};
for (i = 2; i <= N; i++) sieve[i] = 1;
sieve[0] = sieve[1] = 0;
for (i = 2; i <= N / 2; i++) {
notprime = i;
while ((notprime += i) <= N) sieve[notprime] = 0;
}
for (i = 2; i <= N; i++)
if (sieve[i]) printf("%s%d\t", marubatsu[0], i);
else printf("%s%d\t", marubatsu[1], i);
return 0;
}
0200デフォルトの名無しさん
2005/06/26(日) 17:21:48問題分には表については詳しく書いてなかったんで、こんな感じでいいんだと思います
ただ、そのプログラムだとやってないとこ使いまくりなんでちょっと心配w(まだ文字列もreturnすらもやってません)
ありがとうございました。これを参考になんとかバレないように改良します
0201デフォルトの名無しさん
2005/06/26(日) 17:26:03returnは決まり文句だと思っておいて気にするな。
0202199
2005/06/26(日) 17:28:36これでprintfの中の文字列のspecifier使わなくてすむ。
#include <stdio.h>
#define N 1000
int main(void) {
int i, sieve[N + 1], notprime;
for (i = 2; i <= N; i++) sieve[i] = 1;
sieve[0] = sieve[1] = 0;
for (i = 2; i <= N / 2; i++) {
notprime = i;
while ((notprime += i) <= N) sieve[notprime] = 0;
}
for (i = 2; i <= N; i++)
if (sieve[i]) printf("○%d\t", i);
else printf("×%d\t", i);
return 0;
}
0203デフォルトの名無しさん
2005/06/26(日) 19:13:04,;f::::::::::::::::::::::::::ヽ
i/'" ̄ ̄ヾ:::::::::::i
|,,,,_ ,,,,,,_ |::::::::|
(三);(三)==r─、| 見よ!この肉体美!!
{ (__..:: / ノ′
. ', ==一 ノ
!___/_>、,,..- 、
ィ'''フ''''=、r'"~ ヽ、-=- /i,, `ヽr''"`ヽ、ヽ、
,r'"´ ノ" )=、.,_ゝニノ,,..ィ'"´i ヽ、
( ノ ´ ̄ `Y"´ i
) __,,.. レ _,,,,、 j、、
, ' ヽィ'''i" J ,,.ィ'"~ `'ヲ'''ー-、ノ、ヽ
.{ _.ト、 Y人 ,,l、 ノt' イノ.ノ
'、 >.ト '/ `ゝ、 人 ,,イ jt、 __...-'
' .,,_ _ ノ、 `ー--;::-ニ"_,ゝ=---‐''" ノ
ヽ、 r 、 f" `i´ ̄` Y `ヽ /
. ヽj ミi ! j' | /
`i 、〉、.__,人,___,..イ、,i" j''
i ヽf Y ,j,. ,/
l ヽ、 .| ノ ,. /
l 、j`ー‐‐'`ー="レ' j'
l ヽ -ニ- ノ l
l `i / ,l
人 ヽ / ノヽ
/ ヽ、 / ヽ
0204デフォルトの名無しさん
2005/06/26(日) 19:27:55同じ学科だけどそれぐらい自分でガンバレ
0205デフォルトの名無しさん
2005/06/26(日) 22:13:30[2] 問題文(含コード&リンク):
試験結果を用い、3科目の合計点の得点分布(度数分布)と平均、分散を求める。
ただし、合計点は、0〜29、30〜59、…270〜299、300と30点間隔にする。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:Visual C++
[4] 期限:6月27日15時まで
[5] その他の制限:↓に試験結果
0206デフォルトの名無しさん
2005/06/26(日) 22:13:511174330
2383955
31008658
4958863
5235272
6624958
7778084
8452562
9697348
10817795
11836455
12514747
13426285
14365064
15607638
0207デフォルトの名無しさん
2005/06/26(日) 22:15:360208デフォルトの名無しさん
2005/06/26(日) 22:19:50100点取ったやつがいたり一桁台取ったやつがいた場合どうすんの?
0209デフォルトの名無しさん
2005/06/26(日) 22:22:250210デフォルトの名無しさん
2005/06/26(日) 22:25:59とりあえず、3番の英語が100点です。
あとは、100点も一桁もいません
0211デフォルトの名無しさん
2005/06/26(日) 22:29:091 17 43 30
2 38 39 55
3 100 86 58
4 95 88 63
5 23 52 72
6 62 49 58
7 77 80 84
8 45 25 62
9 69 73 48
10 81 77 95
11 83 64 55
12 51 47 47
13 42 62 85
14 36 50 64
15 60 76 38
0212デフォルトの名無しさん
2005/06/26(日) 22:37:33試験結果はユーザに直接入力させるの?それともコードに配列を直書き?
それともファイルから読み込み?
0213デフォルトの名無しさん
2005/06/26(日) 22:45:320214デフォルトの名無しさん
2005/06/26(日) 23:01:38,.∩ `ヽ
〃∪'´ ̄`二二人\ ヽ
| ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ',
|ハ ,ニ、 ,. - 、 | | | l |
| ハ ィハ ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、
| | | じ' |トJ〉 /)} l | 違う板にコピペすると鬼のような怖い顔
| ハ 、'_,  ̄,, 厶イ川| に変わる摩訶不思議な佳子様コピペ。
l l /\ .. イV\川 |
,' l l ,イ `l ̄´ / /ヽl l
l | l ハ `メ、 〃 ヽヽ、__ノ
l ∨ └‐イ「ト--ァ'´ ハヽ__ノ
ヽ/ } l」」 / / }`ー
〈_n| 八 / / /ノ
〈二二人 c /\/ / , イ
/ /厂 /\__>< {_
0215デフォルトの名無しさん
2005/06/26(日) 23:09:23雑だが。
#include <stdio.h>
#define N 15
int main(void) {
int score[N][3] = {
{ 17, 43, 30}, { 38, 39, 55}, {100, 86, 58}, { 95, 88, 63}, { 23, 52, 72},
{ 62, 49, 58}, { 77, 80, 84}, { 45, 25, 62}, { 69, 73, 48}, { 81, 77, 95},
{ 83, 64, 55}, { 51, 47, 47}, { 42, 62, 85}, { 36, 50, 64}, { 60, 76, 38}
}, total[N];
int i, dist[11] = {0}, sum = 0;
double variance = 0.;
for (i = 0; i < N; i++) {
sum += total[i] = score[i][0] + score[i][1] + score[i][2];
++dist[total[i] / 30];
}
for (i = 0; i < N; i++)
variance += (total[i] - (double)sum / N) * (total[i] - (double)sum / N);
printf("得点分布\n");
for (i = 0; i < 10; i++) printf("%3d〜%3d:%3d\n", i * 30, i * 30 + 29, dist[i]);
printf("300 :%3d\n", dist[i]);
printf("平均:%f\n", (double)sum / N);
printf("分散:%f", variance / N);
return 0;
}
0216デフォルトの名無しさん
2005/06/26(日) 23:51:070217デフォルトの名無し
2005/06/27(月) 01:06:17[2] 問題文(含コード&リンク):
main関数内で0〜10までの5個ののランダムなint型整数値を一元配列data1に格納するものとする。
また、0〜10までの10個のランダムなdouble型実数値を一元配列data2に格納する。
この時、int型のデータ数nとint型の一元配列dataを引数として、
データのdouble型平均値を返す関数averageを作成し、この関数を多重定義することにより、
double型一元配列の平均値も算出できるようにせよ。
最後に、main関数でdata1とdata2の平均値を出力するようなプログラムを
トップダウン方式で作成せよ。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++
[4] 期限:2005年6月27日まで
[5] その他の制限:関数辺りまで習ってます。
0218デフォルトの名無しさん
2005/06/27(月) 01:16:32ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/619.txt
これを参考に2分木を作成し、その木をなぞるプログラムを作成してください
m(_ _)m ヨロシクお願いします
0219デフォルトの名無しさん
2005/06/27(月) 01:22:01「トップダウン方式」って、main()が最初に来るってコト?
0220デフォルトの名無しさん
2005/06/27(月) 01:24:58そうです。つまりは関数が下。
main()の上に関数プロトタイプ宣言っていうのが必要みたいですけど。
0221デフォルトの名無しさん
2005/06/27(月) 01:27:190222デフォルトの名無しさん
2005/06/27(月) 01:39:17適当だけど、こんなん?
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
double average(int, int*);
double average(int, double*);
int main(){
int data1[5];
double data2[10];
srand(time(NULL));
for(int i = 0; i < 5; i++)
data1[i] = rand() % 11;
cout << "data1: ave = " << average(5, data1) << endl;
for(int i = 0; i < 10; i++)
data2[i] = rand() * 10 / (double)RAND_MAX;
cout << "data2: ave = " << average(10, data2) << endl;
}
0223デフォルトの名無しさん
2005/06/27(月) 01:39:39double average(int n, int *data){
double ave = 0;
for(int i = 0; i < n; i++)
ave += data[i];
return ave / (double)n;
}
double average(int n, double *data){
double ave = 0;
for(int i = 0; i < n; i++)
ave += data[i];
return ave / (double)n;
}
0224デフォルトの名無しさん
2005/06/27(月) 01:49:13こんなんで…いいわけないか。
#include <numeric>
#include <iostream>
#include <cstdlib>
#include <ctime>
double average(int, int*);
double average(int, double*);
int main() {
int data1[5]; double data2[10];
std::srand((unsigned)std::time(0));
for (int i = 0; i < sizeof(data1) / sizeof(data1[0]); i++)
data1[i] = (int)(std::rand() / (1. + RAND_MAX) * 11.);
for (int i = 0; i < sizeof(data2) / sizeof(data2[0]); i++)
data2[i] = (double)std::rand() / RAND_MAX * 10.;
std::cout << average(5, data1) << '\n' << average(10, data2) << std::endl;
}
double average(int n, int* data) {
return std::accumulate(data, data + n, 0.) / n;
}
double average(int n, double* data) {
return std::accumulate(data, data + n, 0.) / n;
}
0225デフォルトの名無しさん
2005/06/27(月) 01:50:22ありがとうございますっ!
お陰で凄い助かりました!
0226デフォルトの名無しさん
2005/06/27(月) 01:53:18ありがとうございますっ!
同じ結果出すのにしても色々記述方法があるんですね・・。
0227デフォルトの名無しさん
2005/06/27(月) 02:13:130228デフォルトの名無しさん
2005/06/27(月) 02:15:40実行例読むのがめんどい…
0229218
2005/06/27(月) 02:18:53[1]単元:cプログラミング
[2]コード&リンク
↓前順による木のなぞりのプログラム例がある
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/619.txt
これを参考に2分木を作成し、その木をなぞるプログラムを作成してください
m(_ _)m ヨロシクお願いします
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4]できるだけ早めにお願いしますm(__)m
[5]教科書は終わりました、演習中です
0230デフォルトの名無しさん
2005/06/27(月) 02:39:11の順なのか...
Ptsの順ではなく
あと、PKで決まった場合の入力はどうすんだろ?
0231デフォルトの名無しさん
2005/06/27(月) 02:48:53ぐは
>230
PKは考えなくていいみたいです
最終的に並び替えるときはPts順みたいでした。申し訳ないです。
これの最後に書いた表は並び替えの処理をしなかった場合の例だったようです
0232デフォルトの名無しさん
2005/06/27(月) 07:02:28まだいる?
0233デフォルトの名無しさん
2005/06/27(月) 09:16:19[2] 問題文(含コード&リンク):関数を利用してx*x+y*y+z*zの計算を求めなさい。この際、2種類のタイプ
(1)void型(2)return
をそれぞれ利用したプログラムを作りなさい。x、y、zは任意の値である。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:6月28日まで
[5] その他の制限:if,for,while、配列までやりました
0234デフォルトの名無しさん
2005/06/27(月) 09:25:11void kansuu1(double x, double y, double z, double * kekka)
{
* kekka = x * x + y * y + z * z;
}
double kansuu2(double x, double y, double z)
{
return x * x + y * y + z * z;
}
int main()
{
double z;
kansuu1(1, 2, 3, &z);
printf("%f\n", z);
z = kansuu2(1, 2, 3);
printf("%f\n", z);
return 0;
}
0235デフォルトの名無しさん
2005/06/27(月) 09:38:36遅かったけど、折角つくったからAGE。
#include <stdio.h>
void XYZ01(double *Val,double x,double y,double z){
*Val=x*x+y*y+z*z;
}
double XYZ02(double x,double y,double z){
return x*x+y*y+z*z;
}
int main(){
double x,y,z,a1,a2;
puts("input X");
scanf("%lf",&x);
puts("input Y");
scanf("%lf",&y);
puts("input Z");
scanf("%lf",&z);
XYZ01(&a1,x,y,z);
a2=XYZ02(x,y,z);
printf("Type[Void:%lf]\nType[Return:%lf]\n",a1,a2);
}
0236デフォルトの名無しさん
2005/06/27(月) 09:54:33>>235
二人とも、ありがとうございます
0237デフォルトの名無しさん
2005/06/27(月) 10:13:19[2] 問題文(含コード&リンク):一般項が(2nー1)である数列の和を求めるプログラミングを書け。
次に和を求める部分を関数として分離した形にせよ。n=1.2.3.4....に対して出力を工夫し
結果が人目でわかるような出力の関数を作れ。
[3]
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:2005年6月28日
[5] その他の制限:
宜しくお願いします
0238デフォルトの名無しさん
2005/06/27(月) 10:31:46今来ました
0239>>237
2005/06/27(月) 10:53:45//1 + 3 +・・・+ 2(N-1)-1 + 2N-1の和
//N(1<=N<=65535)
unsigned int
Sn(unsigned int n){
n *= n;
return n;
}
int main(int argc, char* argv[]){
unsigned int n;
do{
printf("Sn = 1 + 3 + ・・・ + 2(N-1)-1 + 2N-1 を求める\nN(1<=N<=65535)を入力しる!:");
scanf("%ud",&n);
}while(n < 1 || n > 65535);
printf("Sn(n = %d) = %d\n",n,Sn(n));
return 0;
}
0240239
2005/06/27(月) 10:57:55printf("Sn(n = %d) = %d\n",n,Sn(n));
↓
printf("Sn(n = %d) = %u\n",n,Sn(n));
0241デフォルトの名無しさん
2005/06/27(月) 11:38:49問題文
「以下は、ポインタの1次元配列を使った国名と首都名を結び付ける文字列テーブルである。
char *na[]={"Japan Tokyo", "USA Washington", "UK London", "France
Paris", "China Beijing", "Russia Moscow", "Germany Berlin", "India New
Delhi", "Brazil Brasilia",""}
これを用いて、国名を入力すると、その首都名を表示するプログラムを作成し、実行しなさい。」
というものに対して以下のプログラムを組んでみました。ですが完全でないらしくこれ以上どこをいじっていいのかわかりません、プログラマーのみなさん、些細な点から大きなところまで突っ込みを頂けるとありがたいです、おねがいします
プログラム
#include <stdio.h>
#include <stdlib.h>
int seek_len(char *object);
int match_nat(char *object, char *target);
char *na[]={
"Japan Tokyo",
"USA Washington",
"UK London",
"France Paris",
"China Beijing",
"Russia Moscow",
"Germany Berlin",
"India New Delhi",
"Brazil Brasilia",
""
};
0242デフォルトの名無しさん
2005/06/27(月) 11:43:12ありがとうございました
0243デフォルトの名無しさん
2005/06/27(月) 11:43:46{
int i;
if (argc!=2) {
printf("Usage: <Name of Program> <Name ofNation>\n");
printf("Try again!\n");
exit(1);
}
for (i=0; *na[i]; i++) {
if (!match_nat(argv[1], na[i])) continue;
else exit(0);
}
printf("The capital of %s is not found.\n", argv[1]);
return 0;
}
0244デフォルトの名無しさん
2005/06/27(月) 11:44:39{
int length=seek_len(object);
if (*(target+length)!=' ') return 0;
while (*object) {
if (*object!=*target) return 0;
else {
object++;
target++;
}
}
printf("The capital of %s is %s.\n", object-length, target+1);
return 1;
}
int seek_len(char *object)
{
int i;
for (i=0; *(object+i); i++);
return i;
}
0245デフォルトの名無しさん
2005/06/27(月) 11:45:17<適切な入力時>
% ./a.out Japan
The capital of Japan is Tokyo.
<不適切な入力時1>
% ./a.out Russia India
Usage: <Name of Program> <Name of Nation>
Try again!
<不適切な入力時2>
% ./a.out Greece
The capital of Greece is not found.
多数ログうめてごめんなさい
0246デフォルトの名無しさん
2005/06/27(月) 12:54:06前スレで同じ宿題見かけたな。
0247デフォルトの名無しさん
2005/06/27(月) 13:23:50同じ学校やらクラスの生徒で
「2Chで宿題教えてもらった」
と噂になる。
短期間で同じ問題がどっと押し寄せる。
ということなんだろう。
0248デフォルトの名無しさん
2005/06/27(月) 13:47:14そうか。じゃぁ突っ込みいれるまでもないね。
0249デフォルトの名無しさん
2005/06/27(月) 13:49:490250デフォルトの名無しさん
2005/06/27(月) 13:54:10ttp://makimo.to/2ch/pc8_tech/1118/1118165596.html#492
0251241
2005/06/27(月) 18:07:05返事してくれたみなさんに感謝。
0252デフォルトの名無しさん
2005/06/27(月) 18:44:05[2] 問題文(含コード&リンク)
int a[8] と宣言された配列 a があり,
その要素の値は 0, 1, 2 のいずれかとする。
また,p を 0 <= p < 8 であるような整数とする。
a[p+1], a[p+2], ... と調査したとき,0を挟まず2が1個以上続いて,
その直後に 1 があるとき,その続いた2の個数を返し,
そうでないとき 0 を返す関数 int check(int a[8], int p)を作れ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:6月28日 am7:00まで
[5] その他の制限:特にありません。
すいませんが、お願いいたします。
0253デフォルトの名無しさん
2005/06/27(月) 18:59:03{
int i;
for( i = 0, p++; p < 8; p++ ) switch ( a[ p ] ) { case 0 : i = 0; break; case 1 : if ( i ) return i; break; case 2 : i++; break; }
return 0;
}
0254デフォルトの名無しさん
2005/06/27(月) 19:21:21#include<stdlib.h>
#define V 2000
main()
{int i,j;
char data[V];
int data2[V];
FILE *fp;
fp = fopen("583904.txt","r");
for(i=0;i<V;i++){
data[i]=fgetc(fp);
}
fclose(fp);
for(i=0;i<V;i++){
data2[i]= atoi(data[i]);
}
return 0;
}
583904.txtには576786584684という感じにずーとデータが入っています。
文字列型で取り出したのを整数型で使いたいのでatoiという関数を使い
ましたが、”1 番目の引数を 'char' から 'const char *' に変換でき
ません。”というエラーが出ます。どうしたらいいんでしょうか?
0255デフォルトの名無しさん
2005/06/27(月) 19:28:15data2[i]= atoi(data[i]); -> data2[i]= atoi(data);
0256デフォルトの名無しさん
2005/06/27(月) 19:30:21[2] 問題文(含コード&リンク):
Hough変換アルゴリズムを用いて、円 r=(x-a)^2 + (y-b)^2 を検出するプログラムを作成せよ。
(a)原画像を二種類以上用いよ。
(b)処理後のabrパラメータ空間をGnuplotを用いて表示せよ。
1:1点のエッジに対する軌跡(円錐)を表示せよ。
2:2点以上のエッジに対する軌跡(円錐)を表示せよ。
(c)3種類以上にし閾値を変化させた実験結果を逆変換し、その結果を原画像に投影した画像を表示せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:2005年6月30日まで
[5] その他の制限:特になし
ほとんど分かりません。よろしくお願いします。
0257デフォルトの名無しさん
2005/06/27(月) 21:51:43[2] 問題文(含コード&リンク):
date.csvファイルに入っているデータ(Excelのファイルで1列目に少数のデータ[例、-1.543579]
が多数入っている)のを読み込んで、
それぞれをA[i]という配列にしまう。iはデータの個数。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ(バージョン):Visual C++ 6.0
[3.3] 言語:C
[4] 期限:2005/06/28
[5] その他の制限:特になし
お手数おかけいたしますが、どうかよろしくお願いいたします。
0258257
2005/06/27(月) 22:25:03date.csvファイルには、1行1列目(1A)から1000行1列目(1000A)までデータが入っており、それらをそれぞれXという配列に読み込みます。
例えば1行1列目はX[0]に、2行1列目はX[1]にという具合です。
申し訳ございませんが、どうぞ宜しくお願いします。
0259デフォルトの名無しさん
2005/06/27(月) 22:47:05#include <stdio.h>
#define DATA_MAX 65535
int main( void )
{
double X[DATA_MAX]; unsigned int i=0; char ch='\0';
do scanf( "%lf ", X+i++); while( scanf( "%c ", &ch ) > 0 && (ch == ',') );
return 0;
}
0260デフォルトの名無しさん
2005/06/27(月) 22:58:46[2] 問題文:整数配列 x とその大きさ s が引数とされているとき、配列中の最大値の配列要素の位置を返却する関数 saidai を作成してください。
さらに、配列 x の最後尾の配列要素に配列 x の最大値を入れ、最大値が入っていた要素位置に配列の最後尾にあった値を入れる関数 change を作成してください。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:明日
[5] その他の制限:どうかお願いします。
0261デフォルトの名無しさん
2005/06/27(月) 23:02:37X+i++ → &X[i++]
0262デフォルトの名無しさん
2005/06/27(月) 23:12:02#define swap_int(a,b) {int tmp = (a); a = (b); b = tmp;}
int saidai( int x[], int s )
{
int i, max = x[0], pos_max = 0;
for( i=0; i<s; i++ )
if( x[i] > max ){
max = x[i];
pos_max = i;
}
return pos_max;
}
void change( int x[], int s )
{
swap_int( x[s-1], x[saidai(x,s)] );
}
0263デフォルトの名無しさん
2005/06/27(月) 23:20:04有難うございました。
0264257
2005/06/27(月) 23:20:14早速わざわざありがとうございます!!
こちらのプログラムでは、date.csvファイルの宣言する必要はなしで良いんですかな?
0265デフォルトの名無しさん
2005/06/27(月) 23:24:26[2] 問題文(含コード&リンク):
現存ファイルに任意の数の数値が入っている。
そのファイルを呼び出し、データ最大値・最小値・平均値・標準偏差値を
取り出すプログラムを関数へのポインタ変数の受け渡しを利用して作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:2005年6月29日
[5] その他の制限:
「任意の数の」なんでwhileを使え、ということらしいです。
現存ファイルの名前はseiseki.txtです。
内容は↓ 列ごとに別の教科の点数、ってことみたいです。
70 56 66 45 88
66 85 68 55 73
55 65 53 67 55
85 72 76 58 65
92 70 45 73 55
56 57 52 62 82
72 62 33 85 95
46 95 48 72 34
83 42 88 92 56
68 65 91 82 66
0266デフォルトの名無しさん
2005/06/27(月) 23:28:27全体的に日本語が不自由なようだが
0267デフォルトの名無しさん
2005/06/27(月) 23:39:54じゃあこうしてみるとか
#include <stdio.h>
#define DATA_MAX 65535
int main( void )
{
double X[DATA_MAX]; unsigned int i=0; char ch;
FILE *fp = fopen("data.csv","r");
if( !fp ) return -1;
do fscanf( fp, "%lf ", &X[i++] );
while( fscanf( fp, "%c ", &ch ) > 0 && (ch == ',') && (i < DATA_MAX) );
fclose( fp );
return 0;
}
0268デフォルトの名無しさん
2005/06/28(火) 00:04:20[2] 問題文(含コード&リンク):
簡単なオセロのような物を作ります。以下条件です。
※マウスの左が押されたら白、右ボタンを押されたら黒を置く。
※8×8の升目を2次元配列で実現。
※2次元配列のデータは
0→何も置かれていない 1→白が置かれている 2→黒が置かれている
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):Visual C++
[3.3] 言語:C
[4] 期限:6月28日PM.1:00まで
[5] その他の制限:一応↑のような状態まで自分でやりました。
手元にソースがないので、今テキストに書きました。(間違えているかも知れません・・・)
あとは、反転処理だとは思うのですが、よくわかりません……。
forやifでできるとは思うのですが……。
よろしくお願いします。
0269デフォルトの名無しさん
2005/06/28(火) 00:06:05すいません、張り忘れました・・・
0270デフォルトの名無しさん
2005/06/28(火) 00:06:09WindowsのGUIか…面倒くさいな。フルスクラッチ?
0271デフォルトの名無しさん
2005/06/28(火) 00:10:08[2]squeezeの作成
getlineを使って文字列s2の文字と等しい文字を区切られた文字列s1(ただし「、」で区切られている)から除去されるようなプログラムをかく。
[3・1]OS:Linux
[3・2]gcc
[3・3]c言語
[4]水曜日 です
0272デフォルトの名無しさん
2005/06/28(火) 00:18:44初歩的なことですいません。フルスクラッチとはどういうことでしょうか?(´・ω・`)
とりあえず、挟んだ所をオセロのように反転させる処理ができればOKぽいです……。
0273デフォルトの名無しさん
2005/06/28(火) 00:38:210から書くとこと。
0274デフォルトの名無しさん
2005/06/28(火) 00:52:55漏れまだそこまでいってない。
みんな進むの早いよ・・・
0275デフォルトの名無しさん
2005/06/28(火) 01:11:38[2] 問題文(含コード&リンク): 行列A,Bの掛け算をするプログラム。A,Bのサイズと各要素は標準入力から入力し、
掛け算が可能かもチェックできるようにせよ。
[3] 環境
[3.1] OS:Windows/Linux/等々 Windous
[3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5.1
[3.3] 言語:C/C++/どちらでも可 のいずれか c言語
[4] 期限:yyyy年mm月dd日hh:mmまで または 無期限 のいずれか 今月30日まで
[5] その他の制限:どこまで習っているか、等々 ポインター、構造体くらいまで習ってますがまだイマイチ理解が足りません
以下に未完成のプログラムを貼ります。int A[l][m],B[n][o],C[l][o]; って感じのことが出来たら完成すると思うんですが…
よろしくお願いします
0276275
2005/06/28(火) 01:13:00#include<stdlib.h>
main()
{
int l,n,m,o,i,j,k;
printf("行列A(行数l,列数m),行列B(行数n,列数o)の積を求めます。\n");
printf("lを入力してください。\n");
printf("l=");
scanf("%d",&l);
printf("mを入力してください。\n");
printf("m=");
scanf("%d",&m);
printf("nを入力してください。\n");
printf("n=");
scanf("%d",&n);
printf("oを入力してください。\n");
printf("o=");
scanf("%d",&o);
printf("行列Aは%d×%d行列、行列Bは%d×%d行列です。\n",l,m,n,o);
if(m!=n){
printf("指定された行列のサイズでは演算不可能です。\n");
}
else{
printf("A×Bは演算可能です。\n");
0277デフォルトの名無しさん
2005/06/28(火) 01:13:25for(j=0;j<m;j++){
printf("行列Aの%d行%d列の成分は?・・・",i+1,j+1);
scanf("%lf",&A[i][j]);
printf("行列Aの%d行%d列の成分は%lfです。\n",i+1,j+1,A[i][j]);
}
}
for(i=0;i<n;i++){
for(j=0;j<o;j++){
printf("行列Bの%d行%d列の成分は?・・・",i+1,j+1);
scanf("%lf",&B[i][j]);
printf("行列Bの%d行%d列の成分は%lfです。\n",i+1,j+1,B[i][j]);
}
}
for(i=0;i<l;i++){
for(j=0;j<o;j++){
for(k=0;k<m;k++){
C[i][j] += A[i][k]*B[k][j];
}
}
}
for(i=0;i<l;i++){
for(j=0;j<o;j++){
printf("ABの[%d]行[%d]列成分 = %lf\n", i+1,j+1,C[i][j]);
}
}
}
}
0278デフォルトの名無しさん
2005/06/28(火) 01:38:122 defg
3 hijk
-1 ****
0 1 10
0 2 34
1 2 55
2 1 28
-1 -1 0
1
上のようなデータが書かれたdatファイルがあり、これをプログラムで読み込んで、
char型 x[****より上の要素の数(この場合3)][10]
/ ヽ.
| a b c |
x | d e f g |
| h i j k .|
ヽ. /
int型 y[****より上の要素の数][****より上の要素の数]
/ ヽ.
| 0 10 34 .|
y .| 0 0 55 |
| 0 28 0 |
ヽ. /
n = 1 (←一番下にあるデータ)
のように配列に格納するソースファイルを作ってもらえないでしょうか?
よろしくお願いしますm(__)m
0279278
2005/06/28(火) 01:39:44[3] 環境
[3.1] OS:Windows/Linux/等々 WindowsXP
[3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5.1
[3.3] 言語:C/C++/どちらでも可 のいずれか C言語
こちらを張り忘れました・・・(汗
0280デフォルトの名無しさん
2005/06/28(火) 02:05:24このスレの人らって同じ専門高校(大学?)の生徒なの?
0281257&264
2005/06/28(火) 02:12:09#define DATA_MAX 65535
main()
{
FILE *fp;
double X[DATA_MAX];
int i(0);
unsigned int k(0);
char ch;
fp=fopen("date.csv","r");
if( !fp ) return -1;
do fscanf(fp,"%lf",&X[k++]);
while (fscanf(fp,"%c",&ch) > 0 && (ch == ',') && (k < DATA_MAX) );
fclose(fp);
return 0;
for(i=0 ; i<=DATA_MAX ; i++)
{
printf("%d\n",X[i]);
}
}
コレなんですが、エラーは無くとも出力が何も出てきません。
どうしてでしょうか?
何度もすみません。
0282デフォルトの名無しさん
2005/06/28(火) 02:22:34うっそーん。ホントにコンパイル通る?
0283257&264
2005/06/28(火) 02:30:24一応、エラー、警告共に0ですが、実行しても何もでないです。
どうしてでしょう・・。
0284デフォルトの名無しさん
2005/06/28(火) 02:33:05配列Xをmain()の外に出してみたらどうよ。
0285282
2005/06/28(火) 02:40:120286257&264
2005/06/28(火) 02:41:27何も出ないっす(;_;)
お手数かけて本当にすみません。
0287K
2005/06/28(火) 02:43:200288デフォルトの名無しさん
2005/06/28(火) 03:09:56黙れボケ
0289257&264
2005/06/28(火) 03:15:52やはりどうしても出力がなされません。
return 0;もなくしてみました。
何か解決法がございましたら、ご教授お願いいたします。
0290デフォルトの名無しさん
2005/06/28(火) 03:26:52[1] 授業単元: C言語
[2] 問題文(含コード&リンク): SJISの文字列を入力して、8バイト、
もしくは2バイト文字で重なっている場合は7バイトずつに文字列に
改行を挿入する。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5.1
[3.3] 言語:C
[4] 期限:金曜まで
[5] その他の制限:どうかお願いします。
改行で区切るtokという関数を作ったのですが、うまく行きません。
例えば、"2あいうえおかきくけこ"だとうまく行きますが、
"ふぃdjそいfjs"とかだとうまく行きません。どこを変えたら
いいですか?
下に書きます。
0291デフォルトの名無しさん
2005/06/28(火) 03:27:07#include<string.h>
void tok(unsigned char str[8192],int tok);
void main(){
unsigned char str[8192];
fgets(str,8192,stdin);
tok(str,8);
printf("%s",str);
}
void tok(unsigned char str[8192],int j){
int i,l,ll,tok,cou;
unsigned char c1,c2,tokstr[8192];
tok=0;ll=0;cou=0;l=strlen(str);
while(ll<=l){
if(cou-j>=0){
c1=str[ll-1];
c2=str[ll];
if(((c1>=0x81 && c1<=0x9F) || (c1>=0xE0 && c1<=0xEF)) &&
((c2>=0x40 && c2<=0x7E) || (c2>=0x80 && c2<=0xFC))){
tokstr[tok-1]='\n';cou=0;ll--;
}
else{tokstr[tok]='\n';tok++;cou=0;}
}
else{tokstr[tok]=str[ll];ll++;tok++;cou++;}
}
strcpy(str,tokstr);
}
0292デフォルトの名無しさん
2005/06/28(火) 03:33:01#include<stdio.h>
int main(void)
int x[10000],result,n=0,i;
FILE *fp;
fp=fopen("date.csv","rt");
if(fp==NULL){printf("error:file not found.\n");
exit(1); }
while(1){
result=fscanf(fp,"%lf",&x[n]);
if(result==-1)break; n++; }
fclose(fp);
printf("input data\n");
for(i=0;i<n;i++)printf("%2d",x[i]);
printf("\n");
}
0293訂正
2005/06/28(火) 03:34:18#include<stdio.h>
int main(void) {
int x[10000],result,n=0,i;
FILE *fp;
fp=fopen("date.csv","rt");
if(fp==NULL){printf("error:file not found.\n");
exit(1); }
while(1){
result=fscanf(fp,"%lf",&x[n]);
if(result==-1)break; n++; }
fclose(fp);
printf("input data\n");
for(i=0;i<n;i++)printf("%2d",x[i]);
printf("\n");
}
0294257&264
2005/06/28(火) 03:35:22出力は出る様になりましたが、
ずっと値は-858993460のままです。
0295257
2005/06/28(火) 03:40:23ありがとうございます!!
えっと、実行してみたのですが、真っ黒のまま何も表示されない状態です。
上の294は間違えですので気にしないでください(汗)
0297257
2005/06/28(火) 03:48:22えっと、実はファイル名はdate.xlsで間違っていたのですが、
自分で入力する際に変更していました。
中に入っているデータは数字だけで、
一行目が-2.36145、その後値は変化していき、
それが2005行目まであります。
0298デフォルトの名無しさん
2005/06/28(火) 03:56:560299訂正
2005/06/28(火) 03:57:19double x[10000]みしてみて
0300訂正
2005/06/28(火) 03:58:11double x[10000]にしてみて
0301257
2005/06/28(火) 04:00:58xlsとcsvの間違え申し訳ございません。
doubleに変えてみたのですが、真っ黒の画面に白いバーが点滅しているだけで何も起きません。
遅くまですみません!!
0302デフォルトの名無しさん
2005/06/28(火) 04:02:200303257
2005/06/28(火) 04:02:58↑も出力されていない状態です。
0304257
2005/06/28(火) 04:03:38date.xlsです。
すみません。
0305訂正
2005/06/28(火) 04:03:520306デフォルトの名無しさん
2005/06/28(火) 04:04:20オレは降りる。
0307257
2005/06/28(火) 04:08:191行目から10行目までが↓
-2.36145
-1.641235
-2.959595
-2.776489
-1.775513
-2.947388
-2.300415
-1.616821
-2.874146
-2.739868
1996行目から2006行目までが↓
-2.581177
-2.605591
-1.921997
-3.081665
-2.715454
-1.885376
-3.057251
-2.312622
-2.373657
-3.276978
以上になります。
0308訂正
2005/06/28(火) 04:28:43int main(void) {
int n=0,i;
double x[2100];
FILE *fp;
fp=fopen("date.xls","rt");
if(fp==NULL){printf("error:file not found.\n");
exit(1); }
while(1){
fscanf(fp,"%lf",&x[n]);
if(x[n]==-3.276978)break; n++; }
fclose(fp);
printf("input data\n");
for(i=0;i<n;i++)printf("%lf\n",x[i]);
printf("\n");
}
0309デフォルトの名無しさん
2005/06/28(火) 04:30:19学校の教師がプログラミングの課題によく数学を絡めてくるんです。
数学の授業でもないのに、数学の部分で悩ませようとしてくるんです。
授業ではプログラミングの事しか勉強していないのに、
課題に数学を出すなんておかしいと思います><
0310デフォルトの名無しさん
2005/06/28(火) 04:31:57プログラミングと数学が関係を持つのはあたりまえ
0311デフォルトの名無しさん
2005/06/28(火) 05:01:44fscanf()の戻り値を-1(EOF)かどうかだけでチェックするのは危険だ。
fscanf()で値をNコ読み出すんなら戻り値はNかどうかをチェックしろ。
そうしないと、入力が不正な場合は、あっさり無限ループになる。
それと、本当に.xlsファイルなら、stdioのfscanf()のようなものを使って
お手軽な入出力、というわけにはいかない。
.xlsはただのテキストファイルではないからな。
.xlsファイルを一番簡単に読むやり方はオートメーションを使うことだが、
どうもそれは「宿題」の範囲を超えるような気がする。
0312デフォルトの名無しさん
2005/06/28(火) 05:13:57>>253
大変助かりました!ありがとうございます。
0313デフォルトの名無しさん
2005/06/28(火) 05:19:14乙
0314257
2005/06/28(火) 08:53:45遅くまで何度も何度もありがとうございました。
自分も何度も挑戦してみたのですが、難しいっすね(汗)
本当にありがとうございます。
>>311様
.csvファイルであれば可能でしょうか?
もともと、C言語で作ったプログラムからデータを取った物なので、
.xlsファイルでなくても、.csvファイルにすることも可能です。
0315デフォルトの名無しさん
2005/06/28(火) 09:04:17csvからxlsに保存しちまっただけだろ。
xlsからcsvに簡単に変換できるのになぜそうする?
0316257
2005/06/28(火) 09:10:13そうなんです。
ですので、csvでファイルを扱うことも可能です。
無知なためにxlsとcsvとで、プログラムの組み方が変わってくると思わなかったので。
本当にすみませんm(_ _)m
0317デフォルトの名無しさん
2005/06/28(火) 09:48:23少数のデータが多数? どっちなんだ?
xlsファイルを一度、テキストエディタで開いて味噌。
0318257
2005/06/28(火) 10:00:41誤字です。すみません!!
正しくは小数のデータが1行目〜2006行目まで入っているということになります。
メモ帳で開けますかね?挑戦してみます。
0319デフォルトの名無しさん
2005/06/28(火) 10:05:27話はそれからだ。
0320257
2005/06/28(火) 10:16:52ただいま通学中のためできないのですが、昼頃にはインストして開いてみますm(_ _)m
0321デフォルトの名無しさん
2005/06/28(火) 10:30:550322デフォルトの名無しさん
2005/06/28(火) 10:51:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/623.txt
あまり綺麗なソースじゃないけど。
そこまで書ける人ならコレで分るんじゃないかな?
0323322
2005/06/28(火) 10:58:13BOOL _Stone_Reverse( POINT *ptSet, int iStone, POINT *ptVector )
{
// 省略
do {
ppiBorad[ tSearch.x ][ tSearch.y ] = iStone;
tSearch.x -= ptVector->x;
tSearch.y -= ptVector->y;
} while ( ppiBorad[ tSearch.x ][ tSearch.y ] != STONE_NONE );
return bResult;
}
に修正しておいて。
0324308
2005/06/28(火) 11:17:21因みに俺はデータをメモ帳に保存した。そしたら308でできた。
0325デフォルトの名無しさん
2005/06/28(火) 12:54:45[2] 問題文(含コード&リンク): PhysCheck型構造体で表されてる身体検査の
データ配列をクイックソートのアルゴリズムを用いて整列を行うプログラムを作成せよ
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Cygwin
[3.3] 言語:C
[4] 期限:今週の木曜1時
0326325
2005/06/28(火) 13:00:11大変見難いかと思いますがどうか宜しくお願いします
#include <stdio.h>
#define swap(type,h,i) do{type t = h; h=i; i=t;} while(0)
void quick_height(const PhysCheck a[],int l,int r)
{
int pl = l;
int pr = r;
do{
while(a[pl].height<a[(l + r) / 2].height) pl++;
while(a[pr].height>a[(l + r) / 2].height) pr--;
if(pl<=pr){
swap(int,a[pl],a[pr]);
pl++;
pr--;
}
} while(pl <= pr);
if(l<pr){
quick(a,l,pr);
}
if(pl<r){
quick(a,pl,r);
}
}
0327325続き(構造体とmain関数)
2005/06/28(火) 13:01:05char name[20];
int height;
double vision;
} PhysCheck;
int main(void)
{
int i;
PhysCheck x[] = {
{"AKANE Kouichi", 170,2.0},
{"TOKUTOMI Shyuji", 173,1.5},
{"NISHIDA Taro", 170,0.5},
{"TSUJINO Jiro", 175,0.4},
{"MATSUO Keiji", 167,0.6},
{"OHYAMA Kazuhiro", 168,0.2},
{"KITAYAMA Takuya", 179,0.6},
{"TANAKA Rina", 158,0.9},
};
int nx = sizeof(x)/sizeof(x[0]);
for(i=0;i<8;i++)
printf("%-18.18s%4d%5.1f\n",x[i].name,x[i].height,x[i].vision);
return(0);
}
0328257
2005/06/28(火) 13:03:52メモ帳に保存しようと思うのですが、
コピペでいいのでしょうか?
それともプログラムから開くでやった方がいいのですか?
プログラムから開くと文字化けします。
0329257
2005/06/28(火) 13:08:18メモ帳に保存しようと思うのですが、
コピペでいいのでしょうか?
それともプログラムから開くでやった方がいいのですか?
プログラムから開くと文字化けします。
0330デフォルトの名無しさん
2005/06/28(火) 13:12:56最初からxlsだったわけじゃないんだろ?そのデータ使え
0331257
2005/06/28(火) 13:23:14そのcsvファイルのデータを読み込んで、配列に入れたいのですが。
0332デフォルトの名無しさん
2005/06/28(火) 13:30:55swap( PhysCheck, a[ pl ], a[ pr ] );
0333デフォルトの名無しさん
2005/06/28(火) 13:31:33const を外せ。
0334デフォルトの名無しさん
2005/06/28(火) 13:33:45csvを保存するのにメモ帳は関係ないだろ。
xlsをメモ帳(テキストエディタ)で開けば、
それがそのままでは利用しにくいと言うことが判るから>317はそう言ったんだと思うが。
0335デフォルトの名無しさん
2005/06/28(火) 13:57:34[1] 授業単元:モータ制御実験
[2] 問題文(含コード&リンク):計測プログラムのプログラム解析を行い、どのようにして読み込んだデータを電圧に変換表示しているのか説明せよ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/541.txt
[3] 環境
[3.1] OS:PC-9801 or PC-9821 DOS
[3.2] コンパイラ(バージョン): BorlandCかTurboC
[3.3] 言語:C
[4] 期限:2005年7月5日13:00まで
[5] その他の制限:特になし
よろしくお願いします。
0336デフォルトの名無しさん
2005/06/28(火) 14:11:28ADボードの説明書を読め。
0337257
2005/06/28(火) 14:34:53csvよりかテキストファイルの方が読み込みが簡単なのかと思いこんで、書き換えようとしてました。
csvファイルがあらますので、そのまま配列に読み込みたいです。
何度も本当に申し訳ないのですが、宜しくお願いします。
0338デフォルトの名無しさん
2005/06/28(火) 14:38:11csvはテキストファイルだが?
0339257
2005/06/28(火) 15:15:51csvもテキストファイルなようですね。
csvファイルを読み込んで、配列に入れ込む方法を教えていただきたいです。
0340デフォルトの名無しさん
2005/06/28(火) 15:23:440341デフォルトの名無しさん
2005/06/28(火) 15:37:27サンプルの乗ってるいいサイトとかもし知ってたら教えてくれ。
0342デフォルトの名無しさん
2005/06/28(火) 15:39:20http://pc8.2ch.net/test/read.cgi/tech/1119514274/1-6
0343デフォルトの名無しさん
2005/06/28(火) 15:41:46[2] 問題文(含コード&リンク): 関数 データ型 演算子 制御文 配列 ファイルの入出力を使って100ステップ以上のコンパイルできるソース
[3] 環境
[3.1] Win2k
[3.2] コンパイラ(バージョン): 不明
[3.3] C
[4] 期限:2005年7月12日まで
[5] もうさっぱり
0344デフォルトの名無しさん
2005/06/28(火) 15:43:120345デフォルトの名無しさん
2005/06/28(火) 15:49:55制御文っていうのがまたえらく抽象的だな。
0346デフォルトの名無しさん
2005/06/28(火) 15:54:43if文
if else文
関係演算子
論理演算子
繰り返し
while文
無限ループ
break文
continue文
多分これだと思います
つーかもう100ステップとかマジ無理
printfくらいしかわからんよ
0347デフォルトの名無しさん
2005/06/28(火) 16:01:121. 努力を放棄すること
いやしくも「教えてクン」たるもの、努力をしてはならない。
過去ログを読んだり、検索してはいけない。
「英語は苦手なので、分かりません。」は、高く評価できる。
辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
他力本願と言われようと、自分で調べたり試行錯誤したりせず、他人の努力の結果を搾取するのが、正しい「教えてクン」である。
また、「もう何が悪いのかサッパリ分かりません。」と言ってふてくされるのも有効である。
「サッパリ」という単語が「やる気の無さ」を効果的に表現している。
「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと自己の積極性が現れてしまうので、「教えてクン」失格である。
0348デフォルトの名無しさん
2005/06/28(火) 16:31:49遅レスすいません。
#defineなどはまだ習ってないんですよね……。
そしてポインタを理解していない自分 orz
でも、今日やって方向性は見えてきました!
本当にありがとうございましたm( __ __ )m
0349デフォルトの名無しさん
2005/06/28(火) 16:55:33[2] 1 一行に一つの整数が書かれているファイルがある。
2 このファイルを読み込んで、昇順にソートするプログラムを作りなさい。
3 データファイルの名前はコマンドライン引数で与える。
4 使い方を誤ったとき、ファイルが開けないときにはエラーを出力する。
5 データが1000行以上あれば、警告メッセージを表示して最初の1000行分の
データだけ与えられた動作を行う
[3] 環境
[3.1] Linux
[3.2] イーマックス
[3.3] C
[4] 2005年6月30日まで
どなたか、お願いいたします。
0350デフォルトの名無しさん
2005/06/28(火) 17:10:59(;`Д´)・・・・・
0351257
2005/06/28(火) 17:43:22多くの方々の手助けをいただき、ご迷惑をおかけしましたが本当にありがとうごさいました。
0352デフォルトの名無しさん
2005/06/28(火) 17:44:20新鮮だ
つい私も書きたい衝動に駆られる
イーマックス
満足した
0353デフォルトの名無しさん
2005/06/28(火) 17:57:170354デフォルトの名無しさん
2005/06/28(火) 18:47:00[2] 配列の内容を値の小さい順に並び替える。
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] C
[4] 2005年6月30日まで
0355デフォルトの名無しさん
2005/06/28(火) 19:07:15static int intcmp(const int *s, const int *t) { return *s - *t; }
int main(int argc, char *argv[])
{ FILE *fp = NULL;
int ary[ARRAY_MAX], i, sts, max;
char buf[BUFSIZ];
if(argc != 3) { fprintf(stderr, "使用法:%s infile outfile\n", argv[0]); goto Error; }
fp = fopen(argv[1], "r"); if(fp == NULL) { perror(argv[0]); goto Error; }
for(i = 0; i < sizeof ary && fgets(buf, sizeof buf, fp) != NULL; i++) ary[i] = atoi(buf);
max = i;
sts = fclose(fp), fp = NULL; if(sts != 0) { perror(argv[0]); goto Error; }
if(max >= sizeof ary) fprintf(stderr, "%s:警告:データが1000行以上あります", argv[0]);
qsort(ary, max, sizeof *ary, intcmp);
fp = fopen(argv[2], "w"); if(fp == NULL) { perror(argv[0]); goto Error; }
for(i = 0; i < max; i++) fprintf(fp, "%d\n", ary[i]);
sts = fclose(fp), fp = NULL; if(sts != 0) { perror(argv[0]); goto Error; }
return EXIT_SUCCESS;
Error: if(fp != NULL) fclose(fp), fp = NULL;
return EXIT_FAILURE; }
0356デフォルトの名無しさん
2005/06/28(火) 19:08:44http://www.google.co.jp/search?hl=ja&q=%E3%83%90%E3%83%96%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88
0357デフォルトの名無しさん
2005/06/28(火) 19:34:39整数の2次元配列の計算2
例のように、2次元配列の縦横をrand関数を使用し、
2桁までの整数配列を作りなさい。
出力例:
[0] [1] [2] 横計
[0] ? ? ? ?
[1] ? ? ? ?
[2] ? ? ? ?
[3] ? ? ? ?
縦計 ? ? ? ?
お願いしますです。。。。。。。。。。。。。。。。
0358デフォルトの名無しさん
2005/06/28(火) 20:22:350360デフォルトの名無しさん
2005/06/28(火) 20:28:26357頑張れよ先は長いぞ
0361デフォルトの名無しさん
2005/06/28(火) 20:29:16笑ったから良いけど
0362デフォルトの名無しさん
2005/06/28(火) 20:35:32これの意味なんですか?
なんか点が多くて意味が分かりません。
0363デフォルトの名無しさん
2005/06/28(火) 20:37:56点が少ない方が良いか?
0364デフォルトの名無しさん
2005/06/28(火) 20:38:35多分、意味を説明するのに点を使わないわけにいかないので、
説明してもらっても多分意味がわからないと思う。
0365デフォルトの名無しさん
2005/06/28(火) 20:40:540366デフォルトの名無しさん
2005/06/28(火) 20:42:07質問に一個答えよう
変えられるよ
0367デフォルトの名無しさん
2005/06/28(火) 20:49:230368デフォルトの名無しさん
2005/06/28(火) 20:50:32断る。
0369デフォルトの名無しさん
2005/06/28(火) 20:58:05ないんだけど……
0370デフォルトの名無しさん
2005/06/28(火) 20:58:23あと>>1ちゃんと嫁。
0371デフォルトの名無しさん
2005/06/28(火) 21:31:03[2] sin65゚とsin64.8゚をラグランジュ補間法で求める
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] C
[4] 期限:金曜日
[5] 次のデータを使う:引数 関数値
0 0.0
15 0.25882
30 0.50
45 0.70711
60 0.86603
75 0.96593
90 1.0
0372デフォルトの名無しさん
2005/06/28(火) 21:59:51データファイルの内容は?
例えばsin0〜sin90まで(角度は15°とばしのとか)のデータがいるでしょ。
0373371
2005/06/28(火) 22:00:180374デフォルトの名無しさん
2005/06/28(火) 22:00:58すまんなかったことにしてくれ。
0375デフォルトの名無しさん
2005/06/28(火) 22:47:04#include <stdio.h>
double mysin(double x) {
return -9.02403152203135e-15 + x * (0.017454900000000606 + x * (-2.2098765424951852e-7 + x * (-8.746296296286118e-7 + x * (-2.9492455418896675e-10 + (1.7613168724302022e-11-3.0483158055678805e-14 * x) * x))));
}
int main(void) {
printf("sin65°=%f\nsin64.8°=%f", mysin(65), mysin(64.8));
}
0376デフォルトの名無しさん
2005/06/28(火) 22:50:46また来るんだろうな
0377デフォルトの名無しさん
2005/06/28(火) 23:02:08そんなのプログラムじゃなくて電卓の計算と同じじゃないか
0378デフォルトの名無しさん
2005/06/28(火) 23:13:03ハイハイ。せっかくのネタ振りを。
#include <stdio.h>
double lagrange_interpolation(double* data, unsigned int n, double x) {
int i, j;
double result = 0., temp;
for (i = 0; i < n; ++i) {
temp = 1.0;
for (j = 0; j < n; ++j)
temp *= (i == j ? 1 : (x - j) / (i - j));
result += data[i] * temp;
}
return result;
}
int main(void) {
double data[] = {0.0, 0.25882, 0.50, 0.70711, 0.86603, 0.96593, 1.0};
const unsigned int n = sizeof(data) / sizeof(data[0]);
printf("sin65°=%f\nsin64.8°=%f\n\n", lagrange_interpolation(data, n, 65 / 15.), lagrange_interpolation(data, n, 64.8 / 15.));
}
0379デフォルトの名無しさん
2005/06/28(火) 23:42:47[2] 問題文(含コード&リンク):
(3n+1)問題。n22とする。
・nが偶数なら2で割る
・nが奇数なら(3n+1)とする
この操作をn22の整数に対して繰り返し行うことのできるプログラムを書け。
上の操作の部分の関数結果の数を次々と出力する関数に分けて書く。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 2005 06 30 木曜日
[5] その他の制限:
よろしくお願いします
0380デフォルトの名無しさん
2005/06/29(水) 00:02:26[2] 問題文(含コード&リンク):
整数n(1≦n≦5)と2つのn次正方行列A,Bを読み込み、
A×Bを求めるプログラムを作成せよ。ただし、行列の要素は
すべて整数型としてよい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 2005 07 01 金曜日
お願いします.
0381デフォルトの名無しさん
2005/06/29(水) 00:02:45不満があればどうぞ
#include <stdio.h>
int modify(int n) {
return n & 1 ? 3 * n + 1 : n >> 1;
}
void print_n(int n) {
printf("%d\n", n);
}
int main(void) {
int n22 = 23;
print_n(n22);
while (n22 != 1) {
n22 = modify(n22);
print_n(n22);
}
return 0;
}
0382デフォルトの名無しさん
2005/06/29(水) 00:03:13行列のデータはどこからどのようにして読み込む?
書式は?
0383デフォルトの名無しさん
2005/06/29(水) 01:23:20[2] 問題文(含コード&リンク): 現在ファイル(tensuu.txt)に任意の数の数値が入っている。そのファイルを呼び出し、データの最大、最少、平均値、標準偏差値を取り出す
プログラムを関数へのポインター変数の受け渡しを利用して作成せよ
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:6月30日まで
よろしくお願いします
0384デフォルトの名無しさん
2005/06/29(水) 01:33:04tensuu.txtの書式は?数(改行)数字(改行)…?
0385デフォルトの名無しさん
2005/06/29(水) 01:35:01「2」標準入力から正の正整数を読み込み0が入力されたらそれらの整数を小さい順に表示するプログラムを作れ。
「3」1OS:Linux
2コンパイラ(バージョン):gcc
3言語:C
[4]明日まで
0386デフォルトの名無しさん
2005/06/29(水) 01:35:47数字です。改行もします
0387デフォルトの名無しさん
2005/06/29(水) 01:37:26123
456
789
…
と続くの?
0388デフォルトの名無しさん
2005/06/29(水) 01:49:09#ヒント
BEGIN {
min = 1e300;
max = -1e300;
sum = 0;
s2 = 0;
}
{
sum += $1;
s2 += $1 * $1;
if ($1 < min) {
min = $1;
}
if ($1 > max) {
max = $1;
}
}
END {
printf("max:%g, min:%g, ave:%g, dev:%g\n", max, min,
sum / NR, sqrt((s2 - sum * sum / NR) / (NR - 1)));
}
0389デフォルトの名無しさん
2005/06/29(水) 01:49:27[2]問題文:行列A(L行M列)と行列B(M行N列)の積C(L行N列)を求めるプログラムを作りなさい。
[3]環境
[3.1]OS:Linux
[3.2]コンパイラ(バージョン):gcc
[3.3]言語:C
[4]7月1日
0390デフォルトの名無しさん
2005/06/29(水) 02:07:34はい、そういう感じです
0391デフォルトの名無しさん
2005/06/29(水) 02:10:53標準偏差といわれてもnで割るのかn-1で割るのか…とりあえず前者。
#include <stdio.h>
#include <float.h>
#include <math.h>
int main(void) {
int n = 0;
double x, min = DBL_MAX, max = DBL_MIN, mean = 0., mean2 = 0.;
FILE* fp = fopen("tensuu.txt", "r");
while (fscanf(fp, "%lf", &x) != EOF) { /* 一応ポインタの受け渡し */
++n;
if (x < min) min = x;
if (max < x) max = x;
mean += x;
mean2 += x * x;
}
fclose(fp);
mean /= n;
mean2 /= n;
printf("最大:%f\n最小:%f\n平均値:%f\n標準偏差:%f\n", max, min, mean, sqrt(mean2 - mean * mean));
return 0;
}
0392デフォルトの名無しさん
2005/06/29(水) 02:13:45>>388>>391
夜遅くにありがとうございます。
0393デフォルトの名無しさん
2005/06/29(水) 02:28:03多分、授業でL行M列行列の和なり差なりを求めるプログラムを習っていると思うので、
それを書いてください。
0395デフォルトの名無しさん
2005/06/29(水) 02:58:15うーむ。 データをどう与えるかってってゆーのがワカランですね。
0397デフォルトの名無しさん
2005/06/29(水) 03:08:12[2] 問題文(含コード&リンク):
問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/624.txt
データファイル
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/625.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):VC++6.0
[3.3] 言語:どちらでも可
[4] 期限:7月2日まで
[5] その他の制限:特に無し。
0398デフォルトの名無しさん
2005/06/29(水) 06:38:02関数への「ポインター変数の受け渡し」 か
「関数へのポインター変数」の受け渡し かと思った
0399デフォルトの名無しさん
2005/06/29(水) 09:08:04ありがとうございます。
0400デフォルトの名無しさん
2005/06/29(水) 09:12:56[2] 問題文(含コード&リンク):
sin(x)の近似式
sin(x)=x-(x^3/3!)+(x^5/5!)-(x^7/7!)・・・・
の値と、数学関数sin(x)を使用したときの値を比較するプログラムを作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:今日の正午まで(すみません・・・)
[5] その他の制限:なし
どなたかお願いします。締め切り近くて本当にすみません・・・。
0401デフォルトの名無しさん
2005/06/29(水) 09:47:32ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/615.txt
0402デフォルトの名無しさん
2005/06/29(水) 10:02:05[2] 問題文(含コード&リンク):
クラスN人の試験の点数を配列grade[ ]に格納し、総和、平均を求めよ。
さらに最高点、最低点を求められるようにせよ。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:6月30日まで
[5] その他の制限:
おねがいします
0403デフォルトの名無しさん
2005/06/29(水) 10:45:37sinの近似
再帰を使ったパワーアップバージョン
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/627.txt
0404デフォルトの名無しさん
2005/06/29(水) 10:56:02[2] 問題文:
関数factを用いて大きさnのパスカルの三角形(もどき) を作成しなさい。パスカルの三角形は
2項係数を順次求めていった時に現れる。
1 1
1 2 1
1 3 3 1
1 4 6 4 1
という奴である。n 行目 r 列の成分は組みあわせの数 n C r によって与えられる。ただし
nCr = n! / ((n-r)! r! )
である。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/5まで
[5] その他の制限:関数の扱いまで習いました。
どなたかご教授お願いします。
0405デフォルトの名無しさん
2005/06/29(水) 11:08:36ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/628.txt
0406デフォルトの名無しさん
2005/06/29(水) 11:23:42#include <stdio.h>
int fact( int n, int r )
{
int c, i, t;
if ( r < n - r ) t = n - r; else t = r;
for ( c = 1, i = t + 1; i <= n; i++ ) c *= i;
for ( i = 1; i <= n - t; i++ ) c /= i;
return c;
}
int main( void )
{
int n, r;
for ( n = 1; n <= 16; n++ ) {
for ( r = 0; r <= n; r++ ) {
printf( "%d ", fact( n, r ) );
}
printf( "\n" );
}
return 0;
}
0407デフォルトの名無しさん
2005/06/29(水) 11:28:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/629.c
0408325
2005/06/29(水) 11:31:26>>332,333様、無事コンパイルでき、ちゃんとソートもできました
本当に助かりました、どうもありがとうですm(_ _)m
0409デフォルトの名無しさん
2005/06/29(水) 11:31:37ありがとうございます、助かりました
0411デフォルトの名無しさん
2005/06/29(水) 11:54:46[2] 問題文(含コード&リンク):
ユークリッドの互除法で最大公約数を求める場合の再帰的関数呼び出しによる
プログラムを書け。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:7/1まで
[5] その他の制限:
宜しくお願いします。
0412デフォルトの名無しさん
2005/06/29(水) 12:03:42[2] 問題文:
キーボードから0以上100未満の整数を複数読み込み,0〜9,10〜19,20〜29,
・・・,90〜99の範囲の整数がそれぞれ何個ずつあるか数えるプログラムを
作成する。負数が入力された時点で入力の終了とする。
カウンタを配列で定義して(int counter[10])作ってください。
[3] 環境
[3.1] OS:Windouws xp
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/3まで
よろしくお願いします。
0413397
2005/06/29(水) 12:20:53早速の解答、ありがとうございますっ!
実行してみたところ、一文字の割合だけ出力されました。
3文字を1文字へ変換出力するプログラムは自力でやれ、ってことでしょうか。。。
(問題文の文脈からちゃんと伝わっていなかったのでしたらこちらの不手際ですm(_ _)m)
もしよろしければ、3文字→1文字への変換出力も教えていただきたいです・・・
0414デフォルトの名無しさん
2005/06/29(水) 12:24:39そゆこと。
データファイルの形式が意味不明だからね。
0416デフォルトの名無しさん
2005/06/29(水) 13:28:14[2] 問題文:
・整数n,mを引数にとり、返り値としてnとmの最大公約数をかえす関数
int gcd(int n, int m) を作成しなさい。
・次に関数 gcd() を利用して整数n,mを引数として与えたときに、
返り値としてnとmの最小公倍数を返り値として返す関数 int lcm(int n,int m) を作成しなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/5まで
[5] その他の制限:関数の扱いまで習いました。
自分で作ろうとしてもどうしても上手くいかないので、
どなたかご教授お願いします。
0417デフォルトの名無しさん
2005/06/29(水) 13:37:02>406はちっとも完璧ではない。関数名が悪すぎる。
関数fact()はnCrを求めているじゃないか。
0418デフォルトの名無しさん
2005/06/29(水) 13:47:42int gcd(int m,int n)
{
int r;
do {
r = m % n;
m = n;
n = r;
}while(r!=0);
return m;
}
最小公倍数ぐらいは最小公倍数がわかればできるだろう
0419デフォルトの名無しさん
2005/06/29(水) 13:48:00int gcd(int n,int m){int r;if(n<0)n*=-1;if(m<0)m*=-1;while(n){r=n%m;n=m;m=r;}return n;}
int lcm(int n,int m){int l,s,i;if(n<0)n*=-1;if(m<0)m*=-1;l=(n>m?n:m);s=(n<=m?n:m);for(i=1;i<l;i++)if(s*i%l==0)return s*i;return n*m;}
0420410
2005/06/29(水) 13:54:05そうですね。完璧という言葉は語弊がありました。
言い忘れてましたが、三角形の表示が難しかったら、
1 1
1 2 1
1 3 3 1
1 4 6 4 1
という表示の仕方でもいいとのことだったので、
406のプログラムでコンパイルしたらちゃんと上のように表示されたので、
いいのかと思ってましたが、何か問題あるんですかねぇ?
0421デフォルトの名無しさん
2005/06/29(水) 13:54:27コード自体は簡単になるわけだが。
0422デフォルトの名無しさん
2005/06/29(水) 13:56:57[2] 問題文: 実数値をキーボードから入力し、小数点以下を四捨五入した値を表示する。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C ++
[4] 期限:本日22:00まで
[5] その他の制限:特に無し
どなたかご教授お願いします。
0423406
2005/06/29(水) 14:14:32factって階乗(factorial)って意味だったのね。今知ったよ。
ということで修正。
#include <stdio.h>
int fact( int n )
{
int d, i;
for ( d = 1, i = 2; i <= n; i++ ) d *= i;
return d;
}
int ncr( int n, int r )
{
return ( fact( n ) / fact( n - r ) / fact( r ) );
}
int main( void )
{
int i, j;
for ( i = 1; i <= 12; i++ ) {
for ( j = 0; j <= i; j++ ) {
printf( "%d ", ncr( i, j ) );
}
printf( "\n" );
}
return 0;
}
三角形にするのはできなくないけど、自分でやってみてね。
0424デフォルトの名無しさん
2005/06/29(水) 14:14:55#include <iomanip>
int main()
{
double x;
std::cin >> x;
std::cout << std::fixed << std::setprecision( 0 ) << x << std::endl;
return 0;
}
0425デフォルトの名無しさん
2005/06/29(水) 14:15:540426417
2005/06/29(水) 14:18:29質問の意図がわからない。
>404のような綺麗な三角形にするにはどうすればいいかってこと?
それなら、各段に左側の空白を補えばいいのだが。
#ヒント:最終段は0、その上の段は1、以下同様に。
0427デフォルトの名無しさん
2005/06/29(水) 14:21:290428デフォルトの名無しさん
2005/06/29(水) 14:23:54[2] 問題文:ファイルからデータを配列に読み込んでおき、キーボードから単語が入力されたとき、それに最も近い単語を配列の中から探して出力するプログラム
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C ++
[4] 期限:7月4日まで
[5] その他の制限:特に無し
どなたかご教授お願いします。
0429デフォルトの名無しさん
2005/06/29(水) 14:26:36[1]アルゴリズム演習
[3]visualstudio2003 c++
[4]できるだけ早くお願いいたします。
[2]
1から100までの乱数を用いて1000個のデータを生成して
配列に格納する。その後、1個数字を入力させ、その数字が生成
されたデータ内にあるかどうかを確認せよ。データがあった場合
は、何番目にあったかを表示し、無かった場合はそのことを表示
する。
0430410
2005/06/29(水) 14:34:08ご丁寧に修正までしていただいてありがとうございます。
助かりました
>>426
意味不明な文章ですいません。そういうことです。
ヒントありがとうございます。頑張って作ってみます。
0431デフォルトの名無しさん
2005/06/29(水) 14:41:25#include <iostream>
int main()
{
using namespace std;
srand( time( 0 ) );
int arr[ 1000 ];
for ( int i = 0; i < 1000; i ++ )
arr[ i ] = rand() % 100 + 1;
int input;
cout << "数字をいれやがれ: ";
cin >> input;
bool found = false;
for ( int i = 0; i < 1000; i ++ )
if ( arr[ i ] == input )
{
cout << i << "番目にありますが何か?" << endl;
found = true;
break;
}
if ( ! found )
cout << "残念。" << endl;
return 0;
}
// BCCだと#include <iostream>だけでいけたが、足りなかったら適宜includeしてくれ。
0432デフォルトの名無しさん
2005/06/29(水) 14:48:40すばやい回答ありがとうございました。
ビルドをかけると6行目に引数依存の照合をしてもみつかりせんと出ます。
なぜでしょう??
0433デフォルトの名無しさん
2005/06/29(水) 14:55:27timeの行です。
0434デフォルトの名無しさん
2005/06/29(水) 14:56:27#include <time.h>
0435デフォルトの名無しさん
2005/06/29(水) 14:57:02つーか、breakあると最初のやつしか表示されないけどいいのだろうか。
0436278
2005/06/29(水) 14:57:45すいません、278ですがどなたかお願いできないでしょうか?
期日が迫っています。だれか助けてください。
0437デフォルトの名無しさん
2005/06/29(水) 15:04:34・ファイルの形式?特殊ならデータが格納されているフォーマットを
例示してくれなきゃ駄目じゃん。
・データの配列って型は?(cha*の配列の予感)
・最も近いって辞書的に近いってこと?近い遠いを定義してみて。
>>436
テンプレ嫁。
あと3X3の行列のデータを読めってことか?
それとも任意の行列のデータをめってことか?
0438デフォルトの名無しさん
2005/06/29(水) 15:04:40できましたーーー!!!どうもありがとうございました。
題意からbreakはきしておきます。
ただ高度すぎて先生にばれそうw
0439デフォルトの名無しさん
2005/06/29(水) 15:05:020441デフォルトの名無しさん
2005/06/29(水) 15:06:11[2]問題文:表計算プログラム。各セルを構造体で表現し、表全体はリストによってセルを結合。セルの構造体は右および下のセルを示すポインタ変数2つと、セル値として保持する文字列へのポインタ変数1つを持つものとし、動的にメモリ領域を割り当てる。
[3]環境
[3.1]OS:Windows
[3.2]コンパイラ(バージョン)
[3.3]言語:C
[4]期限:7月1日(金)
[5]その他の制限:・プログラムを起動すると、初期状態として、適当な行数x列数の表を生成する。この際、各セルの値は0とする。
・式入力では、多項間の四則演算および累乗、多重括弧に対応(逆ポーランド記法はなし)。
・コマンドによって、表の表示、行および列の追加、挿入、移動、削除、表の保存復元、ヘルプ、終了の各操作を行うものとする。
0442宿題お願いします
2005/06/29(水) 15:19:542n乗≡2(mod n)
{問題}2n乗ー2がnで割り切れるかどうかチェックします。
これが成り立つ時、素数表を参照して、
素数で無いものを選び出すプログラムです。C++です宜しくお願いします。
0443デフォルトの名無しさん
2005/06/29(水) 15:45:33http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/630.txt
ファイルからの読み込みはテキトー。
データファイル名はdata.txt。単語が空白とか改行とかで区切られてれば問題ないと思う。
配列はvector使った。
文字列の類似性を見積もるアルゴリズムはパクりなのでバレないように。
0444デフォルトの名無しさん
2005/06/29(水) 15:47:05データが「和食 中華 フレンチ」とかで、キーボードから「コロッケパン」を
入力すると「フレンチ」を出力するようなプログラムを作るってこと?
# 「ヤキソバパン」だと「和食」と「中華」どっちになるのかな?
0445デフォルトの名無しさん
2005/06/29(水) 15:51:58大掛かりな宿題だなw
0446デフォルトの名無しさん
2005/06/29(水) 15:57:342n乗って何だ?
2のn乗かな?
0447デフォルトの名無しさん
2005/06/29(水) 16:03:320448デフォルトの名無しさん
2005/06/29(水) 16:19:080449デフォルトの名無しさん
2005/06/29(水) 16:25:26なんですか?あなたは。
わからない人はけっこうですと言ってるだけですよ?
0450デフォルトの名無しさん
2005/06/29(水) 16:40:500451デフォルトの名無しさん
2005/06/29(水) 16:40:54素行が気に入らないから、皆答えなくて良い。
0452442
2005/06/29(水) 16:41:290453デフォルトの名無しさん
2005/06/29(水) 16:43:31荒らしウザイ
0454デフォルトの名無しさん
2005/06/29(水) 16:43:490455442
2005/06/29(水) 16:47:530456デフォルトの名無しさん
2005/06/29(水) 16:53:03もし>>442以外の書き込みが全て本人以外だったとしたら不運だったな。
ま、テンプレ読んでない時点でスルーされても文句言えないが。
0457デフォルトの名無しさん
2005/06/29(水) 16:53:47># 「ヤキソバパン」だと「和食」と「中華」どっちになるのかな?
何故そう言う発想になるのだろう。
「パン」の段階で和食でも中華でもない気がするのだが。
#つーか、「洋食」じゃなくて「フレンチ」かい。
0458デフォルトの名無しさん
2005/06/29(水) 16:55:460459デフォルトの名無しさん
2005/06/29(水) 16:56:130460デフォルトの名無しさん
2005/06/29(水) 16:56:350461宿題お願いします
2005/06/29(水) 17:04:342のn乗です。2n乗ー2がnで割り切れるかどうかチェックするプログラムです。
お願いできませんか?
0462デフォルトの名無しさん
2005/06/29(水) 17:09:45問題文 428 を読んでないな。「分類する」んじゃなくて、「近い」単語を表示するんだ。
0463デフォルトの名無しさん
2005/06/29(水) 17:15:30この際トリップ付けて1のフォーマットに沿った質問をした方が回答得やすいかもよ。
あとunsigned int(4byte),の範囲だと30のケースを判定して終わりだよね。
0464デフォルトの名無しさん
2005/06/29(水) 17:19:53距離空間を定義すればいいのかな。
文字列s1, s2の距離は
sqrt((s1[0] - s2[0])^2 + (s1[1] - s2[1]^2 + ..... (s1[N] - s2[N])^2)
とする。
ただしN = max(strlen(s1)-1, strlen(s2)-1)
strlen(s2) == Mのとき、
s2[M] ... s2[N]の値は0とする
みたいな感じで。
0465デフォルトの名無しさん
2005/06/29(水) 17:27:242^2 から 2^31 までチェックしたところそのようなものは一つもなかったから、
プログラムは次のようになるのかな?
#include <iostream>
int main(void){
std::cout << "31 以下の整数でそのような条件を満たすものはありません"
<< std::endl;
}
0466宿題お願いします
2005/06/29(水) 17:30:00[1] 授業単元: プログラム演習
[2] 問題文(含コード&リンク): 2のn乗ー2の答えがnで割り切れるかどうかチェックするプログラム
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):Microsoft Visual c++というものです。
[3.3] 言語:C++
[4] 期限:2005年6月30日09:00まで
[5] その他の制限:C++に関しての知識はほとんどありません。本を読んでもいまいち理解できないので
お願いしました。無理言ってすいません。
0467>>466
2005/06/29(水) 17:46:16int main(void)
{
unsigned int num = 4,i;
for(i=2;i<32;i++,num <<= 1){
const unsigned int check = num - 2;
if(check % i) continue;
printf("%dは割り切れたぞ\n",i);
}
return 0;
}
0468デフォルトの名無しさん
2005/06/29(水) 17:51:10n=2の場合、2^2-2=2 は 2 で割り切れる
n=3の場合、2^3-2=6 は 3 で割り切れる
n=5の場合、2^5-2=30 は 5 で割り切れる
n=7の場合、2^7-2=126 は 7 で割り切れる
n=11の場合、2^11-2=2046 は 11 で割り切れる
n=13の場合、2^13-2=8190 は 13 で割り切れる
n=17の場合、2^17-2=131070 は 17 で割り切れる
不思議と n は素数ばかり並ぶな。
これって数学的に何か秘密があるんじゃないの?
数学得意な人、解説キボンヌ。
0469デフォルトの名無しさん
2005/06/29(水) 17:54:212^n-2 = 2(2^(n-1) - 1)
0470宿題お願いします
2005/06/29(水) 17:56:080471デフォルトの名無しさん
2005/06/29(水) 17:57:51>>443
0472デフォルトの名無しさん
2005/06/29(水) 18:02:11ttp://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%AB%E3%82%BB%E3%83%B3%E3%83%8C%E6%95%B0
0473デフォルトの名無しさん
2005/06/29(水) 18:11:12http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/632.txt
0474デフォルトの名無しさん
2005/06/29(水) 19:48:130475デフォルトの名無しさん
2005/06/29(水) 21:07:270476デフォルトの名無しさん
2005/06/29(水) 21:09:560477デフォルトの名無しさん
2005/06/29(水) 21:18:12[2] 問題文:三角形の3頂点(x1,y1),(x2,y2),(x3,y3)を読み込んで3つの角度θ1,θ2,θ3,をdeg単位(°)で計算して印字するプログラムを作成せよ。
また、実数型変数θ1,θ2,θ3へのポインタ変数と、変数方変数x1,y1,x2,y2,x3,y3を引数とする関数を作成しmain関数では同関数として呼び出すようにする。
各変数をポインタを介して関数で使用する。各角度は余弦定理 a^2=b^2+c^2-2bc*cos(A)をする。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):cc
[3.3] 言語:C
[4] 期限:なるべく早めで
みなさん、お願いします。
0478デフォルトの名無しさん
2005/06/29(水) 22:04:39#include <math.h>
#define sqr(x) ((x)*(x))
#define sqr_edge_len(x1,y1,x2,y2) (sqr((x1)-(x2))+sqr((y1)-(y2)))
#ifndef M_PI
#define M_PI 3.1415926536
#endif
int calc_angles( double *p_theta1, double *p_theta2, double *p_theta3,
double x1, double y1, double x2, double y2, double x3, double y3 )
{
double sqr_a = sqr_edge_len(x1, y1, x2, y2);
double sqr_b = sqr_edge_len(x2, y2, x3, y3);
double sqr_c = sqr_edge_len(x3, y3, x1, y1);
if( sqr_a * sqr_b * sqr_c == 0 ) return -1;
*p_theta1 = 180.0 * acos( (sqr_b + sqr_c - sqr_a) / (2 * sqrt( sqr_b * sqr_c )) ) / M_PI;
*p_theta2 = 180.0 * acos( (sqr_c + sqr_a - sqr_b) / (2 * sqrt( sqr_c * sqr_a )) ) / M_PI;
*p_theta3 = 180.0 * acos( (sqr_a + sqr_b - sqr_c) / (2 * sqrt( sqr_a * sqr_b )) ) / M_PI;
return 0;
}
0479デフォルトの名無しさん
2005/06/29(水) 22:31:56#include <stdio.h>
#include <string.h>
int main() {
for (int n = 2; n < 32768; n++) {
unsigned b[1024];
memset(b, 0, sizeof b);
b[n / 32] |= 1 << n % 32;
int i = 0, j = 0;
bool f = b[0] < 2;
b[0] -= 2;
if (f) do {f = !b[++i]; b[i]--;} while (f);
for (i = n / 32; i >= 0; j = unsigned(((_int64(j) << 32) + b[i--]) % n));
if (!j) printf("%d\n", n);
}
return 0;
}
0480デフォルトの名無しさん
2005/06/29(水) 22:33:43さきこされたようですが。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/634.txt
0481デフォルトの名無しさん
2005/06/29(水) 22:47:17[2]問題文:表計算プログラム。各セルを構造体で表現し、表全体はリストによってセルを結合。セルの構造体は右および下のセルを示すポインタ変数2つと、セル値として保持する文字列へのポインタ変数1つを持つものとし、動的にメモリ領域を割り当てる、というもの。
[3]環境
[3.1]OS:Windows
[3.2]コンパイラ(バージョン)
[3.3]言語:C
[4]期限:7月1日(金) できれば早めにお願いします
[5]その他の制限:・プログラムを起動すると、初期状態として、適当な行数x列数の表を生成する。この際、各セルの値は0とする。
・式入力では、多項間の四則演算および累乗、多重括弧に対応(逆ポーランド記法はなし)。
・コマンドによって、表の表示、行および列の追加、挿入、移動、削除、表の保存復元、ヘルプ、終了の各操作を行うものとする。
というものです。できた部分部分でもUPしていただけたら幸いです。
0483デフォルトの名無しさん
2005/06/29(水) 23:01:11[2] 問題文(含コード&リンク):
幾つかの数値が入ったファイルを呼び出して、
データの最大値・最小値・平均値・標準偏差値を取り出すプログラムを
関数へのポインタ変数の受け渡し(アドレス渡し?)を利用して作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:2005年6月30日
[5] その他の制限:ポインタのあたりまで習ってます。
0484483
2005/06/29(水) 23:04:09#include <stdio.h>
#include <math.h>
main()
{
int x[100],y=0,n=0,i=0;
int max=0,min=100;
double sum=0,ave,var,sd;
FILE *fp;
fp=fopen("seiseki.txt","r");
while (fscanf(fp,"%d",&x[i]) != EOF) {
y+=x[i];
max=(max>x[i])?max:x[i];
min=(min<x[i])?min:x[i];
n++;
i++;
}
fclose(fp);
0485483
2005/06/29(水) 23:04:31ave=y/n;
for(i=0;i<n;i++)
{
sum=sum+(x[i]-ave)*(x[i]-ave);
}
var=sum/n;
sd= sqrt(var);
printf("最大値 = %d\n",max);
printf("最小値 = %d\n",min);
printf("平均値 = %f\n",ave);
printf("標準偏差値 = %f\n",sd);
return 0;
}
0486デフォルトの名無しさん
2005/06/29(水) 23:06:06思いっきりアドレス渡ししてるじゃん
0487デフォルトの名無しさん
2005/06/29(水) 23:06:53[2] 問題文
0度から360度まで1度刻みの角度に対する三角関数(sin, cos, tan)を計算
し、画面に表示するプログラムをかけ
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:7/1まで
[5] その他の制限: 角度からradへの変換を行う関数を作成、使用すること
お願いします
0488デフォルトの名無しさん
2005/06/29(水) 23:17:39数学的事情により、90度の倍数ではtanがおかしくなる。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926535897932384626433832795
double degree(double x){return x / 180 * PI;}
int main(void) {
int i;
for (i = 0; i <= 360; i++)
printf("sin%3ddegree=%1.5f\tcos%3ddegree=%1.5f\ttan%3ddegree=%1.5f\n", i, sin(degree(i)), i, cos(degree(i)), i, tan(degree(i)));
return 0;
}
0489デフォルトの名無しさん
2005/06/29(水) 23:22:05どうも。
角度をラジアンに変換する式がわかんないんですが・・・
0490デフォルトの名無しさん
2005/06/29(水) 23:22:05>>265
>>383
同じスレのログくらい読め
0491デフォルトの名無しさん
2005/06/29(水) 23:24:34高校数学だね
radian = (degree / 180) * pi
0492デフォルトの名無しさん
2005/06/29(水) 23:27:08わかりました。ありがとうございます!
0493デフォルトの名無しさん
2005/06/29(水) 23:33:13おかしくなる=発散するってことね
0494デフォルトの名無しさん
2005/06/29(水) 23:33:41[2] 問題文:n個の文字を読み込んだ後、文字をアルファベット順に並び替えるプログラムを作成しなさい。
1、n個の文字を読み込む
2、文字をアルファベット順に並び替える
3、表示する
以上3つの手続きを関数として作成しmain関数でこれらの関数を呼び出すようにする。
アルファベット順は大文字と小文字がある場合は小文字を先に出す。
例
BasC ⇒aBCs
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):cc
[3.3] 言語:C言語
[4] 期限:早ければ早いほどいいです
0495デフォルトの名無しさん
2005/06/29(水) 23:34:510496デフォルトの名無しさん
2005/06/29(水) 23:35:16nはどこで決める?ソース中?入力させる?
0497デフォルトの名無しさん
2005/06/29(水) 23:51:06#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main(void) {
unsigned int n;
int i, j, len;
char* str, temp;
printf("n?:"); scanf("%u", &n);
getchar();
str = (char*)malloc(n + 2);
fgets(str, n + 2, stdin);
str[len = strlen(str) - 1] = '\0';
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++)
if (tolower(str[j]) == str[j + 1] || tolower(str[j + 1]) < tolower(str[j]))
{
temp = str[j];
str[j] =str[j + 1];
str[j + 1] = temp;
}
printf(str);
free(str);
}
0498デフォルトの名無しさん
2005/06/29(水) 23:51:41#include <stdio.h>
#include <stdlib.h>
#define tolower(c) (('A'<=(c) && (c)<='Z') ? ((c)-'A'+'a') : (c))
int cmp_alph(const unsigned char *c1, const unsigned char *c2)
{
if(tolower(*c1) != tolower(*c2)) return(tolower(*c1) - tolower(*c2));
else return((*c2) - (*c1));
}
int main( void )
{
unsigned char string[] = "awerAlcA";
printf("%s\n", string);
qsort( string, sizeof( string ) - 1, sizeof( unsigned char ), (int(*)(const void *, const void *))cmp_alph);
printf("%s\n", string);
return 0;
}
0499デフォルトの名無しさん
2005/06/29(水) 23:52:27#include <stdio.h>
#include <string.h>
int read_nchars(char *chars, int n) {
return fgets(chars, n, stdin) ? strlen(chars): 0;
}
char *sort(char *chars, int n) {
int count[256], i;
const char *p;
memset(count, 0, sizeof count);
for (i = 0; i < n; i++) count[chars[i] & 255]++;
for (p = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ", n = 0; *p; p++)
for (i = 0; i < count[*p]; i++) chars[n++] = *p;
chars[n] = 0;
return chars;
}
void display(const char *chars) {
printf("%s\n", chars);
}
int main() {
char chars[256];
display(sort(chars, read_nchars(chars, sizeof chars)));
return 0;
}
0500デフォルトの名無しさん
2005/06/29(水) 23:53:42ケコーン
0502デフォルトの名無しさん
2005/06/29(水) 23:59:33自分は物理学科なんですけど、正直プログラムやってるだけの余裕はありません。
二次元配列の簡単な問題を3つやってもらえたら、6000円を銀行振り込みします。
やってくれる人いますでしょうか。
0503デフォルトの名無しさん
2005/06/30(木) 00:06:00それはまずここに問題を書いてからだ。タダでやってくれる物好きが
いるかも知れん。
0504デフォルトの名無しさん
2005/06/30(木) 00:12:02たった6000?
一二時間でできないと割に合わないな
0505デフォルトの名無しさん
2005/06/30(木) 00:33:24[3] 環境
[3.1] OS:linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:7月4日
[5] その他の制限:初歩的な配列まで
一万円にします。どうでしょうか。
ファイルから読み込ませるというのがやっかいな予感です。
担当教官に聞いたところ、できなければ無視してもよいと言われました。
ただその場合は、学生数、学生の番号と名前、それぞれの科目の点数を、
プログラムの中で指定しなければならない(5人ほど書く)ので、
できの悪いプログラムだと言われましが、一応問題はないみたいです。
できる方で御願いします。
0506デフォルトの名無しさん
2005/06/30(木) 00:34:46動作の確認は学校でなければできないので、7時に私がプログラムを学校のPCに打ち込みます。
動作を確認しだい、メールアドレスを載せますので、お金のやり取りはそっちでしましょう。
0507502 ◆Avm1fqtITk
2005/06/30(木) 00:35:430508デフォルトの名無しさん
2005/06/30(木) 00:39:03[2] 問題文(含コード&リンク):
級数 a(1)=1, a(n)=a(n-1)+n (nは2以上)
の値を n=20 まで、1行に5個ずつ出力する
プログラムを作成しなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年7月01日まで
[5] その他の制限: continue まで習っています。
この問題は去年の期末試験だそうです。
よろしくお願いします。
0509デフォルトの名無しさん
2005/06/30(木) 00:51:210510デフォルトの名無しさん
2005/06/30(木) 00:51:52その問題、過去にあったような気がするよ。
>>508
#include <stdio.h>
int recursiveFunc(int n)
{
if (n == 1)return 1;
return recursiveFunc(n - 1) + n;
}
int main(void)
{
int i;
for (i = 1; i < 20; i++) {
printf("%4d%c", recursiveFunc(i), " \n"[((i%5) == 0)]);
}
return 0;
}
0511510
2005/06/30(木) 00:53:17誤:for (i = 1; i < 20; i++) {
正:for (i = 1; i <= 20; i++) {
0512デフォルトの名無しさん
2005/06/30(木) 00:54:13#include<stdio.h>
int main(void)
{
int i,n,a[20];
a[0]=1;
for(i=0;i<20;i++){
if(i==0){
printf("a[%2d]=%3d ",i+1,a[i]);
}else{
a[i]=a[i-1]+i+1;
printf("a[%2d]=%3d ",i+1,a[i]);
}
if(i!=0&&(i+1)%5==0){
printf("\n");
}
}
return 0;
}
0513デフォルトの名無しさん
2005/06/30(木) 00:55:16[2] 問題文(含コード&リンク):
2つの整数値を書き込んだテキストファイルを作成するプログラム
書き出すファイル名をキーボードから指定でき、既に存在するファイル名であれば、追加書き込みするように。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年6月30日10:00まで
[5] その他の制限:FILEまで習ってます
0514デフォルトの名無しさん
2005/06/30(木) 00:56:03[2] 問題文
フィボナッチ数列
Fn=F(n-1)+F(n-2) (n>=2)
F(0)=F(1)=1
このとき
(a)再帰的関数を用いた方法
(b)再帰的関数を用いない方法
この二通りでプログラミングを行いF(0)〜F(20)間での値を表示せよ
また、どちらが実行時間が短いか、理論的に考察せよ。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年07月04日17:00まで
[5] その他の制限:なし
お金もスキルもありませんが、だれか助けてください。
0515デフォルトの名無しさん
2005/06/30(木) 00:56:07「任意の数のクラス」の学生?それとも任意の数の「クラスの学生」?
0516デフォルトの名無しさん
2005/06/30(木) 00:56:43ドン引き。
空気嫁。
0517デフォルトの名無しさん
2005/06/30(木) 00:58:37おま・・・>510と>512嫁よ。
ほとんど同じ問題だぞ。
0518デフォルトの名無しさん
2005/06/30(木) 01:00:08この問題だったら、普通は構造体の配列になるはずだが、
それを2次元配列でやれってのは難しくね?
それに、標準偏差は科目別に求めるのに、偏差値は
合計点から求めるのか?
0519デフォルトの名無しさん
2005/06/30(木) 01:01:57プログラムは去年やったのですが、語学が昔から苦手で
好きになれませんでした。
でも先生がこの宿題やれっていうし、訳ありの編入学なんで友達もいません。
どうか助けてください。
0520デフォルトの名無しさん
2005/06/30(木) 01:04:100521デフォルトの名無しさん
2005/06/30(木) 01:05:040522デフォルトの名無しさん
2005/06/30(木) 01:26:15http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/635.txt
0523デフォルトの名無しさん
2005/06/30(木) 01:27:09[2] 問題文(含コード&リンク): 英語辞書にあるスペルチェッカーを作成せよ
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:6月30日まで
[5] お願いします
0524デフォルトの名無しさん
2005/06/30(木) 01:27:12#include <stdio.h>
int fib_recursion(int n) {
return n > 1 ? fib_recursion(n - 1) + fib_recursion(n - 2) : 1;
}
int fib_no_recursion(int n) {
int old1 = 0, old2, result = 1;
while (n--) {
old2 = old1;
old1 = result;
result = old1 + old2;
}
return result;
}
int main(void) {
int i;
printf("(a)再帰的関数を用いた方法\n");
for (i = 0; i <= 20; i++) printf("F(%2d)=%5d\n", i, fib_recursion(i));
printf("(b)再帰的関数を用いない方法\n");
for (i = 0; i <= 20; i++) printf("F(%2d)=%5d\n", i, fib_no_recursion(i));
return 0;
}
【考察】実行時間は(b)が早い。
【理由】
1 (a)は関数の呼び出し回数が多い。関数の呼び出しにはそれなりの
時間がかかる。
2 (a)は何度も同じ計算をしている。
(2の例)
F(4)=F(3)+F(2)=(F(2)+F(1))+(F(1)+F(0))=((F(1)+F(0))+F(1))+(F(1)+F(0))
となっていて無駄が多い。
0525523
2005/06/30(木) 01:29:12main()
{
char *moji[3] = {メbananaモ,モappleモ,モbikeモ};
char ji[10];
int I,a,b;
printf(メ入力:モ);
scanf(メ%sモ,ji);
for(i=0;i<3;i++)
{
a=0;
b=0;
while(moji[i] !=`¥0`)
{
if(*moji[i]=ji[a])
{
b++;
}
a++;
moji[i]++;
}
0526523続き
2005/06/30(木) 01:29:44{
printf(メ正解モ);
break;
}
}
}
if(I==3)
{
printf(メスペル間違い¥nモ);
}
}
これでエラーは出ないのですが、どう打ち込んでも正解になります。行き詰まりました。
0527デフォルトの名無しさん
2005/06/30(木) 01:31:32//Fn=F(n-1)+F(n-2) (n>=2)
//F(0)=F(1)=1
double F(int n){ return (n<2)?1:(F(n-1)+F(n-2)); }
0528502 ◆Avm1fqtITk
2005/06/30(木) 01:32:06- (問題文)
というのが5行ありますが、プログラムとして出すのは、
2行目、3行目、そして5行目(4行目のを使用)、です。
>>515
任意の数の「クラスの学生」、です。
クラスは1つで、学生の数は任意です。
>>518
構造体でやるのが普通とのことですが、
教官の話では、とにかく答えが出せればよいということでした。
二次元配列に拘らずとも、やりやすい方でよいとのことです。
そうです、科目別の偏差値(2行目問題)、三科目の合計の偏差値(5行目問題)を、
それぞれ求めます。
0529デフォルトの名無しさん
2005/06/30(木) 01:33:39化けとるぞ
それと、題意が良くわからんが、「辞書ファイル」みたいなのがあって
(たとえば/usr/share/dict/wordsとか)、それ使ってスペルチェックしろって
ことじゃないのか?
0530デフォルトの名無しさん
2005/06/30(木) 01:40:32神様ありがとうございました。
考察までつけて頂いて、
このスレの人達は伊達の極みですな。
0531修正してやる
2005/06/30(木) 01:58:45double F(int n, double *dst){
if(n<2) return dst[0]=dst[1]=1;
if(dst[n-2]==0) dst[n-2]=F(n-2,dst);
if(dst[n-1]==0) dst[n-1]=F(n-1,dst);
return dst[n]=dst[n-2]+dst[n-1];
}
int main(void)
{
double dst[20+1]={0};
int n;
for(n=0; n<=20; ++n)
printf("F(%2d)=%.0lf\n", n ,F(n,dst));
return 0;
}
0532デフォルトの名無しさん
2005/06/30(木) 02:10:16表計算か…。俺も何年か前に出されたがさっぱりわからんくて諦めたやつだ。
俺もちょっと興味あるな。誰か教えてくれ。
0533デフォルトの名無しさん
2005/06/30(木) 02:37:23一応辞書ファイルを作ってもやってみたのですが、結局上のような方法でやりました
実験的にとりあえず単語を3つだけにして
0534デフォルトの名無しさん
2005/06/30(木) 02:58:54#include <stdio.h>
void FileMakes(char fname[])
{
FILE *fp;
fp = fopen(fname , "a+");
fprintf (fp, "%d %d\n", 1, 2);
fclose(fp);
}
int main(int argc, char *argv[])
{
if ( argc <= 1 )
{
printf ( "USAGE : %s <filename>\n",argv[0]);
}
else
{
FileMakes(argv[1]);
}
return 0;
}
0535デフォルトの名無しさん
2005/06/30(木) 03:00:34来年の7/1だったら誰かが作っているかも試練。
まぁネタでしょ。
0536デフォルトの名無しさん
2005/06/30(木) 03:10:41来年じゃなく来月だろ
0537デフォルトの名無しさん
2005/06/30(木) 03:37:48no newline at end of file
ってでて走りません
0538デフォルトの名無しさん
2005/06/30(木) 03:42:52ちゃんとメッセージ出てるんだから、読んで修正しようよ。
0539デフォルトの名無しさん
2005/06/30(木) 04:35:39[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
対CPU型のオセロを作成
CPUに58手目からの残り3手を先読みさせ
最善手を導き出す関数を作る
[3] 環境
[3.1] OS:WindowssXP
[3.2] Borland C++:
[3.3] 言語:C
[4] 期限:7月3日PM:2:00まで
[5] その他の制限:
とりあえず対CPU型のオセロは完成しました。
しかし"先読みの関数"の作成がよくわかりません。
Cの勉強初めて1ヶ月足らずです。よろしくお願いします
0540デフォルトの名無しさん
2005/06/30(木) 06:41:19関数の仕様がわからない。
ソース隠したいかも知れんが、引数くらい出してもいいと思うよ。
そうすればだれかやってくれるさ。多分。
0541デフォルトの名無しさん
2005/06/30(木) 06:52:22Cの勉強始めて1ヶ月足らずの状態でそんな宿題出す奴いるのかよ?
何となくフリーのBCCで遊んでる趣味プログラマな希ガス。
それとも別の言語でアルゴリズムやってて、1ヶ月前にCに突入したのかな?
0542デフォルトの名無しさん
2005/06/30(木) 07:03:52先読みって言ってもマス目が8x8だとすると58手目の時点では残りのマスは
3つしかないから、残り3手は6通りしかないし、全通り網羅すればいいんでないの。
0543デフォルトの名無しさん
2005/06/30(木) 07:04:30[2]問題文:表計算プログラム。各セルを構造体で表現し、表全体はリストによってセルを結合。セルの構造体は右および下のセルを示すポインタ変数2つと、セル値として保持する文字列へのポインタ変数1つを持つものとし、動的にメモリ領域を割り当てる、というもの。
[3]環境
[3.1]OS:Windows
[3.2]コンパイラ(バージョン)
[3.3]言語:C
[4]期限:7月1日(金) できれば早めにお願いします
[5]その他の制限:・プログラムを起動すると、初期状態として、適当な行数x列数の表を生成する。この際、各セルの値は0とする。
・式入力では、多項間の四則演算および累乗、多重括弧に対応(逆ポーランド記法はなし)。
・コマンドによって、表の表示、行および列の追加、挿入、移動、削除、表の保存復元、ヘルプ、終了の各操作を行うものとする。
というものです。できた部分部分でもUPしていただけたら幸いです。
0544デフォルトの名無しさん
2005/06/30(木) 07:37:460545デフォルトの名無しさん
2005/06/30(木) 07:49:32int test( n )
{
int nn , aa , x;
nn = n ;
aa = 2 ;
x = 1 ;
while( 0 < nn ){
if( ( nn & 1 ) == 0 ){
}else{
x = ( x * aa ) % n ;
};
aa = ( aa * aa ) % n ;
nn >>= 1 ;
};
return 2 == x ;
};
0546デフォルトの名無しさん
2005/06/30(木) 08:08:37何度も同じの書くなって。
必死な思いでいるのもわかるけど、一回書き込んで誰も解いてくれなかったら、それはそれで仕方ない。
宿題ってのは本来自分でやるものだからな。
// このスレで宿題解いてる奴ってのは、たいていボランティア精神ではなく、
// 「自分が楽しいから」「自分の勉強になるから」「自分自身の小手試し」「暇つぶし」
// などの理由なだけなので甘えないように。
諦め切れなくても、全文書きうつすんじゃなくてせめて
「>>441ですけど、できた部分部分でもUPしていただけたら幸いです。」
の一言だけに留めておいてくれ。
これだけでも、動き出す奴は動き出す。
0547デフォルトの名無しさん
2005/06/30(木) 09:04:45早々な回答ありがとうございました
0548デフォルトの名無しさん
2005/06/30(木) 09:12:28プログラマは統計的にギリギリになるまでやらない傾向が強い。
0550デフォルトの名無しさん
2005/06/30(木) 09:53:52[2] 問題文(含コード&リンク): ポーカーのプログラム
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):VC
[3.3] 言語:C++
[4] 期限:7月15日
[5] その他の制限:どこまで習っているか、インクリメントデクリメント演算子まで
とりあえずカードを配って表示させるところまではできたのですが、
その先のカードを2回変えることができるようにする部分とカードの判定の部分がよくわかりません。
ヒントでも構いませんのでどうかよろしくお願いします。
0551デフォルトの名無しさん
2005/06/30(木) 10:05:03インクリメントデクリメント演算子だけでよく
"カードを配って表示させるところまではできた"な
君ほどの素質があればきっと克服できるだろう。
Good Luck !
0552デフォルトの名無しさん
2005/06/30(木) 10:19:31ゲーム理論の2人ゼロSUMゲームのNash均衡を求めるプログラムを教えてください。
2*2の正方行列で均衡点を求めたいんですが、
(5,5)(0,8)
(8,0)(2,2)の行列です。
均衡点は(2,2)です。パレート最適は(5,5)です。
お願いします!!
アルゴリズムとしては
使用する変数の宣言
↓
利得行列をデータで与える。
↓
p1_max[i],pi[j]を計算する
p2_max[i],pj[i]を計算する
↓
Nash均衡の判定
↓
i=pi[j] →No
↓Yes
j=pj[i] →No
↓Yes
(i,j)はNash均衡としPrintする。
です。お願いしまっす。
0553デフォルトの名無しさん
2005/06/30(木) 11:45:030554デフォルトの名無しさん
2005/06/30(木) 11:49:30ありがとうございました。助かりました。
>>538
わかりました。
0555デフォルトの名無しさん
2005/06/30(木) 12:22:01[2] 問題文(含コード&リンク):
ユークリッドの互除法で最大公約数を求める場合の再帰的関数呼び出しによる
プログラムを書け。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:7/1まで
[5] その他の制限:
これどなたかお願いします。
0556デフォルトの名無しさん
2005/06/30(木) 12:31:32#include <stdio.h>
int gcd(int a, int b)
{
if(b == 0) return a;
return gcd(b, a % b);
}
int main(void)
{
int a, b;
printf("a=?"); scanf("%d", &a);
printf("b=?"); scanf("%d", &b);
printf("最大公約数GCD(%d,%d)=%d\n", a, b, gcd(a, b));
return 0;
}
0557デフォルトの名無しさん
2005/06/30(木) 13:17:09文字列 s2 の中の任意の文字に等しい文字を s1 から除去して,
その結果を標準出力に出力するようなプログラムを書け。)
よろしくお願いします。
0558デフォルトの名無しさん
2005/06/30(木) 14:19:47ありがとうございました
0559デフォルトの名無しさん
2005/06/30(木) 14:22:21質問ですが、
typedef struct
{
int a;
std::vector<INFOTABLE> info;
}INFO;
typedef struct
{
std::vector<INFO> info;
}INFOTABLE
とヘッダーに定義すると、
INFOTABLEが定義されていません。と出ますが、
この場合、INFOTABLEはINFOの下に定義してるので、
このような記述でも、コンパイルできる方法を教えていただきたいです。
よろしくお願いします。
(classの場合、頭のところに、class info;としておけば解決できますが・・・。)
0560デフォルトの名無しさん
2005/06/30(木) 14:47:18struct info;
単発質問はスレ違いなんで以後気をつけるように。
0561デフォルトの名無しさん
2005/06/30(木) 15:00:42それは間違い。
struct INFOというものが定義されたことになる。
なので、以下の
typedef struct
{
int a;
std::vector<INFOTABLE> info;
}INFO;
でエラーになる。
0562デフォルトの名無しさん
2005/06/30(木) 15:13:13typedef struct
{
int a;
std::vector<stInfotable> info;
}INFO;
typedef struct stInfotable
{
std::vector<INFO> info;
}INFOTABLE;
>>559
このようにしては
0563デフォルトの名無しさん
2005/06/30(木) 15:39:13char b[1];
a[0]=4,a[1]=8,a[2]=4,a[3]=0,a[4]=9;
aの配列に入っているデータ5つを、並びを変えずにbの配列ひとつに入れるには
どうしたらいいのでしょうか?
b[1]=48409にしたい
0564デフォルトの名無しさん
2005/06/30(木) 15:40:01[2] 問題文(含コード&リンク):
N 人の人がいて,それらは番号 0, 1, 2, ..., N-1 で表されているとする。
この N 人の人間関係(知り合いかどうか)を表した配列 a[N][N] がある。
ただし,i 番目の人と j 番目の人とが知り合いであるとき
a[i][j] == a[j][i] == 1 であり,知り合いでないとき a[i][j] == a[j][i] == 0 である。
このとき, x 番目の人から,知り合いの知り合いの知り合い..という
繋がりで, y 番目の人まで辿り着くには,最小で何回の知り合いという
関係が必要かを返す関数
int acquaintDistance(int a[N][N], int x, int y) を作れ。
なお,x 番目の人から y 番目の人に辿り着けない場合には,
acquaintDistance は -1 を返すこととする。
ヒント:待ち行列を利用する。最初に x を待ち行列に入れ,
後は,「待ち行列から一つ dequeue して,その人の知り合いを
待ち行列に enqueue する」ということを繰り返す。
ただし,一度 enqueue した人は二度と enqueue しないようにし
y を enqueue する時点あるいは enqueue する一がいなくなった時点で
終了する。x から各人までの知り合い距離を入れる配列も用意しておき
新しい人を enqueue する度に,その人までの距離をその配列に入れる。
[3] 環境
[3.1] OS:Vine LiNUX
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:6月30日 pm11:00までっす
[5] 本当すいませんがお願いいたします。
0565デフォルトの名無しさん
2005/06/30(木) 15:44:17[2] 問題文:
線形リスト全体を削除する関数を作れ.(ノードに割り当てられたメモリを解放することを忘れないように)
[3] 環境
[3.1] OS:Vine LiNUX
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:6月31日ちょうど、深夜0時です
[5]
お願いいたします。
0566デフォルトの名無しさん
2005/06/30(木) 15:44:59charだけいじっても無理
データのビット幅が確定しているのなら
構造体でビットフィールド使ってキツキツに詰めるしかない。
0567>>565
2005/06/30(木) 15:54:54struct HOGE hoge;
struct NODE* pNext;
}stNode;//みたいな線形リストなら
//先頭アドレスを放り込め。後は再帰的に開放してくれる。
void clearNode(stNode* lpSt){
if(lpSt->pNext){
clearNode(lpSt->pNext);
lpSt->pNext = NULL;
}
free(lpSt);
}
0568デフォルトの名無しさん
2005/06/30(木) 16:08:31> [4] 期限:6月31日ちょうど、深夜0時です
?????
0569デフォルトの名無しさん
2005/06/30(木) 16:10:35あなたのコンパイラでは char に入れられる値の範囲はいくつになりますか?
あと、a[5]='\0' が入っていると sscanf 一発で解決するかも知れません。
0570デフォルトの名無しさん
2005/06/30(木) 16:22:11スレ違い。初心者質問スレへどうぞ。
>>566
何故そこでビットフィールド? bの型を間違えているとは思わない?
>>569
文字が入っているとは書いてないのにsscanf()?
0571デフォルトの名無しさん
2005/06/30(木) 16:53:50その問題、このスレか前スレにあったぞ
さがしてみ。答えもあるはずだから。
0572デフォルトの名無しさん
2005/06/30(木) 16:58:52C++なのにstructをtypedefしたがる人が多いのはなぜだろう。
struct INFOTABLE;
struct INFO {
int a;
std::vector<INFOTABLE> info;
};
struct INFOTABLE {
std::vector<INFO> info;
};
0573デフォルトの名無しさん
2005/06/30(木) 17:00:290575デフォルトの名無しさん
2005/06/30(木) 17:49:33宿題を答えにこのスレに来たやつは基本的にひけらかしたいだけだから。
0576502 ◆Avm1fqtITk
2005/06/30(木) 19:25:47日付が変わっているとは気付かなくて。
やってやるよゴルァという方どうでしょうか。動作確認してみます。
トリップ付けて下されば、メールで本人確認をして、明日にでも郵便(か銀行)振込します。
0577デフォルトの名無しさん
2005/06/30(木) 19:42:380578デフォルトの名無しさん
2005/06/30(木) 20:14:470579502 ◆Avm1fqtITk
2005/06/30(木) 20:48:41俺は何をしているんだ…orz
明日は昼からレポート作成で情報処理室に篭りますので、よければ。
0580デフォルトの名無しさん
2005/06/30(木) 21:14:17[2] 問題文(含コード&リンク):
0〜9までの数字をランダムに3つ選び、選んだ数字を表示するプログラムを作りなさい。
ただし同じ数字が出ても良い。
[3] 環境
[3.1] OS:Windows
[3.3] 言語:C
[4] 期限:2005年07月02日午後まで
[5] その他の制限:なし
お願いします。
0581デフォルトの名無しさん
2005/06/30(木) 21:30:45#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i;
srand(time(NULL));
for( i = 0; i < 3; ++i)
printf("%d ", rand() % 10);
putchar('\n');
return EXIT_SUCCESS;
}
0582デフォルトの名無しさん
2005/06/30(木) 22:05:12ありがとうございます
0583デフォルトの名無しさん
2005/06/30(木) 22:33:13http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/637.txt
シェルソートはどっかからのコピペ
0584デフォルトの名無しさん
2005/06/30(木) 22:37:43[2] 問題文(含コード&リンク):
1.ベクトル型のクラスMyVectorを三次元に拡張せよ
2.三次元ベクトルのクラスに「/」演算子(ベクトルの実数商)と、
「^」演算子(ベクトルの外積)を追加せよ。三次元ベクトルA=(Ax,Ay,Az)と
B=(Bx,By,Bz)の外積ベクトルは次のように定義される。
A*B=(Ay*Bz - AzBy, AzBx - AxBz, AxBy - AyBx)
3.A,Bの外積ベクトルをCにしたとき常に内積値A*C=B*C=0が成り立つことを、
様々な数値で確認せよ。
4.ベクトルクラスの同値比較演算「==」は、サンプルの実装では正しく働かない。
例えば、次のコード
MyVector a(10.0,20.0,30.0),b(1.0,2.0,3.0);
if(a == 10.0 * b){
cout << "Same!!\n";
}else{
cout << "Difference!!\n";
}
は環境によっては「Difference!!」を出力する。なぜなら、浮動小数点演算は桁落ちと
呼ばれる計算誤差が発生するからである。そこで、ある実数aとbが等しいかどうか判定
する場合、十分小さな値ε(例えば、0.0000001)を用いて、|a-b|<εが成り立つことで
等しいと判断するのが一般的である。このことを利用して、「==」演算子を再定義せよ。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C++
[4] 期限:05年7月1日7時頃まで
[5] その他の制限:
0585デフォルトの名無しさん
2005/06/30(木) 22:38:19[2] 問題文(含コード&リンク):
英文の入ったファイル(eibun.txt)を読み込んで、指定した文字列が
何回出てくるかカウントするプログラムを作成しなさい。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年6月30日まで
[5] その他の制限:
ファイルや検索する文字列は、ファイル実行時に指定します。
program eibun.txt for …みたいな感じです。
(プログラム内に*argv[]とかを使う)
0586584
2005/06/30(木) 22:41:45↑が自分でやったものです
動作確認しましたが
勘違いしている箇所や間違っているところがあったらご指摘いただければ
と思います。
「==」演算子の再定義が自信ありません・・・
明日提出なのですみませんがどうかよろしくお願いします。
0587502 ◆Avm1fqtITk
2005/06/30(木) 23:16:10え、これがプログラムの答えですか?
一つに纏めれるんですね。明日確認してみます。
というかトリップ付けておられませんが、いいんでしょうか。
これって、テキストファイルをプログラムに読み込ませるやつですよね。
テキストの形式はどのように書けばよいのでしょうか?
やったことないん、ですが。一応↓
http://www.uploda.org/file/uporg137728.txt
絶対違うw
というか、最初から、クラスの人数、格科目の得点、名前、をプログラムの中で
指定しておく旨書いてくおいた方が無難だったですね…明らかに。
ファイル読み込ませるコマンドも分かりません氏。
0588デフォルトの名無しさん
2005/06/30(木) 23:23:171 田中 50 75 79
2 伊藤 83 43 58
3 佐藤 34 83 53
0589デフォルトの名無しさん
2005/06/30(木) 23:31:38[2] 問題文(含コード&リンク):
ビーラントの次数低下法を用いて次の行列式の固有値と固有ベクトルを求めよ。
�@
4 3 1 -1 2
3 6 1 -2 3
A=1 1 4 -3 1
-1 -2 -3 6 1
2 3 -1 1 4
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ(バージョン): gcc(Cygwinの最新のやつ)
[3.3] 言語:C
[4] 期限:明日朝9:00まで
[5] その他の制限:
ハードコーティングでいいのでお願いしますorz
レポート@4つとか多すぎる(;´Д`)
非常にお願いしまんこ
0590デフォルトの名無しさん
2005/06/30(木) 23:39:42普通、double / vector は定義しない。
a=(1.0e-8, 0, 0), b=(0, 0, 0) のときは a == b だが、
a=(0, 0, 0), b=(1.0e-8, 0, 0) のときは a != b となる。
0591デフォルトの名無しさん
2005/06/30(木) 23:41:28http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/638.txt
0592デフォルトの名無しさん
2005/06/30(木) 23:41:53そもそも宿題を提示した時点でファイルの書式を明示すべき。
0593デフォルトの名無しさん
2005/06/30(木) 23:50:43#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *fp;
char eng[100], *p;
int count = 0;
if (2 != argc) {
printf("引数が多すぎます\n");
return 0;
}
fp = fopen("eibun.txt", "r");
if (NULL == fp) {
printf("ファイルオープンに失敗しました\n");
return 0;
}
for (;;) {
if (NULL == fgets(eng, 100, fp)) {
break;
}
}
for (p = eng; p = strstr(p, argv[1]); p += strlen(argv[1])) {
count++;
}
printf("%sはeibun.txtの中に%d個あります\n",argv[1], count);
fclose(fp);
}
適当につくったwたぶんまちがってるとこありそう!
0594デフォルトの名無しさん
2005/06/30(木) 23:52:50>>585の最後から2行目をよく読め
0596デフォルトの名無しさん
2005/06/30(木) 23:55:19#include <string.h>
int main(int argc, char *argv[])
{
FILE *fp;
char eng[100], *p;
int count = 0;
if (3 != argc) {
printf("引数が多すぎます\n");
return 0;
}
fp = fopen(argv[1], "r");
if (NULL == fp) {
printf("ファイルオープンに失敗しました\n");
return 0;
}
for (;;) {
if (NULL == fgets(eng, 100, fp)) {
break;
}
}
for (p = eng; p = strstr(p, argv[2]); p += strlen(argv[2])) {
count++;
}
printf("%sは%sの中に%d個あります\n",argv[2],argv[1], count);
fclose(fp);
}
んじゃこうかな?
文字検索んとこが微妙かも
0597デフォルトの名無しさん
2005/07/01(金) 00:00:10検索できないな。
0598デフォルトの名無しさん
2005/07/01(金) 00:05:23それだと "ababc" から "abc" が探索できなくないか?
0599デフォルトの名無しさん
2005/07/01(金) 00:07:54(s1,s2)を書け。
0600デフォルトの名無しさん
2005/07/01(金) 00:16:39そのとおりですた
>>585
つうわけで、修正版
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/639.txt
0601デフォルトの名無しさん
2005/07/01(金) 00:18:10こうやりゃいいのかw
俺の奴まじうんこだなww
0602584
2005/07/01(金) 00:31:22お答えいただきありがとうございます。
>a=(1.0e-8, 0, 0), b=(0, 0, 0) のときは a == b だが、
>a=(0, 0, 0), b=(1.0e-8, 0, 0) のときは a != b となる。
両方とも成り立たせるためにはどのようにすればよろしいのでしょうか・・・
0603デフォルトの名無しさん
2005/07/01(金) 00:34:19問題文に答えが書いてあるじゃないか。
DBL_EPSILONでぐぐれ。
0605デフォルトの名無しさん
2005/07/01(金) 01:27:05アルゴリズムが提示されれば何とかなるかもしれませんね。
0606デフォルトの名無しさん
2005/07/01(金) 01:35:24[2] 問題文(含コード&リンク):きーぼーどからファイルを読み込んで、そのファイルをオープンするプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):Borland c
[3.3] 言語:C
[4] 期限:本日10時まで
宿題でいきなりつまずいてしまったのでよろしくお願いします。
fopenを使うのでしょうか?
0607デフォルトの名無しさん
2005/07/01(金) 01:41:51データの中身はドン何?
0608デフォルトの名無しさん
2005/07/01(金) 01:43:13#include <stdio.h>
#include <string.h>
int main()
{
FILE *_, __;
char ___[8192];
char *____;
_ = fopen("CON", "r");
if (!fgets(___, sizeof ___, _))
return 1;
if (____ = strchr(___, '\n'))
*____ = 0;
fclose(_);
if (!(__ = fopen(___, "a+"))) {
perror(___);
return 2;
}
fclose(__);
return 0;
}
0609デフォルトの名無しさん
2005/07/01(金) 01:45:53// iotest.cpp
// ファイル入出力練習
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
main()
{
ifstream fileReader("source.txt", ios::in);
ofstream fileWriter("copy.txt", ios::out);
if (!fileReader) {
cerr << "ファイルをオープンできません\n";
exit(1); // stdlib.hの中にプロトタイプがある
}
if (!fileWriter) {
cerr << "ファイルをオープンできません\n";
exit(1); // stdlib.hの中にプロトタイプがある
}
char c = 0;
while (fileReader && !fileReader.eof() ) {
fileReader.read( static_cast< char >(c), sizeof(char) );
cout << c << ' ';
fileWriter << c << ' ';
}
return 0;
}
readとかgetとかいろいろ試したのですがどうしてもうまくいきません。
間違いの指摘をお願いしますm(_ _)m
0610デフォルトの名無しさん
2005/07/01(金) 01:54:47もっと新しい教科書で勉強することを進める。
iostream.hはふるい。
char c;
while (fileReader.get(c)) {
fileWriter << c << ' ';
}
とかでどうよ。
0611デフォルトの名無しさん
2005/07/01(金) 02:00:16教科書はかなり古いのを使っています。
いい教科書を探したのですがなかなか決まらなくて・・・
それだと無限ループにはまってしまいました。
しかも書き込みもうまく行われていないようです。
0612589
2005/07/01(金) 02:01:16アルゴリズムです。
�@,k++
�A行列Aの最大固有値λkと固有ベクトルxkをべき乗法により求める。
�BA <- A - λk * xk * (xkの転置)
�Cif k<n then goto step�@ else 終了
らしいです。
べき乗法についてはすでにできてるのでろだにあげときました。うrlした
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/640.txt
お願いします。
0613デフォルトの名無しさん
2005/07/01(金) 02:04:39コンパイラはどんなの使ってるの。
0614584
2005/07/01(金) 02:04:47どなたか教えていただけませんか?
引き続き自分でもやってみます・・・
ほんと自分ダメポ・・・
0615デフォルトの名無しさん
2005/07/01(金) 02:06:49#include <iostream>
#include <fstream>
// C++の標準ヘッダはもはや〜.hではない
int main()
//戻り値の型の省略はC++ではもはや許されていない
{
std::ifstream fileReader("source.txt");
std::ofstream fileWriter("copy.txt");
// ifstreamやofstreamはデフォルト引数としてinやoutを渡すので不要
if (!fileReader || !fileWriter) {
std::cerr << "ファイルをオープンできません\n";
return 1;
}
std::ifstream::int_type c = 0;
// ifstream::get()はint_typeを返す
while ((c = fileReader.get()) != std::ifstream::traits_type::eof()) {
std::cout << std::ofstream::char_type(c) << ' ';
fileWriter << std::ofstream::char_type(c) << ' ';
}
return 0;
}
0616デフォルトの名無しさん
2005/07/01(金) 02:06:54無料のボーランドのやつです。
まずかったでしょうか??
0617デフォルトの名無しさん
2005/07/01(金) 02:13:39なるほど!!確かに出来てます。
これだとだいぶjavaのFileReaderに近いので理解しやすいです。
stdというのをつけるのは作法なんでしょうか?
名前がかぶるわけなんかないと高をくくっているのですが・・・
0618デフォルトの名無しさん
2005/07/01(金) 02:15:09std::はnamespace
C++標準ライブラリはstd名前空間に包まれることになってます
0619デフォルトの名無しさん
2005/07/01(金) 02:17:59小さいプログラムを書いているうちは被らない事が殆どだろうから、
#includeの後にusing namespace std;と書いている人が結構多い。
0620584
2005/07/01(金) 02:33:50スレ汚しすみませんでした
失礼します。
0621606
2005/07/01(金) 02:41:12データの中身はなくてなんかの問題集だと思うのですが。
いきなり問題が書いてあるので・・・
>>608
「_」はなにか適当な文字を入れればいいのでしょうか?
0622デフォルトの名無しさん
2005/07/01(金) 02:45:38>>608をコンパイルして実行してみるよろし。
まあ、_ではじまるシンボルは本当は処理系用に予約されていて
使っちゃいかんのだがな。
0623デフォルトの名無しさん
2005/07/01(金) 02:52:54[2] 問題文(含コード&リンク):
ビーラントの次数低下法を用いて次の行列式の固有値と固有ベクトルを求めよ。
�@
4 3 1 -1 2
3 6 1 -2 3
A=1 1 4 -3 1
-1 -2 -3 6 1
2 3 -1 1 4
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ(バージョン): gcc(Cygwinの最新のやつ)
[3.3] 言語:C
[4] 期限:明日朝9:00まで
[5] その他の制限:
ハードコーティングでいいのでお願いしますorz
参考URL
http://www.flow.human.nagoya-u.ac.jp/~mine/edu/Chap4Rev.pdf
アルゴリズムです。
�@,k++
�A行列Aの最大固有値λkと固有ベクトルxkをべき乗法により求める。
�BA <- A - λk * xk * (xkの転置)
�Cif k<n then goto step�@ else 終了
らしいです。
べき乗法についてはすでにできてるのでろだにあげときました。うrlした
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/640.txt
お願いしますorz
0624デフォルトの名無しさん
2005/07/01(金) 02:55:13int main(int argc, char *argv){
std::cout << argc << ',' << argv << std::endl;
}
とすると,謎の文字列が表示されました。
0625デフォルトの名無しさん
2005/07/01(金) 02:58:41{
std::cout << argc;
for (int i = 0; i < argc; ++i)
std::cout << ',' << argv[i] ;
std::cout << endl;
return 0;
}
0626デフォルトの名無しさん
2005/07/01(金) 03:23:50http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/640.txt
0627デフォルトの名無しさん
2005/07/01(金) 03:51:06あ、それから。C++っぽく1文字ずつコピーするには、以下。
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
int main()
{
std::ifstream fileReader("source.txt");
std::ofstream fileWriter("copy.txt");
if (!fileReader || !fileWriter) {
std::cerr << "ファイルをオープンできません\n";
return 1;
}
std::copy(std::istream_iterator<char>(fileReader), std::istream_iterator<char>(), std::ostream_iterator<char>(fileWriter, " "));
return 0;
}
0628デフォルトの名無しさん
2005/07/01(金) 03:54:190629デフォルトの名無しさん
2005/07/01(金) 04:24:30ご親切にありがとさんです。
今はmain関数の引数の使い方が分からずに困っております( ; ° °)
つまり上のプログラムのsource.txtの部分を指定できないかってことです。
0630デフォルトの名無しさん
2005/07/01(金) 05:13:52int main(int argc,char *argv[])
{
if(argc!=3)
cout << "usage: " << argv[0] << "source.txt dest.txt" << endl;
cout << ":" << argv[1] << " -> " << argv[2] << endl;
std::ifstream fileReader(argv[1]);
std::ofstream fileWriter(argv[2]);
}
0631デフォルトの名無しさん
2005/07/01(金) 05:17:48cerr << "usage: " << argv[0] << "source.txt dest.txt" << endl;
exit(1);
}
0632デフォルトの名無しさん
2005/07/01(金) 06:30:44StrToIntとかToIntという関数があるようですが,
これでは駄目なようで困っています.
�Aファイルから1行を切り出すにはどうすればいいんですか??
40文字ずつ改行しながら別のファイルに出力させていくという
プログラムを作りたいのですが,
char *c;
fileReader.get(c, number, '\n');
のようにしてnumberが21くらいになるとメモリがreadにならないという
エラーメッセージが出てきます.どうしてでしょうか??
0633632
2005/07/01(金) 06:52:50もしかしてわからないの?
0634デフォルトの名無しさん
2005/07/01(金) 07:03:10ここは宿題スレです。言語スレへ逝ってください。
0635デフォルトの名無しさん
2005/07/01(金) 07:16:35#include <iostream>
#include <string>
using namespace std;
int main(){ int num; char str[256]; string s ("123"); strcpy(d, s.c_str()); num = atoi(d); printf("%d\n", num); return 0; }
0636デフォルトの名無しさん
2005/07/01(金) 09:09:48[2] 問題文:
実数の値xおよびa,pを与えると、
f(x,a,p) = exp(-x*x/(2.0*a*a))*cos(3.14*x+p)
を返す関数を作成しなさい。
この関数を用いてxを-3.14から3.14まで0.01きざみで変化させたときのプログラムを作成しなさい。
ただしパラメータa,pは適当にあたえてもよいものとする。例a=0.6,p=0.0など
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/5まで
[5] その他の制限:関数の扱いまで習いました。
どなたかご教授お願いします。
0637デフォルトの名無しさん
2005/07/01(金) 12:23:21#include <math.h>
double func(const double &a, const double &p, const double &x) {
return (exp(-x*x/(2.0*a*a))*cos(3.14*x+p));
}
int main() {
double a, p, x = -3.14;
scanf("%lf %lf", &a, &p);
while(x <= 3.14) {
printf("x = %.2f : %f\n", x, func(a, p, x));
x += 0.01;
}
return 0;
}
0638デフォルトの名無しさん
2005/07/01(金) 12:33:34http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/641.txt
0639デフォルトの名無しさん
2005/07/01(金) 13:48:04#include <math.h>
double f(double x, double a, double p)
{
return exp(-x*x/(2.0*a*a))*cos(3.14*x+p);
}
int main(int argc, char *argv[])
{
int i;
double a, p;
if (argc != 3) {
printf("usage: %s a p\n", argv[0]);
return 0;
}
a = atof(argv[1]);
p = atof(argv[1]);
for (i = -314; i <= 314; i++) {
printf("% 5.2f %f\n", i / 100.0, f(i / 100.0, a, p));
}
return 0;
}
0640636
2005/07/01(金) 15:35:54ありがとうございました。おかげで完成できました。
0641デフォルトの名無しさん
2005/07/01(金) 15:40:27[2] 問題文:
ゲーム理論の2人ゼロSUMゲームのNash均衡を求めるプログラム
2*2の正方行列で均衡点を求めたいんですが
C D
A(5,5)(0,8)
B(8,0)(2,2)の行列です。
均衡点は(2,2)です。パレート最適は(5,5)です。
アルゴリズムは
使用する変数の宣言
↓
利得行列をデータで与える。
↓
p1_max[i],pi[j]を計算する
p2_max[i],pj[i]を計算する
↓
Nash均衡の判定
↓
i=pi[j] →No
↓Yes
j=pj[i] →No
↓Yes
(i,j)はNash均衡としPrintする。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C++
[4] 期限:7/5まで
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/642.txt
0643デフォルトの名無しさん
2005/07/01(金) 18:52:09[2]最初に入力したものから現在入力したものまでの平均値を求め(リアルタイム処理という、
すなわち最後のデータを待たずに新たに
入ってくるデータがあれば処理を行なう)、
表示するプログラムを作成しなさい。
平均値を求める関数 float avg(int データ番号 n, float 入力データ , float (n-1)
までの平均値) を作成し、利用すること。
数値の入力や結果の表示は実行例を参考に mainで行なうこととし、
入力された値が0の時、終了するものとします。
[3]環境
1OS windows xp
2 gcc
3 c言語で、初歩のほうなので、分かりやすくおねがいします。
[4]土曜日のごご六時ごろまでです。
0644デフォルトの名無しさん
2005/07/01(金) 18:59:55{2}10進数の0〜255を8ビットの符号なし2進数で表示するプログラムを作成せよ。
なお。10進数を2進数へ変換し、表示する関数void d2b(int i) を作成し、
それをmainから呼んで実行しなさい。
{3}環境
{3,1}os ユニックス
{3,2}gcc
{3,3}C言語です。
{4}月曜日までです。よろしくお願いします。
0645デフォルトの名無しさん
2005/07/01(金) 19:16:41{
static int x = 8;
if (x == 0) {
x = 8;
return;
}
x--;
d2b(i>>1);
putchar((i & 1) + '0');
}
0646デフォルトの名無しさん
2005/07/01(金) 19:25:51[2] 文字列str内の全ての数字文字を削除する関数を、添字演算子を用いずに作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] C
[4] 期限:月曜日まで
[初心者なんですが
0647デフォルトの名無しさん
2005/07/01(金) 19:31:34#include <stdio.h>
void d2b(int i);
int main(void)
{
unsigned int i;
for(i = 0; i < 256; i++) {
printf("10進数 %3d 2進数 ");
d2b(i);
}
}
void d2b(int i)
{
int j;
for (j = 8; j >= 0; j--){
printf("%u", (i>>j) & 0x0001);
}
printf("\n");
}
0648デフォルトの名無しさん
2005/07/01(金) 19:39:33#include <stdio.h>
#include <ctype.h>
void func(char *src, char *dest) {
while(*src != '\0') {
if(isdigit(*src) == 0) {
*dest = *src;
dest++;
}
src++;
}
*dest = '\0';
}
int main()
{
char str[256], str2[256];
scanf("%s", str);
func(str, str2);
puts(str2);
return 0;
}
0649デフォルトの名無しさん
2005/07/01(金) 19:48:40#include <stdio.h>
#include <string.h>
#include <ctype.h>
char *remove_digit(char *str)
{
char *p, *q;
for(p = q = str; *p; ++p)
if( ! isdigit(*p) ) *q++ = *p;
*q ='\0';
return str;
}
int main()
{
char buf[256];
while(1)
{
char *p;
if( p = strchr(fgets(buf, sizeof(buf), stdin), '\n') ) *p = '\0';
puts(remove_digit(buf));
}
return 0;
}
0650デフォルトの名無しさん
2005/07/01(金) 19:49:470651デフォルトの名無しさん
2005/07/01(金) 19:54:06void del_digit(char * str)
{
char *p_dest = str;
char *p_src = str;
while (p_dest && *p_dest) {
if (!isdigit(*p_src)) {
*p_dest++ = *p_src;
}
p_src++;
}
}
0652デフォルトの名無しさん
2005/07/01(金) 19:57:040653649
2005/07/01(金) 19:57:59ループ毎のチェックでNULLチェックは冗長じゃね?
#include <ctype.h>
char *remove_digit(char *str)
{
if( str )
{
char *p, *q;
for(p = q = str; *p; ++p)
if( ! isdigit(*p) ) *q++ = *p;
*q ='\0';
}
return str;
}
0654デフォルトの名無しさん
2005/07/01(金) 20:01:38このスレでの回答にそんまもの必要ないと思われ。
問題文に書いてない限りは。
0655デフォルトの名無しさん
2005/07/01(金) 20:06:57これを拡張子を.cgiにせずに.cのままで
webにだしたいのですがコンパイル後、webでみても
エラーがでて上手く表示されません。
拡張子.cgiのままなら見れます。
問題があるとしたら以下のプログラムなのですが
どこか不都合な部分はあるでしょうか・・・・
ご指摘お願いします
***********hello.c****************
#include <stdio.h>
int main(void){
printf("Content-type: text/html\n\n");
printf("<HTML>\n");
printf("<HEAD>\n");
printf("<META http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">\n");
printf("<TITLE>Sample CGI output</TITLE>\n");
printf("</HEAD>\n");
printf("<BODY>\n");
printf("<H3>\n");
printf("Hello World\n");
printf("</H3>\n");
printf("</BODY>\n");
printf("</HTML>\n");;
return 0;
}
0656デフォルトの名無しさん
2005/07/01(金) 20:09:48あと、CのCGIは、コンパイルしなきゃ動かないと思うんだけど。
もしかして、実行時にmakeしてくれるCGI環境tかあるの?
0657デフォルトの名無しさん
2005/07/01(金) 20:12:47エラー内容の類はカキコ必須な。
なんで.cのままやりたいのか、理由もききたい。
.htaccessで出来るかもしれんが。
0658デフォルトの名無しさん
2005/07/01(金) 20:15:13反射的にカキコんじまったが、それ宿題なのか?
それと>>1 の
「質問は必ず【質問テンプレ】に従ってください。」
ってのをポストイットに書いて貼っとけ。
0659デフォルトの名無しさん
2005/07/01(金) 20:24:38[2] 区間[a, b]において連続な任意の関数 F(x) の x−軸と F(x)
及び x=a,x=b で囲まれた部分の面積を求めよ。
また,F(x) をX−軸の周りに回転して得られる立体の体積を求める。
ただしa,b,εの値はキーボードから読み込みf(x)はサブ関数で定義する。
[3] 環境
[3.1] OS:Windows
[3.2] cpp
[3.3] C
[4] 期限:月曜日まで
[5]初心者です。シンプソン法則を用いる
0660デフォルトの名無しさん
2005/07/01(金) 20:31:58g’(x)= F(x) となるg(x)を教えて
0661デフォルトの名無しさん
2005/07/01(金) 20:44:05かったため長くなってしまいましたがすいません。
なぜかFortranの形式で参考を先生が紹介するのでFortranの方を
UPしておきます。
自分は全然わからないのですが
http://nur.ath.cx/no0/25/の25543ファイルです。
0662デフォルトの名無しさん
2005/07/01(金) 20:45:38[2] 問題文(含コード&リンク):
コード番号に対応した文字列(例えば、1にミルク、2にコーヒー……)を10個作成し、
任意のコード番号を入力すると対応した文字列を出力するプログラムを作成せよ。
(例えば、1と入力するとミルク、2と入力するとコーヒー……と出力される)
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年7月4日まで
0663ホームページ プロダクション
2005/07/01(金) 20:47:08弊社は出来て間もないのではじめに5人という限定で無料ホームページをお作り致します。こちら→http://www16.plala.or.jp/mercigackt/
0664デフォルトの名無しさん
2005/07/01(金) 20:49:31[2] >>655
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:?
[5] その他の制限:?
>>657
>>658
すまそ・・・・・・・
例題としてシェルのタイプのやつがあって(中身同じ)
それをc言語でも出来るようにしろって問題です
.cgiだとそれにそぐわないと思ったから
0665デフォルトの名無しさん
2005/07/01(金) 20:50:284.0 / (1 + x * x)でお願いします。
0666デフォルトの名無しさん
2005/07/01(金) 20:55:13シェルやPerlのようなインタプリタのスクリプトなら、実行権限ビット
立てとけばそのまま実行できる
Cプログラムの場合はコンパイルしないと実行できない
基本中の基本です
0667デフォルトの名無しさん
2005/07/01(金) 21:23:16#include <stdio.h>
const char *list[] = {
"混世魔王・樊瑞", "激動たるカワラザキ",
"衝撃のアルベルト", "眩惑のセルバンテス",
"暮れなずむ幽鬼", "命の鐘の十\常寺",
"マスク・ザ・レッド", "直系の怒鬼",
"白昼の残月", "素晴らしきヒィッツカラルド",
};
int main()
{
int code;
printf("コード入力[1-10] > ");
scanf("%d",&code);
if( code > 0 && code <=10 )
puts(list[code-1]);
else
puts("input error");
return 0;
}
0668デフォルトの名無しさん
2005/07/01(金) 21:24:38勉強になりますた
0670デフォルトの名無しさん
2005/07/01(金) 21:36:40Cインタプリタも探せばあるんじゃまいか?
0671デフォルトの名無しさん
2005/07/01(金) 21:38:150672デフォルトの名無しさん
2005/07/01(金) 21:38:580673デフォルトの名無しさん
2005/07/01(金) 21:40:310674502 ◆Avm1fqtITk
2005/07/01(金) 21:52:40遅くなってすいません。こちらによろしくです。
[email protected]
0675デフォルトの名無しさん
2005/07/01(金) 22:26:29また,F(x) をX−軸の周りに回転して得られる立体の体積を求める前までは
やってみたのですがうまくできません。
最後のif(fabs(Snew - Sold) < Eps)で条件があわなければ
Sold=Snewに戻る分岐にしたいのですがよくわからなくて
一応途中まで作成したものを
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/644.txt
0676デフォルトの名無しさん
2005/07/01(金) 22:29:34何がどうなることを期待していて、
実際はどう違っているのか答えよ。
期限 1時間後
偽者防止策でトリ付けた。どうやら対価分の価値があったようでなにより。
金銭の授受は面倒なんで辞退します。どうしてもというなら
ttp://www.gentoo.org/foundation/en/
Make a Donateへ寄付してくれ。
デバッグもコンパイラもGentoo上でやったしな。
0678デフォルトの名無しさん
2005/07/01(金) 22:32:20しらんかった。
0679677
2005/07/01(金) 22:32:370680デフォルトの名無しさん
2005/07/01(金) 22:56:41勉強になりますた
0681659
2005/07/01(金) 22:59:59コンパイルしようとすると
Tmp関数に代入した値が使われていない。
宣言が正しく終了していないとでます。
どれを削除して何を追加すればいいのかもわからないのが現状です。
先ほどのファイルのアドが間違っていたのでもう一度
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/645.txt
0682デフォルトの名無しさん
2005/07/01(金) 23:03:15そういうときはこういいましょう。
「コンパイルが通りません」
そして、速やかに、エラーメッセージを貼り付ける。
0683デフォルトの名無しさん
2005/07/01(金) 23:09:12> Tmp関数に代入した値が使われていない
これはワーニングであってエラーじゃないな。無視可能。
> 宣言が正しく終了していない
こっちは問題だが、main()関数の外にreturn 0;があったりするのは
まずいんじゃないのかなあ。たぶん。
変数名と同じGOTOラベルがいいのかどうかはよくわがんねけど、
まあ普通はやらないな
0684デフォルトの名無しさん
2005/07/01(金) 23:14:35名前空間が違うのでおk
他には構造体や列挙体もかぶっておk
0685デフォルトの名無しさん
2005/07/01(金) 23:31:52Γ→�凵AC/Γ→�凵AC∨D
および
Γ→�凵AD/Γ→�凵AC∨D
となるプログラムをCで表してほしいです。
0686デフォルトの名無しさん
2005/07/01(金) 23:38:220687デフォルトの名無しさん
2005/07/01(金) 23:41:27こういうレスをみると(°Д°)ハァ?ってなる。
0688502 ◆Avm1fqtITk
2005/07/01(金) 23:58:21プログラムありがとうございました。
本当にいいんでしょうか?口座番号さえ分かれば数分でできますよ。
気が変わればメールして下さい。
そのURL先の振込みはややこしそうです。CCカードが必要みたいですし。
代替としてコンビニの募金箱に3千円寄付しときますで、それで。
w
0689デフォルトの名無しさん
2005/07/02(土) 00:00:13好い加減、ドン引きされてるのを理解しろよ
善意の人間に金の話を持ち出すのは失礼になることだってあるんだぜ
0690デフォルトの名無しさん
2005/07/02(土) 00:22:57こういうやつ結構知ってるからそんなに引かないww
はやく宿題投下キボンヌ
0691デフォルトの名無しさん
2005/07/02(土) 00:41:46[2] 問題文(含コード&リンク):
年月日を表示、変換するプログラムを作る。
XXXX年XX月XX日(例えば、2004年7月2日など)を標準の形式として表示し、
下記のいずれの形式が入力されてもこの形式に変換されるプログラムを作成せよ。
2004-7-2
7/2/2004
Jul./2/2004
2/Jul./2004
2/Jul/2004
2004nen 7gatsu 2nichi
2004 7 2
2004 fumizuki 2
また、存在しない日付(例えば2004年2月30日など)はエラーとする。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7月15日15時まで
よろしくお願いします。
0692デフォルトの名無しさん
2005/07/02(土) 01:02:35試みてもいない感じだね。
何時までに回答レスが付かなかったら自分でやるの?
0693デフォルトの名無しさん
2005/07/02(土) 01:09:11[2]Gccコンパイラ
[3]期限 7月6日水
[4]RedHat
問題
メニュー表示をし,ステップ「1」として,関数y = 2x2において,x = 0 – 10 ま
でを0.01 刻みで1001 個のx,yデータセットを作成して,ファイル名function.datで各自のホ
ームディレクトリ(または,カレントディレクトリ)にバイナリ形式で保存する.ステ
ップ「2」として,作成したfunction.datからn個目のx,yデータセットを抽出して,ファイ
ル名n_xy_ascii.dat(nは入力した数字)としてASCII形式で保存する.以上の様に動作す
るプログラムを作成しなさい
よろしくお願いします
0694デフォルトの名無しさん
2005/07/02(土) 01:13:03sscanf(buf, "%d年%d月%日", &y, &m, &d);
ってなことかな・・・。
文字列が可変のところは%3sとか%20[abc...xyz]とかしたあと、ただしいつづりかチェックってかたちかな?
sscanf以外の解法はメンドイ気もする。
0695デフォルトの名無しさん
2005/07/02(土) 01:14:187月5日15時まででした。
これをCで作った後にlexとyaccでも作らないといけないんで結構必死です。
0696デフォルトの名無しさん
2005/07/02(土) 01:15:05とは俺も思ったけどやっぱそうだったのか。
0697デフォルトの名無しさん
2005/07/02(土) 01:23:24lexで作る時遷移図書くんなら、まずそれを作ってからだな。
つーか、この問題の意味するところは「状態遷移マンセーだぽ」って思えるんだが。
0698デフォルトの名無しさん
2005/07/02(土) 01:26:06C言語、まず、トークナイザつくらんとダメぽ?
再帰下降型しかノーミソに入ってませんが。
0699デフォルトの名無しさん
2005/07/02(土) 01:29:05日月 年
と
年月 日
の判別がめんどくさそう。
0700デフォルトの名無しさん
2005/07/02(土) 01:29:180701699
2005/07/02(土) 01:44:39コレなら、まぁ楽か。
0702デフォルトの名無しさん
2005/07/02(土) 01:48:19{
int c;
do { c = getc(fp); } while (isspace(c));
switch (c) {
case EOF:
return 0;
case '-': case '/': case '.':
return c;
defualt:
ungetc(c, fp);
if (isdigit(c)) return get_token_number(fp, s, size);
return get_token_stringfp, s, size);
}
return 0; /* ここにくることはないが、一応 */
}
すまん、力尽きた。
0703デフォルトの名無しさん
2005/07/02(土) 02:11:33void d2b(int i);
int main(void)
{
unsigned int i;
for(i = 0; i < 256; i++) {
printf("10進数 %3d 2進数 ");
d2b(i);
}
}
void d2b(int i)
{
int j;
for (j = 8; j >= 0; j--){
printf("%u", (i>>j) & 0x0001);
}
printf("\n");
}
これを配列を使ってできませんか?よろしく、おねがいします。
0704デフォルトの名無しさん
2005/07/02(土) 02:14:54"00000000", "00000001", /* ... */ "11111111"
};
/* #include 〜 mainの終わりまでそのまんま */
void d2b(int i)
{
return array[i % 256];
}
0705691
2005/07/02(土) 02:25:52とりあえずトンクスです。
ヒントを頼りにやってみます。
0706デフォルトの名無しさん
2005/07/02(土) 02:34:36char*arrayを使わないで、できませんか?
0707デフォルトの名無しさん
2005/07/02(土) 02:35:590708デフォルトの名無しさん
2005/07/02(土) 02:52:13あなたはだぁれ?
0709デフォルトの名無しさん
2005/07/02(土) 05:19:30Γ→�凵AC/Γ→�凵AC∨D
および
Γ→�凵AD/Γ→�凵AC∨D
となるプログラムをC言語で表してほしいです。
0710デフォルトの名無しさん
2005/07/02(土) 05:31:05数学のことがわからんので、その理論のことを書いてあるURLをおせーてね。
0711デフォルトの名無しさん
2005/07/02(土) 06:32:18>>1
0712397
2005/07/02(土) 07:05:14407氏が課題の後半部分を作ってくださったので
前半は自分でやってみたのですが、間に合いそうにないです。。
残り時間も僅かなのですが、
もしよろしければ、どなたか教えていただけないでしょうか。
0713デフォルトの名無しさん
2005/07/02(土) 09:32:48[2] 問題文:
int型の配列にキーボードから整数を読み込んでいくときに、
常に配列の中が小さい順に保たれるようにしたい。
新しい要素を適切な位置に挿入しながら読み込むプログラムを
作成してください。
[3] 環境
[3.1] OS:Windouws xp
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/7まで
よろしくお願いします。
0714デフォルトの名無しさん
2005/07/02(土) 09:36:13お前ならできる!
0715デフォルトの名無しさん
2005/07/02(土) 10:22:45http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/646.txt
0716デフォルトの名無しさん
2005/07/02(土) 10:44:040717デフォルトの名無しさん
2005/07/02(土) 11:08:25>>407さんのを勝手に改造しました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/647.txt
>>716
スレチガイ以前に”ある単位単位ごとに”ってのが意味不明
0718デフォルトの名無しさん
2005/07/02(土) 13:00:59[2] 問題文 二進数を入力して十進数に変換せよ。ただし配列は使わない。
[3] 環境
[3.1] OS:Windows/Linux/どちらでも可
[3.2] コンパイラ(バージョン):gcc
[3.3] どちらでも可
[4] 期限:7月4日
[5] その他の制限:配列はNG。for,while,do-while,ifの中で。
どうかお願いします。
0720デフォルトの名無しさん
2005/07/02(土) 13:38:43[2] 問題文:
ゲーム理論の2人ゼロSUMゲームのNash均衡を求めるプログラム
2*2の正方行列で均衡点を求めたいんですが
C D
A(5,5)(0,8)
B(8,0)(2,2)の行列です。
均衡点は(2,2)です。パレート最適は(5,5)です。
アルゴリズムは
使用する変数の宣言
↓
利得行列をデータで与える。
↓
p1_max[i],pi[j]を計算する
p2_max[i],pj[i]を計算する
↓
Nash均衡の判定
↓
i=pi[j] →No
↓Yes
j=pj[i] →No
↓Yes
(i,j)はNash均衡としPrintする。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C++
[4] 期限:7/5まで
0721デフォルトの名無しさん
2005/07/02(土) 17:49:10#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *s = malloc(32);
int v;
fgets(s, 32, stdin);
v = strtol(s, NULL, 2);
printf("%d\n", v);
free(s);
return 0;
}
0722デフォルトの名無しさん
2005/07/02(土) 17:57:25無意味な動的メモリ確保も然り乍ら、31ビット入力という中途半端さは一体なんなんだろう。
0723デフォルトの名無しさん
2005/07/02(土) 18:00:18配列を使わないっていう制約だからじゃねーの?
0724デフォルトの名無しさん
2005/07/02(土) 18:23:01こんなもんでどうよ。
#include <stdio.h>
int main()
{
int n = 0, c;
while ((c = getchar()) != EOF && c == '0' || c == '1') {
n <<= 1; n |= (c - '0');
}
printf("%d\n", n);
return 0;
}
0725デフォルトの名無しさん
2005/07/02(土) 18:31:03あ、whileの条件式間違ってる
while ((c = getchar()) != EOF && (c == '0' || c == '1'))
にしてくれや
0726デフォルトの名無しさん
2005/07/02(土) 18:34:48#include <stdio.h>
#include <stdlib.h>
#define LF 0x0a
int main( void )
{
unsigned long int num, inp;
printf( "input binary digit " );
num =0;
while( LF != (inp = getchar() )) {
num <<= 1;
if( '1' == inp ){
num |= 1;
}
else if( '0' == inp ){
}
else{
fprintf( stderr, "input error!\n" );
return 1;
}
}
printf( "%d\n", num );
return 0;
}
0728デフォルトの名無しさん
2005/07/02(土) 19:30:17[2] 問題文(含コード&リンク):長さ100の配列にランダムな文字('a'-'z' or 'A'-'Z' or '0'-'9')を格納し、
何か1文字を入力し、入力された文字がいくつ格納されているか表示しなさい
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):VS .net2003
[3.3] 言語:C
[4] 期限:7月3日まで
[5] その他の制限:特に無し・・・のはず
おねがいします。ランダム文字がわかりませんorz
0729デフォルトの名無しさん
2005/07/02(土) 19:49:03#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define S "abcdefghijklmnopqrstuvwxyz" \
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
"0123456789"
int main(void) {
const char * s = S;
const size_t len = sizeof(S)-1;
char a[100];
int i, c, n = 0;
srand((unsigned int)time(0));
for (i = 0; i < 100; ++i) a[i] = s[rand()%len];
if ((c = getchar()) == EOF) return 1;
for (i = 0; i < 100; ++i) if (a[i] == c) ++n;
printf("%c は %d個\n", (char)c, n);
return 0;
}
0730>>728
2005/07/02(土) 19:58:43#include <stdlib.h>
#include <time.h>
int main(void)
{
char ch,buff[64]={'\0'},dim[100];
int i = 0,counter = 0;
srand(time(NULL));
for(ch = 'a';ch <= 'z';ch++,i++) buff[i] = ch;
for(ch = 'A';ch <= 'Z';ch++,i++) buff[i] = ch;
for(ch = '0';ch <= '9';ch++,i++) buff[i] = ch;
const size_t length = strlen(buff) + 1;
for(i=0;i<100;i++) dim[i] = buff[rand() % length];
printf("検索する文字を入力してくれ(a-z A-Z 0-9):");
ch = getchar();
printf("dim[100] = ");
for(i=0;i<100;i++){
printf("%c",dim[i]);
if(dim[i] == ch) counter++;
}
printf("\ndim[100]から%cを%d個検索した\n",ch,counter);
return 0;
}
0731730 訂正
2005/07/02(土) 20:02:46#include <stdlib.h>
#include <time.h>
int main(void)
{
char ch,buff[64]={'\0'},dim[100];
int i = 0,counter = 0;
srand(time(NULL));
for(ch = 'a';ch <= 'z';ch++) buff[i++] = ch;
for(ch = 'A';ch <= 'Z';ch++) buff[i++] = ch;
for(ch = '0';ch <= '9';ch++) buff[i++] = ch;
const size_t length = strlen(buff) + 1;
for(i=0;i<100;i++) dim[i] = buff[rand() % length];
printf("検索する文字を入力してくれ(a-z A-Z 0-9):");
ch = getchar();
printf("dim[100] = ");
for(i=0;i<100;i++){
printf("%c",dim[i]);
if(dim[i] == ch) counter++;
}
printf("\ndim[100]から%cを%d個検索した\n",ch,counter);
return 0;
}
0732デフォルトの名無しさん
2005/07/02(土) 20:08:06[2] 問題文(含コード&リンク):
ABCの3つの文字が
AAAAAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCCCCCC
のように順に並んでいます。
この列のなかから、最初のA(は分かりますが)と最後のA
同様に、最初のBと最後のB
最初のCと最後のCが配列の何番目にあるかを
二分検索を応用して与えなさいというのです。
二分検索は分かるのですが・・・。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):BorlandC無料のです。
[3.3] 言語:C
[4] 期限:2005年07月04日まで
[5] その他の制限:
一通り、C言語は文法は習いました。
0733730
2005/07/02(土) 20:09:09const size_t length = strlen(buff) + 1;
↓
const size_t length = strlen(buff);
0734デフォルトの名無しさん
2005/07/02(土) 20:09:39ありがとうございました
0735デフォルトの名無しさん
2005/07/02(土) 20:44:23[2] 問題文:glutとC言語により、樹木曲線を表示するプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ:Borland C++ 5.5.1
[3.3] 言語:C
[4] 期限:2005年7月4日10:00まで
[5] GLUTを使用
自分なりに考えてみたんですが、うまく表示されませんorz
tree関数のところで間違ってると思うんですが。
よろしくお願いします。
0736735
2005/07/02(土) 20:45:09#include <GL/glut.h>
#include <math.h>
#define PI 3.1415926535
#define RAD(c) ((PI * (c)) / 180.0)
#define rate 0.5 //主枝に対する分枝の長さ
#define turn 45.0 //分枝の角度
double x=0.0, y=0.0, angle=90.0, length=0.5;
int n;
void tree(int n, double length, double angle);
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3d(100.0, 0.0, 0.0);
glBegin(GL_LINE_STRIP);
tree(n, length, angle);
glEnd();
glFlush();
}
0737735
2005/07/02(土) 20:46:35#include <GL/glut.h>
#include <math.h>
#define PI 3.1415926535
#define RAD(c) ((PI * (c)) / 180.0)
#define rate 0.5 //主枝に対する分枝の長さ
#define turn 45.0 //分枝の角度
double x=0.0, y=0.0, angle=90.0, length=0.5;
int n;
void tree(int n, double length, double angle);
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3d(100.0, 0.0, 0.0);
glBegin(GL_LINE_STRIP);
tree(n, length, angle);
glEnd();
glFlush();
}
0738735
2005/07/02(土) 20:48:15void tree(int n, double length, double angle)
{
x=x+length*sin(RAD(angle)); // 枝の終点のx座標を計算
y=y+length*cos(RAD(angle)); // 枝の終点のy座標を計算
glVertex2d(x, y); //枝の表示
if (n>0){
tree(n-1, length*rate, angle-turn); //右部分枝の描画 (再帰呼び出し)
tree(n-1, length*rate, angle+turn); //左部分枝の描画 (再帰呼び出し)
}
}
int main(int argc, char *argv[])
{
printf("n="), scanf("%d",&n); //次数nの入力
glutInit(&argc, argv);
glutInitWindowSize(1200, 800);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
0739デフォルトの名無しさん
2005/07/02(土) 20:59:00http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/648.txt
0740匿名
2005/07/02(土) 21:50:06[2] 問題文(含コード&リンク):30000までの素数をエラトステネスのふるいにより
求めよ。何番目の素数を求められるようにする。ex.3番目の素数は5。
素数を与えたときにそれが何番目の素数であるかを表示。
これを1つのプログラムにしなさい。という問題です。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++/
[4] 期限:2005年07月04日12:00まで または 無期限 のいずれか
[5] その他の制限:特にありません。
宜しくお願いします。
0741デフォルトの名無しさん
2005/07/02(土) 22:14:18[2]素数かどうかを判定する関数isprimeを作成し、
2から1000までの素数を
10列の表として表示するプログラムを
作成しなさい
[3.1]OS WINDOWS
[3.2]gcc
[3.3]C言語
[4]月曜日までです。
よろしくお願いします。
[5]
0742デフォルトの名無しさん
2005/07/02(土) 22:29:05#include <stdio.h>
int isprime(int n) {
int i;
for (i = 2; i <= n / 2; i++) if (n % i == 0) return 0;
return 1;
}
int main(void)
{
int i, j;
for (i = 2, j = 0; i <= 1000; i++)
if (isprime(i)) {
++j;
printf("%4d", i);
if (!(j % 10)) printf("\n");
}
}
0743デフォルトの名無しさん
2005/07/02(土) 22:46:23#include <algorithm>
#include <iostream>
#include <vector>
std::vector<bool> sieve_of_eratosthenes(int upper) {
std::vector<bool> integers(upper + 1, true);
integers[0] = integers[1] = false;
for (int i = 2; i <= upper / 2; ++i) {
int notprime = i;
while ((notprime += i) <= upper) integers[notprime] = false;
}
return integers;
}
std::vector<int> make_primes(int upper) {
std::vector<bool> sieve(sieve_of_eratosthenes(upper)); std::vector<int> result;
for (int i = 2; i <= upper; ++i) if (sieve[i]) result.push_back(i);
return result;
}
int main() {
std::vector<int> primes = make_primes(30000); int n;
std::cout << "非正数の入力で終了" << std::endl;
std::cin >> n;
while (n > 0) {
if (n > 30000) std::cout << "範囲外" << std::endl;
else {
std::vector<int>::iterator pos = std::lower_bound(primes.begin(), primes.end(), n);
if (*pos == n) std::cout << pos - primes.begin() + 1 << "番目" << std::endl;
else std::cout << "素数でない" << std::endl;
}
std::cin >> n;
}
}
0744デフォルトの名無しさん
2005/07/02(土) 23:15:13[2] 問題文:数あてゲームを作れ。1〜9までまでの乱数を使い、
入力した数字が違っていた場合は大小によってメッセージを変える。
そして正解の場合は「正解!」と表示し、再度遊ぶかどうか尋ねる。
「Y」の場合は続行し、「N」だったら終了する。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:Cのみ
[4] 期限:7月4日
[5] その他の制限:
よろしくお願いします。
0745デフォルトの名無しさん
2005/07/02(土) 23:21:15YでもNでもなかったらどうしたらいいんだ?
0746デフォルトの名無しさん
2005/07/02(土) 23:25:49ま、いいや。Nで終了、その他で続行。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main(void) {
int n, u;
char str[2];
srand((unsigned)time(NULL));
do {
n = rand() % 9 + 1;
do {
printf("?:"); scanf("%d", &u);
if (n > u) printf("more large");
else if (n < u) printf("more small");
} while (n != u);
printf("正解!再度遊ぶ?");
scanf("%2s", str);
} while (strcmp(str, "N"));
return 0;
}
0747744
2005/07/02(土) 23:29:240749デフォルトの名無しさん
2005/07/02(土) 23:33:18それならば
} while (strcmp(str, "N"));
を
} while (!strcmp(str, "Y"));
に変更してくれ
0750デフォルトの名無しさん
2005/07/02(土) 23:37:04すまんが
char str[2];
を
char str[4];
に変更。
0753デフォルトの名無しさん
2005/07/02(土) 23:57:40[2] 問題文(含コード&リンク):
次の機能を持つメールアドレス管理プログラムを作成せよ
(1) データの新規登録、削除、検索。
(2) データのファイルへの保存と、ファイルからの読み込み。
(3) 保存されているデータを姓のアルファベット順で一覧表示
※データの内容は、姓、名前(ともにローマ字表記)、メールアドレスの3要素とする
データはリスト構造で管理すること
※プログラム開始時に保存されているファイルを読み込み、終了時にその時点のすべての
データをファイルに保存するようにすること
※上の(1)から(3)は次のようなメニュー画面から選択できるようにすること
1. 新規登録
2. 一覧表示
3. 削除
4. 終了
-「2. 一覧表示」が選択された時はその時点のすべてのデータを姓のアルファベット順で一覧表示すること
-「3. 削除」を選択した時は,検索する姓または名前を入力させ
それが存在する場合はデータの内容を表示後、「処理: a. 削除する b. なにもしない」の
メニューの中から選択させるようにすること
[3] 環境
[3.1] OS:Windows/Linux/等々 Windows
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C/C++/どちらでも可 のいずれか C
[4] 期限:yyyy年mm月dd日hh:mmまで または 無期限 のいずれか 7月3日
よろしくお願いします。
0754デフォルトの名無しさん
2005/07/02(土) 23:58:35遅かったけど一応作ったからAGE
内容的にはベターCって感じでC++を使っている。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/650.txt
0755デフォルトの名無しさん
2005/07/02(土) 23:58:520756デフォルトの名無しさん
2005/07/03(日) 00:17:06アドレス帳つかえ。
次。
0757匿名
2005/07/03(日) 00:31:050758デフォルトの名無しさん
2005/07/03(日) 00:41:10> 姓のアルファベット順で一覧表示
同姓の場合は?
0759デフォルトの名無しさん
2005/07/03(日) 00:47:36その場合は名前を比較して、名前のアルファベット順にしてください。
無理そうなら同姓の場合は考えなくてもいいです。
お願いします。
0760C++お願いします。
2005/07/03(日) 00:52:49[2] 問題文(含コード&リンク):10進6ケタの自然数を16進表示するプログラム。
7進8ケタの自然数を10進表示するプログラム
7進8ケタの自然数を3進表示するプログラム
の3問です。いきなり3問もすいません。お願いします。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++です。
[4] 期限:2005年7月5日23:59までです。
[5] その他の制限:無いです。
0761デフォルトの名無しさん
2005/07/03(日) 01:05:40#include <stdio.h>
#include <stdlib.h>
int main()
{
char buf[7];
int n;
fgets(buf, sizeof buf, stdin);
n=atoi(buf);
printf("%x", n);
return 0;
}
0762デフォルトの名無しさん
2005/07/03(日) 01:32:01ありがとうです!
0763デフォルトの名無しさん
2005/07/03(日) 01:49:063問が1つのプログラムにまとまってる。
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
std::string to_radix_n(unsigned int x, unsigned int n) {
int index = 0;
std::string s, characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
do s.push_back(characters.at(x % n)); while (x /= n);
std::reverse(s.begin(), s.end());
return s;
}
unsigned int from_radix_n(std::string s, unsigned int n) {
unsigned int x = 0;
std::string characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (std::string::size_type i = 0, len = s.length(); i < len; ++i)
(x *= n) += static_cast<unsigned int>(characters.find(std::toupper(s[i])));
return x;
}
int main() {
std::string s;
std::cin >> s;
std::cout << to_radix_n(from_radix_n(s, 10), 16) << std::endl;
std::cin >> s;
std::cout << to_radix_n(from_radix_n(s, 7), 10) << std::endl;
std::cin >> s;
std::cout << to_radix_n(from_radix_n(s, 7), 3) << std::endl;
}
0764C++お願いします。
2005/07/03(日) 02:40:27やってもらって悪いのですが、
エラー出てしまうんですけど…
私の方に問題あるのですかね?
本当にプログラム初心者なのでわかりません。
本当にすいません。
0765デフォルトの名無しさん
2005/07/03(日) 02:43:550766デフォルトの名無しさん
2005/07/03(日) 02:53:560767C++お願いします。
2005/07/03(日) 02:54:40貼り付けて実行してるんですけど、
黒い画面が出ないんです…くだらない質問で
ごめんなさい。
0768デフォルトの名無しさん
2005/07/03(日) 02:56:260769C++お願いします。
2005/07/03(日) 02:56:54自分それです。これだとちょっと違うんですか?
0770デフォルトの名無しさん
2005/07/03(日) 02:58:09VC++6.0ではpush_back()がbasic_string<>のメンバじゃないんだね
0772デフォルトの名無しさん
2005/07/03(日) 03:01:19効率は落ちるけど。
0773763
2005/07/03(日) 03:01:31do s.push_back(characters.at(x % n)); while (x /= n);
を
do s += characters.at(x % n); while (x /= n);
では?
0774763
2005/07/03(日) 03:01:480775デフォルトの名無しさん
2005/07/03(日) 03:04:120776C++お願いします。
2005/07/03(日) 03:05:04の行にメンバではありません。って出ます。
16行目の(x *= n) += static_cast<unsigned int>(characters.find(std::toupper(s[i])));
にtoupper stdのメンバではありません。って出ます。
0777デフォルトの名無しさん
2005/07/03(日) 03:09:21そのコンパイラでC++はやめたほうがいいよ。
0778763
2005/07/03(日) 03:09:23ちゃんと>>772-774読んでる?
std::toupper→toupperに変更。改めて言うけど、君の使っているソフトが
イカレテいるために、わざわざプログラムを改悪(というよりも間違ったものに)
しているんだからね。
0779C++お願いします。
2005/07/03(日) 03:10:0316行目もなにか問題あるんでしょうか?
0780デフォルトの名無しさん
2005/07/03(日) 03:11:13#include <cctype> --> #include <ctype.h>
std::toupper() --> toupper()
でどうよ。
0781C++お願いします。
2005/07/03(日) 03:14:56わざわざ。
出来ました。みなさんほんとありがとうございます。
0783デフォルトの名無しさん
2005/07/03(日) 03:19:000784デフォルトの名無しさん
2005/07/03(日) 03:22:37ま、コピったのかな、それを。
cctype.hをインクルードしておきながら
using宣言も使わずに
toupper()とするのはまあ間違いと言われかねないが。
ctype.hをインクルードするか
using宣言を書いておけば
まあ間違いとは言えないだろう。
0785C++お願いします。
2005/07/03(日) 03:22:39そんな非情じゃないですw。
これはそんないかれたコンパイラなんですか?
0786784
2005/07/03(日) 03:23:47>>785
要するに、C++標準準拠度が低いというだけ。
もっとも、当時はそれでも使われていたし、今でもそれを使っている
現場は結構多いけどな
0787デフォルトの名無しさん
2005/07/03(日) 03:24:01はい。世界標準規格に沿ったプログラムを書いてもコンパイルできません。
0788デフォルトの名無しさん
2005/07/03(日) 03:26:07単に古い。せっかくMSがただでもっと新しいのを提供して
くれてるんだから、そっちを使ったほうがいい。
Microsoft Visual C++ Toolkit 2003 質問箱
http://pc8.2ch.net/test/read.cgi/tech/1109618655/
0789C++お願いします。
2005/07/03(日) 03:27:04またプログラムが変わってくるって事ですか?
ちなみにこの授業の教授はプログラム一切分からないんですよw。
大学院生が全部見させられてるらしいです。
授業で黒板にJABAって書いてましたから。
0790デフォルトの名無しさん
2005/07/03(日) 03:28:36だから、手前味噌でなんだが>>763が正しい。
0791デフォルトの名無しさん
2005/07/03(日) 03:28:42「VC++6.0でもコンパイル可能で、標準に準拠したプログラム」
を書けばよい。
ただし、今の時代にわざわざそんな無駄な苦労をする意味は全く無い
と言ってよい。
学習の障害になるだけだ。
0792C++お願いします。
2005/07/03(日) 03:29:44全然知らなかったです。
未だにポケベル使ってる様な感じで解釈します。
0793763
2005/07/03(日) 03:31:29int index = 0;
0794デフォルトの名無しさん
2005/07/03(日) 03:34:21授業が>>789みたいな感じなら、
たぶん>>763の回答は、担当教授の想定とは随分違うものなんじゃないかな(w
時には授業のレベルに合わせることも必要だろう、学生のテクニックとして。
0795デフォルトの名無しさん
2005/07/03(日) 03:50:23どなたか恵んでください。m(_ _)m
0796デフォルトの名無しさん
2005/07/03(日) 04:44:030797デフォルトの名無しさん
2005/07/03(日) 11:21:33■ ■ 違う板にコピペすると、四角の枠の中に
■ ■ メッセージとURLが現れる不思議な絵。
■ ■
■ ■ (その仕組みがリンク先に書いてある)
■ ■
■ ■ この原理を応用すると、まったく新しい
■ ■ コピペが作れる予感。
■■■■■■■■■■■■■■■■
0798デフォルトの名無しさん
2005/07/03(日) 11:34:010800デフォルトの名無しさん
2005/07/03(日) 14:40:370801デフォルトの名無しさん
2005/07/03(日) 14:49:56[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
初期状態が次のようになっている8パズルがある。
これを状態空間で表して、初期状態を2回展開して得られる全ての状態に対して、
縦型探索により解を求めよ。
<初期状態(○は空)>
1 2 ○
4 5 3
7 8 6
<目標状態>
1 2 3
4 5 6
7 8 ○
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):Borland C
[3.3] 言語:C
[4] 期限:7月5日まで
[5] その他の制限:
プログラムのソースの他に解の探索経路も提出することになっているので、
探索経路も出力させなければならない。
0802デフォルトの名無しさん
2005/07/03(日) 15:49:43ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/652.c
0803デフォルトの名無しさん
2005/07/03(日) 15:52:59>土曜日のごご六時ごろまでです。
0804デフォルトの名無しさん
2005/07/03(日) 17:14:08実効例もないし。
0805デフォルトの名無しさん
2005/07/03(日) 17:14:310806デフォルトの名無しさん
2005/07/03(日) 17:46:05返事を待つのが面倒くさくなった
#include <stdio.h>
float avg(int n, float data, float old_avg) {
return (old_avg * (n - 1) + data) / n;
}
int main(void) {
float old_avg = 0., data;
int n = 0;
while (1) {
printf("入力:"); scanf("%f", &data); ++n;
if (data == 0.) break;
printf("平均:%f\n", old_avg = avg(n, data, old_avg));
}
return 0;
}
0807デフォルトの名無しさん
2005/07/03(日) 18:07:21賛成の方も反対の方も、このスレで自分は賛成か反対かをお書きください。
プログラム技術板に強制ID制を導入すべきか否か
http://etc4.2ch.net/test/read.cgi/vote/1118144381/
理由などの記入は別に構いません。
<<賛成>>か<<反対>>かだけ御記入頂ければ結構です。
ちなみに、当たり前ですが運営の方にIPが見えているので、1日ごとにIDが変わるからといって多重投稿しないでください。
0808デフォルトの名無しさん
2005/07/03(日) 18:24:58こんな感じでどうやろ?
#include <stdio.h>
float avg(int n,float in,float Avg){
double All=0;
if(n<1) return in;/*多分、一個目の呼び出しなので平均値無し。*/
All = Avg*n;/*合計値を復元。*/
return (All+in)/(n+1);/*さらに平均値にして返却。このとき割れない数字だと計算誤差が出る。w*/
}
int main(){
float Avg=0,In;
int N=0;
while(1){
puts("Input Type float");
scanf("%f",&In);
if(In == 0.0f) break;
Avg = avg(N++,In,Avg);
printf("Result No.%d:Ave(%f)\n",N,Avg);
}
puts("End");
return 0;
}
0809808
2005/07/03(日) 18:28:07081012
2005/07/03(日) 20:40:00[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=653
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++
[4] 期限:7月5日まで
[5] その他の制限:なし
どなたかお願いします。
0811デフォルトの名無しさん
2005/07/03(日) 20:56:55[1]C言語演習
[2]Gccコンパイラ
[3]期限 7月6日水
[4]環境RedHat Linux
問題
メニュー表示をし,ステップ「1」として,関数y = 2x2において,x = 0 – 10 ま
でを0.01 刻みで1001 個のx,yデータセットを作成して,ファイル名function.datで各自のホ
ームディレクトリ(または,カレントディレクトリ)にバイナリ形式で保存する.ステ
ップ「2」として,作成したfunction.datからn個目のx,yデータセットを抽出して,ファイ
ル名n_xy_ascii.dat(nは入力した数字)としてASCII形式で保存する.以上の様に動作す
るプログラムを作成しなさい
よろしくお願いします
0812デフォルトの名無しさん
2005/07/03(日) 21:02:32授業でならっとるか、すでに提出した分のがあるはず>>811
0813デフォルトの名無しさん
2005/07/03(日) 21:20:13[2] 問題文:データ構造
入力した文字列を、文字列の昇順になるようにリストに登録する
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): VC++ 6.0
[3.3] 言語:C++[4] 期限:7月4日
実行は出来るのですが、データを入力してると(例:B、A、C)
問題が発生したため、c1005.exe を終了します。と出て
終わってしまいます、*の場所が多分何処か間違ってると思います
ご教授お願いします
0814デフォルトの名無しさん
2005/07/03(日) 21:22:15#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct list{
charname[100];
struct list *next;//自己参照構造体
}NODE;
void list_out(NODE *);
void main(void)
{
NODE *new,*head,*p,*back;
char name[100];
printf("***文字列の昇順に登録***\n");
printf("文字列入力 (CTRL+Zで終了)\n");
head=NULL;*
while(printf("->"),gets(name) !=NULL){
new = (NODE *)malloc(sizeof(NODE));
if(new == NULL){
printf("メモリを確保できません!!\n");
exit(1);
}
0815813
2005/07/03(日) 21:22:51strcpy(new->name,name);//文字列登録
if(head==NULL){*//リストの先頭なら
/*ポインタのつなぎ換え*/
new->next=head;*
head=new;*
}
else{
p=head;//挿入場所を探す
while(p != NULL && strcmp(p->name,new->name) < 0){*
back=p;
p=p->next;*
}
/*ポイントのつなぎ替え*/
back->next=new;*
new->next= p;*
}
}
printf("\n***リストの内容***\n");
list_out(head);*
}
voidlist_out(NODE*p)
{
while(p!='\0'){
printf("%s\n",p->name);
p=p->next;
}
}
0816811
2005/07/03(日) 21:50:01いえ、本当に何もないんです、、、いきなりこの課題だけをぽんと出された感じでして、、、(汗)
0817デフォルトの名無しさん
2005/07/03(日) 23:29:56ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/654.txt
0818デフォルトの名無しさん
2005/07/04(月) 02:11:16[2] 問題文(含コード&リンク):
文字列を入力し、それを左右入れ替えて出力するプログラムを書け。
例えば、"ABCD"と入力したら"DCBA"と出力する
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):VisualC++
[3.3] 言語:C
[4] 期限:7/7
[5] その他の制限:関数は使わないでお願いします
簡単ですんません…
0819デフォルトの名無しさん
2005/07/04(月) 03:15:17関数を使わないと無理。
0820デフォルトの名無しさん
2005/07/04(月) 03:53:38入力が 1000 番地から書き込まれていて、出力を 2000 番地から書き込むんだったら
int main(void){
char * in=(char *) 1000, * out=(char *) 2000;
char *p=in,*q=out;
while(*p++!='\0');
while(p>=in){
*q++=*p--;
}
q='\0';
return 0;
}
0821デフォルトの名無しさん
2005/07/04(月) 04:13:200822デフォルトの名無しさん
2005/07/04(月) 04:40:26関数使いまくりですが初心者なので許してください(><)
#include <stdio.h>
int main(){
int i;
char str[250], *p;
p = str;
gets(str);
for (; *p; p++);
do {
p--;
putchar(*p);
} while (p != str);
putchar('\n');
return 0;
}
0823デフォルトの名無しさん
2005/07/04(月) 04:42:400824デフォルトの名無しさん
2005/07/04(月) 04:51:18関数無しでどうやれと?
Cで
>820
文字列として後ろからコピー、に失敗してるぞ(w
0825デフォルトの名無しさん
2005/07/04(月) 09:38:37[2] 問題文(含コード&リンク): 平面座標の点をセットする構造体を考えました。
3種類の構造体を初期化する関数を参考にしてshow関数と同じ機能をする
p_show関数の|==1==|の部分を記しなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Visual C++
[3.3] 言語:C
[4] 期限:なるべく早くお願いします。
問題文は以下です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/655.txt
0826デフォルトの名無しさん
2005/07/04(月) 09:58:53printf("(%3.1f,%3.1f)\n",d->x,d->y);
0827デフォルトの名無しさん
2005/07/04(月) 10:03:160828デフォルトの名無しさん
2005/07/04(月) 10:05:22キーボードから入力された文字が文字列str内にあるかどうか判断し、存在すれば次の文字を入力させ、存在しなければプログラムを終了する。
文字列の定義 char
str[]="ABCD";
入力ー>A
あります。
入力ー>D
あります。
入力ー>E
ありません。
0829デフォルトの名無しさん
2005/07/04(月) 10:34:24ありがとうございます!
0830デフォルトの名無しさん
2005/07/04(月) 11:24:35[1] 授業単元: プログラミングとその応用
[2] 問題文(含コード&リンク): 次のような「エラトステネスのふるい」のアルゴリズムを用いて、n以下の素数を求めるプログラムを作成せよ。
1.S={2...n}という整数の集合を考える。
2.Sが空集合で無い限り、次の(1)〜(3)を繰り返す。
(1)mをSの要素の最小値とする。このときmは素数である。
(2)Am = {k|k=am,k∈S,a∈Z}とする
(3)SからAmの要素を全て取り除いて、残りの集合をあらためてSとする
[3] 環境
[3.1] OS:Windows/Linux/等々 :Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C/C++/どちらでも可 のいずれか:C
[4] 期限:できれば今日の6時まで…
[5] その他の制限:授業では構造体を習いたてです。
市販の本などと同じ順番で習ってて、構造体の前までの課題です。
よろしくお願いします。
0831デフォルトの名無しさん
2005/07/04(月) 11:30:43まだ6.5時間あるから必死こいて検索しろ。
0832デフォルトの名無しさん
2005/07/04(月) 11:31:52>1を読んでテンプレを書くように。
こういうプリミティブな入力は、CとC++とでは教えることが随分変わるからな。
0833デフォルトの名無しさん
2005/07/04(月) 11:47:06[2] 問題文(含コード&リンク): 1つ以上のファイル名を引数として、各ファイルの行数・単語数・バイト数、
および全ファイルの行数・単語数・バイト数のそれぞれの合計を表示するプログラムを作成せよ。
※単語とは、「isspace()が真になる文字の列」で区切られている文字列であるとする。
isspace()を使うには、ctype.hをインクルードしておく必要がある。
想定される実行例
%wcount a.c b.c c.c d.c
行数 単語数 バイト数 ファイル名
100 211 1590 a.c
33 90 637 b.c
70 154 1069 c.c
171 474 3237 d.c
374 929 6533 合計
プログラム名をwcountとする。
[3] 環境
[3.1] OS:Windows/Linux/等々 :Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C/C++/どちらでも可 のいずれか:C
[4] 期限:できるだけ早くお願いします。
[5] その他の制限:初歩的な内容は、一応ひととおり習いました。
マジ困ってるのでお願いします!
0834830
2005/07/04(月) 11:48:23ほんとわからないんでお願いします…(´・ω・`)
0835デフォルトの名無しさん
2005/07/04(月) 11:56:52ちょっとgcc使える環境にないんで検証はできないから思いついた流れだけ。
とりあえず元のSを格納した配列(Src[])と、Amを格納する配列(am[])
現在のSを示す配列(flags[])を用意して見つかったkは順次am[]に格納していって
src[]上でkに該当する要素のインデックスナンバーをflags[]に順次格納
んで条件分岐でflags[]にすでにあるのとかぶったらそれはなかったものとすれば
Amを取り除いたSを擬似的に作れないか?まぁ単なる思いつきだし、無駄がかなりあると思うが・・・
ガンガレ
0836デフォルトの名無しさん
2005/07/04(月) 12:00:27一般的なエラトステネスの篩のソースなど、このスレでもgoogleでもいくらでも見つかるだろ。
そのうち、問題文の処理と同じような戦術を採っているものを探し出して適当に書き換えればいいと思うのだが。
0837デフォルトの名無しさん
2005/07/04(月) 12:01:09>>198と>>740で極めて似ている問題とその解答が出されているが。
0838デフォルトの名無しさん
2005/07/04(月) 12:04:03検索の仕方も分からない厨房か?
0839デフォルトの名無しさん
2005/07/04(月) 12:07:12#include <stdio.h>
#include <string.h>
int main(void) {
for (;;) {
int c; const char str[] = "ABCD";
printf("入力->");
while ((c = getchar()) != EOF && c == '\n') ;
if (c == EOF) return 1;
if (strchr(str, c)) puts("あります。");
else {puts("ありません。"); break;}
}
return 0;
}
0840デフォルトの名無しさん
2005/07/04(月) 13:48:370841?
2005/07/04(月) 14:29:07[2] 問題文(含コード&リンク):
n次正方行列の逆行列を余因子行列を経由して求め、
a11= ,a12= ,…
a21= ,a22= ,…
の形で表示させる。もとの行列の成分はscanf で取得する。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):bcc
[3.3] 言語:C
[4] 期限:早ければ早いほど
0842デフォルトの名無しさん
2005/07/04(月) 14:49:40貴様、TDUだな!
0843デフォルトの名無しさん
2005/07/04(月) 14:59:320844デフォルトの名無しさん
2005/07/04(月) 15:02:10納得
0845デフォルトの名無しさん
2005/07/04(月) 15:14:43>>841
で、あなたは何処?
略称。
0847デフォルトの名無しさん
2005/07/04(月) 15:32:43[2] 問題文(含コード&リンク):
リストのノード順序を,逆の順序にする関数.
(データを入れ替えではなく、next の値の変更により,逆の順序にする)
[3] 環境
[3.1] OS:vineLinux
[3.2] コンパイラ(バージョgcc
[3.3] 言語:C
[4] 期限:2005年7月7日24:00まで
お願いしますm(_ _)m
0848デフォルトの名無しさん
2005/07/04(月) 15:32:58地方か文系の人?
0849デフォルトの名無しさん
2005/07/04(月) 16:10:32双方向?単方向?
0850デフォルトの名無しさん
2005/07/04(月) 16:14:43双方向で逆順にするようなバカな問題はない。
0851デフォルトの名無しさん
2005/07/04(月) 17:09:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/656.txt
あんま綺麗に実装できんかった。
freeとか不正引数対処とかは自分で判断して実装してな。
0852デフォルトの名無しさん
2005/07/04(月) 17:18:44http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/658.c
0853デフォルトの名無しさん
2005/07/04(月) 18:00:08[2] 問題文(含コード&リンク): チョーク入力型全波整流回路において電源電流とダイオード通過後の電流をプログラムにより解析する。
電圧源は正弦波。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++
[4] 期限:2005年07月06日12:00まで
0854デフォルトの名無しさん
2005/07/04(月) 18:01:24[2] 問題文(含コード&リンク):
符号なし整数xを右にnビット回転した値を返す関数rrotateと、
左にnビット回転した値を返す関数lrotate
unsigned rrotate(unsigned x, int n) { /* ・・・ */ }
unsigned lrotate(unsigned x, int n) { /* ・・・ */ }
を作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):bcc
[3.3] 言語:C
[4] 期限:明後日
よろしくお願いします
0855デフォルトの名無しさん
2005/07/04(月) 18:38:35unsigned rrotate(unsigned x, int n) {return x >> n | x << (32 - n);}
unsigned lrotate(unsigned x, int n) {return x << n | x >> (32 - n);}
0856デフォルトの名無しさん
2005/07/04(月) 18:40:00ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/659.txt
再帰バージョン
0857デフォルトの名無しさん
2005/07/04(月) 18:42:04#include <limits.h>
unsigned rrotate(unsigned x, int n) {
static const unsigned width = sizeof(unsigned) * CHAR_BIT;
return x << n % width | x >> (width - n % width);
}
unsigned lrotate(unsigned x, int n) {
static const unsigned width = sizeof(unsigned) * CHAR_BIT;
return x >> n % width | x << (width - n % width);
}
0858デフォルトの名無しさん
2005/07/04(月) 18:53:08ちょっと遅かったけど折角作ったのでUP
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/660.txt
0859デフォルトの名無しさん
2005/07/04(月) 18:57:42せめてUpper >>= n;
とは書けなかったのだろうか。つーか、一時変数イラネ。
0860デフォルトの名無しさん
2005/07/04(月) 19:05:05[2] 問題文(含コード&リンク): 方形波と三角波を選択可能にして、選んだ信号を発生させるプログラムを作成せよ。(
1kHz)
[3] 環境
[3.1] OS:Windows2000
[3.2] コンパイラ(バージョン): VC++ 6.0
[3.3] 言語:C++
[4] 期限:来週末まで
[5] その他の制限:
どうかよろしくお願いしますm(_ _)m
0861デフォルトの名無しさん
2005/07/04(月) 19:08:27発生ってなんだよ。
なんか湧かすのか?
0862デフォルトの名無しさん
2005/07/04(月) 19:11:25どこにどういう形式で出力するのかな?
0863デフォルトの名無しさん
2005/07/04(月) 19:14:10あんまりグチャグチャなコードは書きたくないんですよ。
読みやすいとは言いませんけど、自分で読みづらいコードはヤなんです。
まー、ほとんど癖なんですけどね〜。
0864デフォルトの名無しさん
2005/07/04(月) 19:14:400865デフォルトの名無しさん
2005/07/04(月) 19:35:34a = a op b;
よりは、a op= b;
のほうが通常効率がよいし、普通の香具師にとっては読みやすい
両者の違いは特にC++で演算子オーバーロードされている場合に重要なので、
後者のように書ける場合には、後者のように書く癖をつけたほうがいいぞ。
0866デフォルトの名無しさん
2005/07/04(月) 19:42:02float avg(int ,float ,float );
main()
{
float x,y;
int n;
printf("データを入力してください!");
n=1;
while(n){
printf("入力値%d= ",n);
scanf("%f",&x);
if(x == 0.0) break;
n++;
}
float avg(int n,float x,float y)
{
float b;
b = (x+y)/2;
return b;
}
このプログラム回らないんですけど、
どうしたら、回りますか??
教えてください。お願いします。
0867デフォルトの名無しさん
2005/07/04(月) 19:48:05悪いことは言わない。一から勉強しなおせ
0868デフォルトの名無しさん
2005/07/04(月) 19:49:14一から、勉強してます。
0869デフォルトの名無しさん
2005/07/04(月) 19:50:05なんならマイナスでもいいんだぞ。
0870デフォルトの名無しさん
2005/07/04(月) 19:54:34マイナスから、勉強してますが、なにか?
0871デフォルトの名無しさん
2005/07/04(月) 19:57:420872デフォルトの名無しさん
2005/07/04(月) 20:00:16そんなもんかな。
まー、一応気をつけることにするよ。
0873デフォルトの名無しさん
2005/07/04(月) 20:01:02書き方が足りませんでした。
時刻と振幅の値をテキストに出力する形式でお願いします。
0874デフォルトの名無しさん
2005/07/04(月) 20:03:35取ってと歯車つけるといいと思うよ。
0875デフォルトの名無しさん
2005/07/04(月) 20:05:12waveで鳴らすの作っちゃったオレはどうすればいいんだ?
やる気失せた・・・・・・・。
0877デフォルトの名無しさん
2005/07/04(月) 20:30:58[2]問題文:多重リスト(二重)。各セルを構造体で表現し、表全体はリストによってセルを結合。セルの構造体は右および下のセルを示すポインタ変数2つと、セル値として保持する文字列へのポインタ変数1つを持つものとし、動的にメモリ領域を割り当てる。
[3]環境
[3.1]OS:Windows
[3.2]コンパイラ cc
[3.3]言語:C
[4]期限:7月5日 10時
[5]その他の制限:・プログラムを起動すると、初期状態として、適当な行数x列数の表を生成する。この際、各セルの値は0とする。
・コマンドによって、表の表示、行および列の追加、挿入、移動、削除、表の保存復元、ヘルプ、終了の各操作を行うものとする。
というものです。初期化まで、また関数ごとでUPしてくれてもかまいません。よろしくお願いします。
0878デフォルトの名無しさん
2005/07/04(月) 20:42:05関数を引数をかいてないんじゃないのかい?
0879デフォルトの名無しさん
2005/07/04(月) 21:19:15ファイル出力くっつけた、こんなんでええんかな。
つーか1kHzって、1000Hzだったね。鬱だな。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/661.c
0881名無しさん
2005/07/04(月) 21:31:36[2] 問題文(含コード&リンク): 適当な自然数を入力し、素数判別をする。
素数でない場合、その数の約数は何でしょう?という
問題です。宜しくお願いします。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): MaicroSoft Visual C++ 6.0
[3.3] 言語:C++
[4] 期限:2005年7月7日23:59まで
[5] その他の制限:どこまで習っているか、等々
0882デフォルトの名無しさん
2005/07/04(月) 21:33:41行や列を挿入した場合、値はどうするんだ?
1行全て同じ値?
0883デフォルトの名無しさん
2005/07/04(月) 21:41:53MaicroSoftかぁ
0884デフォルトの名無しさん
2005/07/04(月) 21:46:460885デフォルトの名無しさん
2005/07/04(月) 21:47:38延長してもらったのか?もっと早く言ってくれ。。。
構文解析・算術評価の部分は出来てるから、がんばってやってみるが。
0886885
2005/07/04(月) 21:48:56俺が手をつけた部分は無意味だったようだ。
0887名無しさん
2005/07/04(月) 21:51:10笑われちゃいますね…
0888デフォルトの名無しさん
2005/07/04(月) 21:52:130889名無しさん
2005/07/04(月) 21:56:590890デフォルトの名無しさん
2005/07/04(月) 22:05:57http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/662.txt
0891デフォルトの名無しさん
2005/07/04(月) 22:26:41[2] 問題文(含コード&リンク):列挙型の問題です。ソースが長いのでアップローダのほうに
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=663
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): VC++ 6.0
[3.3] 言語:C++
[4] 期限:7月6日
[5] その他の制限:配列、ポインタを使用する。
どうかよろしくお願いしますm(_ _)m
0892名無しさん
2005/07/04(月) 22:27:33有難うございます。
0893デフォルトの名無しさん
2005/07/04(月) 22:45:06#include <stdio.h>
int main() {
printf("構造体に姓と血液型を追加");
return 0;
}
0894デフォルトの名無しさん
2005/07/04(月) 23:05:00http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/665.txt
0895デフォルトの名無しさん
2005/07/04(月) 23:09:24なんどもすいません。算術などはもちろんつけて欲しいです。
0897877
2005/07/04(月) 23:18:450898デフォルトの名無しさん
2005/07/04(月) 23:18:49[2] 問題文(含コード&リンク):y''(t)+3y'(t)+4y(t)=u(t),y(0)=0 y(t)を出力せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++
[4] 期限:なし
[5] その他の制限:差分方程式で近似する。逐次式を作る。・・・授業でC言語やってないんですけど宿題出ました。
お願いします。
0899877
2005/07/04(月) 23:29:48p:表データ(全てのセル値、数式の場合には計算結果の値)を表示(表の形で)。
P(大文字):pと同様に表データを表示するが、数式の場合には計算結果の値ではなく、数式をそのまま表示する。
i:行または列を挿入する。行の場合には行番号(1,2...)を列の場合には列番号(A,B...)をそれぞれコマンド引数で指定する。たとえば"i B"とした場合には
現在の表のA列とB列の間に新たな列Bが挿入され、元のB列、C列...は列番号が一つずつずれてC列D列...となる。
0900デフォルトの名無しさん
2005/07/04(月) 23:34:48ぶっちゃけ今できてる所だけでも作ったソース出さんと間に合わないと思う
今まったく手付かずなら>>885に期待するしかないかなw
なんでこんな課題がでてるのか不思議だw
0901877
2005/07/04(月) 23:37:47a:行または列を追加する。"a B"とした場合にはB列の後ろに新たな列を追加する。
d:行または列を削除する。"d B"とした場合にはB列を削除する。
m:行または列を移動する。ふたつの引数を用いる。"m B D"とした場合にはB列をD列の前に前に移動する。
s:外部ファイル表にデータを保存する。保存書式は任意。
o:sコマンドで保存した外部ファイルの読み込み、表を再構築する。
h:いわゆるヘルプコマンド。
q:プログラムを終了する。
だらだら書いてすみません。
0902デフォルトの名無しさん
2005/07/04(月) 23:38:08小規模のソフト一本分位の労力がかかるので結構手間がかかる。
一日でできるか怪しいので自分でも対策を打ってくれ。
僕はもう力つきそうだよ。
0903902!=885
2005/07/04(月) 23:40:05そっちに任せよう。
>>899
情報の後だし禁止。
0904デフォルトの名無しさん
2005/07/04(月) 23:40:52それぞれのメニュー項目ずつに分担するとかな。
0905デフォルトの名無しさん
2005/07/04(月) 23:46:300906デフォルトの名無しさん
2005/07/04(月) 23:50:43[2] 問題文:十進数を二進数に変換するプログラム制作
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:2005/07/08
[5] do while,配列を使う。
もうお手上げです。
とりあえず計算は、数値を2で割り余りを記憶し、商が0になるまで
計算し0になったら余りを逆にすればいいということはわかりました。
でもプログラムできない・・・・超初心者です。
0907デフォルトの名無しさん
2005/07/04(月) 23:52:46よく意味が分からんが、十進数で入力したのを
二進数で出力しろってこと?
数の進数なんか変換できないよ、表現上の問題だから。
できたとこまで揚げてみれば?
0908885
2005/07/05(火) 00:02:11俺のも完成するか分からんので言い訳を考えとくことを強く推奨。
0909906
2005/07/05(火) 00:04:16Enter Number 25
25 = 11001
↑みたいな感じになるプログラムです。
出来たところもなにも全くわからないのです(;_;
0910デフォルトの名無しさん
2005/07/05(火) 00:12:31それはこういうプログラムかね?
#include <stdio.h>
char* to_2(unsigned x, char* s) {
int index = 0, left = 0;
char temp;
do s[index++] = (x & 1) + '0'; while (x >>= 1);
s[index--] = '\0';
while (left < index) {
temp = s[left];
s[left] = s[index];
s[index] = temp;
++left;
--index;
}
return s;
}
int main(void) {
unsigned x;
char s[256];
printf("Enter Number:"); scanf("%u", &x);
printf("%u = %s", x, to_2(x, s));
}
0911906
2005/07/05(火) 00:24:03ぬぉぉ。コンパイラしたら、その通りでした!!!
あまり習ってない用語もびっしり・・・難しそう・・・
プログラム引数?っていうのですかね、それを使わなくても出来ますか?この処理は?
0912デフォルトの名無しさん
2005/07/05(火) 00:26:46結果の2進数を整数値で出すかcharで出すかで変わってくるんだが
charの場合だと
c(char型) v(INT型)ってすると
c= v+'0'ってすれば文字列になる ポインタか配列でまわせば普通に文字列なる
で最後に\0は絶対いれてね 文字列終わらないから
INTで出さないといけない場合は…
配列で結果を取り込んで一桁目の結果×1(10^0) 2桁目の結果×10(10^1)…
って足し算かな?Cだと^で累乗計算じゃないから関数使わんといけないけど
こんな感じでどう?
0913910
2005/07/05(火) 00:30:54まぁ落ち着け。コンパイラするって…「コンパイル」ね。言われた通り、
do〜whileと配列とを使っているだけ。あと、2進数って言うことだったから
2進数独特の処理になってる。もうちょっと教育的にすると(多分)次のように
なるハズ。
char* to_2(unsigned x, char* s) {
int index = 0, left = 0;
char temp;
do {
s[index++] = x % 2 + '0';
x = x / 2;
} while (x != 0);
s[index--] = '\0';
while (left < index) {
temp = s[left];
s[left] = s[index];
s[index] = temp;
++left;
--index;
}
return s;
}
0914デフォルトの名無しさん
2005/07/05(火) 00:31:03多分>>910が課題出した人の意図だと思うよ
0915877
2005/07/05(火) 00:38:330916906
2005/07/05(火) 01:05:15ご丁寧に有難うございます。
教育的というのはどのような意味なのでしょうか?
0917デフォルトの名無しさん
2005/07/05(火) 07:24:25二進数->十進数 >>718
0919デフォルトの名無しさん
2005/07/05(火) 09:05:52[2] aを入力してS=1/1+(1-2)/2+(1-2+3)/3.....(1-2+3-4......a)/aを表示するプログラム
aを入力してS=1/1+(1*2)/2+(1*2/3)/3.....(1*2/3*4......a)/aを表示するプログラム
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++
[4] 期限:今日の9時半まで
[5] その他の制限:FOR文つかうっぽい
すいません。時間があまりないのですが少し遅れてもいいのでお願いしますm(_ _)m
もう全然わかりません・・・
0920デフォルトの名無しさん
2005/07/05(火) 09:12:480921デフォルトの名無しさん
2005/07/05(火) 09:23:22http://pc8.2ch.net/test/read.cgi/tech/1120522752/
0922919
2005/07/05(火) 09:53:42ボーランドのC++です
0923デフォルトの名無しさん
2005/07/05(火) 10:26:14int main( void )
{
double S, n;
int a, i, j;
//
printf( "a = " ); scanf( "%d", &a );
for ( S = 0.0, i = 1; i <= a; i++ ) { for ( n = 0.0, j = 1; j <= i; j++ ) if ( j % 2 ) n += ( double )j; else n -= ( double )j; S += n / ( double )i; }
printf( "S = %f\n", S );
//
printf( "a = " ); scanf( "%d", &a );
for ( S = 0.0, i = 1; i <= a; i++ ) { for ( n = 1.0, j = 1; j <= i; j++ ) if ( j % 2 ) n /= ( double )j; else n *= ( double )j; S += n / ( double )i; }
printf( "S = %f\n", S );
return 0;
}
0924デフォルトの名無しさん
2005/07/05(火) 10:27:48先こされたか。
でもC++だって話なので一応うp。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/666.txt
0925デフォルトの名無しさん
2005/07/05(火) 11:22:34[2]問題文:1000以下の素数で、足しあわせると1000になるような二つの素数の組をすべて求めるプログラムを作れ
[3]環境
[3.1]OS:UNIX
[3.2]コンパイラ:gcc
[3.3]言語:C
[4]期限:7/8
[5]制限特に無し
よろしくお願いします
0926デフォルトの名無しさん
2005/07/05(火) 11:27:20[2] 問題文(含コード&リンク): 代数方程式f(x)=x^3+2x^2+2x+2=0の区間[-2,0]における実数解を求めよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): VC++ 6.0
[3.3] 言語:C++
[4] 期限:来週まで
[5] その他の制限:
なんとか、よろしくお願いします。
0927919
2005/07/05(火) 11:38:15まだ習ってないのでそれを使用しないでお願いしますm(__)m
0928デフォルトの名無しさん
2005/07/05(火) 11:42:38resultやnumは変数名なので、どんな名前でもいいんですが。
0929デフォルトの名無しさん
2005/07/05(火) 12:01:33result,numの扱われ方を見れ
それでも変数だとわからないなら、一から勉強しれ
0930デフォルトの名無しさん
2005/07/05(火) 12:02:210931919
2005/07/05(火) 12:06:240932デフォルトの名無しさん
2005/07/05(火) 12:30:440933デフォルトの名無しさん
2005/07/05(火) 12:31:470934デフォルトの名無しさん
2005/07/05(火) 12:40:000935デフォルトの名無しさん
2005/07/05(火) 13:49:560936デフォルトの名無しさん
2005/07/05(火) 14:05:230937デフォルトの名無しさん
2005/07/05(火) 14:55:05ゆとり教育の弊害だよな
0938デフォルトの名無しさん
2005/07/05(火) 15:02:580939デフォルトの名無しさん
2005/07/05(火) 15:10:05簡単に答えられる様になるか
脱キモ
0940デフォルトの名無しさん
2005/07/05(火) 18:36:26大学にゆとり教育も何も関係ないがな
0941877
2005/07/05(火) 18:36:310942デフォルトの名無しさん
2005/07/05(火) 18:37:34いやまてレスの流れを見ろ
0943デフォルトの名無しさん
2005/07/05(火) 18:39:43[2]問題文:二つの整数の最大公約数を再帰を使って求めよ
[3]環境
[3.1]OS:INUX
[3.2]コンパイラ:gcc
[3.3]言語:C
[4]期限:7/10
よろしくお願いします
0944デフォルトの名無しさん
2005/07/05(火) 18:41:46LINUX
0945デフォルトの名無しさん
2005/07/05(火) 18:42:490946デフォルトの名無しさん
2005/07/05(火) 18:54:28ゆとり教育世代の程度が総じて低いなら、大学の講義も学生にあわせて程度が低くなる。
0947デフォルトの名無しさん
2005/07/05(火) 19:19:36大学は講義のレベルを下げるようなことはしない。
0948デフォルトの名無しさん
2005/07/05(火) 19:27:27明治時代からだろ
0949デフォルトの名無しさん
2005/07/05(火) 19:32:030950デフォルトの名無しさん
2005/07/05(火) 19:44:100951デフォルトの名無しさん
2005/07/05(火) 19:45:32いいえ。
0952デフォルトの名無しさん
2005/07/05(火) 19:46:410953デフォルトの名無しさん
2005/07/05(火) 19:51:07名門大学では、大抵の場合、学生の大半がちゃんと理解しているから、講義の程度が変わらないというだけであって。
どんな大学の講義でも、大半の学生が理解してなさそうなことは、ちゃんと解説しているだろう?
0954デフォルトの名無しさん
2005/07/05(火) 19:51:39日本の大学の程度が低くなったのは戦後だよ。
0955デフォルトの名無しさん
2005/07/05(火) 19:56:32続ける場合は学歴板
0956デフォルトの名無しさん
2005/07/05(火) 20:07:22#include <stdio.h>
#include <stdlib.h>
int gdc(int m, int n) {
if ((m % n) == 0) {
return n;
} else {
return gdc(n, (m % n));
}
}
int main(int argc, char **argv) {
int num1 = 12;
int num2 = 8;
printf("gdc(%d,%d) = %d\n", num1, num2, gdc(num1, num2));
return 0;
}
0957891
2005/07/05(火) 20:17:290958デフォルトの名無しさん
2005/07/05(火) 20:25:410959デフォルトの名無しさん
2005/07/05(火) 20:47:27#include<iostream>
int main(void){
std::cout << -1.543689013 <<std::endl;
return 0;
}
0960デフォルトの名無しさん
2005/07/05(火) 21:01:19#include <stdio.h>
int main()
{
double x1, x0 = -1.0;
double limit = 1.0e-20;
double diff = 1.0;
while(diff > limit)
{
x1 = x0 - ( x0 * (x0 + 2) + 2 + (2 / x0)) / (3 * x0 + 4 + (2/x0) );
diff = x1 > x0 ? x1 - x0 : x0 - x1;
x0 = x1;
}
printf("ans : x = %g\n", x1);
return 0;
}
0961960
2005/07/05(火) 21:04:08> printf("ans : x = %g\n", x1);
を
> printf("ans : x = %.20f\n", x1);
とでもして、表示桁数増やしてくれ。
0962デフォルトの名無しさん
2005/07/05(火) 21:13:49#include <iostream>
double f(double x) { return ((x+2)*x+2)*x+2; }
double s(double x, double gp)
{ return gp*gp > 1e-20 ? s(x + gp, f(x) * f(x+gp) < 0 ? -gp/2 : gp) : x; }
int main(void) { std::cout << s(0, -2) << endl; }
0963デフォルトの名無しさん
2005/07/05(火) 21:15:12○std::endl
0964960
2005/07/05(火) 21:17:270966デフォルトの名無しさん
2005/07/05(火) 22:59:06[2] 問題文(含コード&リンク):
引数として2進数を文字列で渡すと、
16進数に変換し、文字列として返す関数を作る。
同様に引数を16進数、戻値を2進数で返す関数も作る。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): VC++6.0
[3.3] 言語:C/C++/
[4] 期限:7月9日
[5] その他の制限:
文字列の扱いがどうにもわかりません・・・。
どうかよろしくお願いします。
0967デフォルトの名無しさん
2005/07/05(火) 23:09:05[2] 問題文(含コード&リンク):
任意の整数nまでの和S(n)を求めるプログラムを再起的に関数を呼び出す形で書け
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:7月7日まで
[5] その他の制限:
おねがいします
0968デフォルトの名無しさん
2005/07/05(火) 23:21:25整数じゃなくて自然数だが
#include <stdio.h>
int sum(int n)
{
if (n == 0) return 0;
else if (n == 1) return 1;
return sum(n-1) + n;
}
main() { printf("%d\n", sum(10)); }
0969デフォルトの名無しさん
2005/07/05(火) 23:25:31でもあと30個はきついよ。
0970デフォルトの名無しさん
2005/07/05(火) 23:39:33不要
0971デフォルトの名無しさん
2005/07/06(水) 00:25:19ありがとうございます
09722/1
2005/07/06(水) 01:20:40#include <string>
#include <sstream>
using namespace std;
bool in_range(char x, char a, char b){ return x >= a && x <= b;}
// 2進→16進
string bin2hex(const string &src)
{
stringstream ss;
int tmp = 0;
int limit2 = src.size() % 4;
int limit1 = src.size() / 4 + (limit2 ? 1 : 0);
if( limit2 == 0 ) limit2 = 4;
for(int i = 0; i < limit1; ++i, limit2 = 4)
{
for(int j = 0; j < limit2; ++j)
{
if( ! in_range(src[j], '0', '1') ) throw string("bin2hex format error");
tmp = ( tmp << 1 ) | (src[j] - '0');
if( j % limit2 == (limit2-1) )
{
ss << hex << tmp;
tmp = 0;
}
}
}
return ss.str();
}
09732/2
2005/07/06(水) 01:20:51string hex2bin(const string &src)
{
stringstream ss;
for(int i = 0; i < src.size(); ++i)
{
char ch = -1;
if( in_range(src[i], '0', '9') ) ch = src[i] - '0';
else if( in_range(tolower(src[i]), 'a', 'f') ) ch = tolower(src[i]) - 'a' + 0xa;
else throw string("hex2bin format error");
for(unsigned char mask = 1 << 3; mask != 0; mask >>= 1) ss << !!(ch & mask);
}
return ss.str();
}
0974デフォルトの名無しさん
2005/07/06(水) 01:32:53[2] 問題文(含コード&リンク):
2人が互いに座標を指定していくような○×クイズのプログラムをつくれ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:7月7日
[5] その他の制限:
1年生なんですが、全くわかりません・・・orz
よろしくお願いします!
0975デフォルトの名無しさん
2005/07/06(水) 01:43:06座標というのは 1、3と入力したら左下、
2、2と入力したら真ん中にマークがつくということらしいです。
0976デフォルトの名無しさん
2005/07/06(水) 01:55:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/670.zip
やっと終わった…
調子に乗って機能を詰め込んでたら3000行超えたw
多少メモリリークがあるけど勘弁してくれ。
質問があれば出来る限り答えようww
0977デフォルトの名無しさん
2005/07/06(水) 01:59:48貴様はまず○×クイズというものを知れ。プログラムより前に。
0978デフォルトの名無しさん
2005/07/06(水) 02:07:59[2] 問題文(含コード&リンク):
下記のような整数型配列において、以下の処理を行うプログラムの作成。
処理を行った後、配列の内容を出力する
#define YOUSO 10
int a[YOUSO] = {2,4,6,8,10,12,14,16,18,20} ;
int b[YOUSO] = {3,6,9,12,15,18,21,24,27,30} ;
(1)配列aの要素をすべて配列bに転送する
(2)b=a+bを配列内の要素毎に行う
(3)配列aの配列内順序を逆にして、配列bに転送する
(4)配列aと配列bの各要素を交換する
以上の処理を1つのプログラムで行うものを作れ、とのことです
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C/
[4] 期限:7月8日まで
[5] その他の制限:どこまで習っているか、等々
配列処理までです
もうなにがなんだかわけわからなくなってだめぽ、状態です
ほとんど丸投げで申し訳ないですがどうぞ力を貸してください
0979デフォルトの名無しさん
2005/07/06(水) 02:08:59○│×│○
─┼─┼─
×│○│○
─┼─┼─
×│○│×
0980デフォルトの名無しさん
2005/07/06(水) 07:09:21http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/674.c
0981デフォルトの名無しさん
2005/07/06(水) 07:55:47素早いレス�dクスです!
でも、明らかにまだ習ってない関数が使われてるようです・・
関数、ポインタはまだ習ってませんorz
こちらの情報が少なすぎたみたいですいません!
0982デフォルトの名無しさん
2005/07/06(水) 08:06:00うわー、なるほど。
ありがとうございました
0983デフォルトの名無しさん
2005/07/06(水) 10:08:39[2] 問題文(含コード&リンク): int型整数の三乗値を返す関数はint cube(int x) {/*・・・*/}
を作成せよ
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:今日午後一時まで
0984デフォルトの名無しさん
2005/07/06(水) 10:28:170985デフォルトの名無しさん
2005/07/06(水) 10:30:25U U
0986デフォルトの名無しさん
2005/07/06(水) 10:37:43http://pc8.2ch.net/test/read.cgi/tech/1119435171/974,979
これか!
int cube(int x) { return x * x * x(ry
といいつつ簡単すぎるので書いてしまった
0987デフォルトの名無しさん
2005/07/06(水) 10:40:55[2] 問題文(含コード&リンク):
>>968のS(n)は
S(1) S(2) S(3) S(4)
。 。 。 。
。。 。。 。。
。。。 。。。
。。。。
と並べることでわかるように三角関数と呼ばれる。
このようなひと目でわかる出力する関数を付け加えよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:7月7日
[5] その他の制限:
宜しくおねがいします
0988デフォルトの名無しさん
2005/07/06(水) 11:00:17[2] 問題文:
65 91 39 31 55 76 55 52 63 71
39 38 60 59 65 70 45 51 61 44
-1
上のデータ(一番最後の -1 はデータの終りを表すものとする。)を
main() 関数などで適当な実数配列 a に読み込んだとしよう。このとき配列 a[] とその要素数 n を関数の引数として渡すことによって平均、標準偏差、最高点、最低点が計算できる。
そこで、
a の平均点を求める関数: double mean( double a[], int n )
a の標準偏差を求める関数: double stddev( double a[], int n )
a の最高点を求める関数: double max_array( double a[], int n )
a の最低点を求める関数: double min_array( double a[], int n );
を作成し、これらの関数の返してきた値を表示しなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/12まで
[5] その他の制限:「関数と配列について」まで習いました。構造体などはまだ習っていません。
データを読み込む前のプログラムだけでいいので、どなたかご教授お願いします。
0989デフォルトの名無しさん
2005/07/06(水) 11:09:05なにがなんだかさっぱりわからん
その図からひと目ではなにもわからん
三角関数ってsinとかcosだろ?
もしかして、こうか?
S(1) S(2) S(3) S(4)
。 。 。 。
。。 。。 。。
。。。 。。。
。。。。
0990デフォルトの名無しさん
2005/07/06(水) 11:15:13[2] 100桁同士の正整数の積を 「筆算をまねる方法(1桁ずつ乗算)」
を用いて計算するプログラムを作成せよ.
プログラムは以下の仕様に従うこと:
プログラムは,標準入力から 100 桁以下の正整数を2つ受け取り,
その積を標準出力に出力する.
例:
% ./bignum1
123456
123
15185088
[3] OS:Linux
[4] 期限:7/8(金)午後一時まで
[5]雛形はあるので、雛形の「// ここを頑張ってつくる」
のところをお願いします
0991デフォルトの名無しさん
2005/07/06(水) 11:17:32#include <string.h>
#define MAX_FIGS 200 // 最大桁数 (100桁*100桁の計算は200桁まで)
// 長大数を表す構造体
typedef struct {
char fig[MAX_FIGS]; // 長大数を各桁ごとに格納
int numFigs; // 最大桁数
} BIGNUM;
void readBigNum(BIGNUM *n);
void printBigNum(BIGNUM *n);
int main(int argc, char *argv[])
{
BIGNUM x, y;
readBigNum(&x);
readBigNum(&y);
// ここを頑張ってつくる
return 0;
}
0992デフォルトの名無しさん
2005/07/06(水) 11:18:45* 引数: n - 長大数へのポインタ(格納先)*/
void readBigNum(BIGNUM *n)
{
int i, j;
char str[MAX_FIGS];
// 読み込み
scanf("%s\n", str);
// 長大数に変換する
// 長大数 n の初期化
bzero(n, sizeof(BIGNUM));
// 下位の桁から順次取り出す
for (i=strlen(str)-1, j=0; i >= 0; i--, j++)
n->fig[j] = str[i] - '0';
// 最大桁数
n->numFigs = j;
}
0993デフォルトの名無しさん
2005/07/06(水) 11:19:16* 長大数を標準出力へ書き出す
* 引数: n - 長大数へのポインタ
*/
void printBigNum(BIGNUM *n)
{
int i;
// 先頭の0は無視する
for (i=n->numFigs - 1; i >= 1; i--)
if (n->fig[i] != 0)
break;
// 長大数の表示
for ( ; i >= 0; i--)
printf("%c", n->fig[i] + '0');
printf("\n");
}
0994デフォルトの名無しさん
2005/07/06(水) 11:35:34ふー、危うく埋まるとこだった。
とりあえずやっといた。
ほい。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/675.txt
0995ななすぃ
2005/07/06(水) 11:39:02[2] 問題文(含コード&リンク):配列のデータ構造を実現するプログラムを
数パターン作成する
・データの挿入、削除、表示が可能であること。
・配列に代入するデータは整数型とする。
・プログラムの仕様(関数への入出力、表示方法など)は自由とする
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):Borland C++ Compiler5.5
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:7月9日昼まで
[5] その他: できるだけ早くお願いします。それとよろしければ簡単な注釈
も書いていただければうれしいです。
0996デフォルトの名無しさん
2005/07/06(水) 11:54:47それです。
図が変になってしまってすいません。
0997デフォルトの名無しさん
2005/07/06(水) 12:24:42BIGNUM * multiplyBigNums( const BIGNUM * x, const BIGNUM * y, BIGNUM * z );
int main()
{
:
// ここを頑張ってつくる
multiplyBigNums( &x, &y, &z );
printBigNum( &z );
return 0;
}
BIGNUM * multiplyBigNums( const BIGNUM * x, const BIGNUM * y, BIGNUM * z )
{
int i, j, k;
memset( z, 0, sizeof( BIGNUM ) );
z->numFigs = x->numFigs + y->numFigs;
for ( i = 0; i < x->numFigs; i ++ )
for ( j = 0; j < y->numFigs; j ++ )
{
k = i + j;
z->fig[ k ] += x->fig[ i ] * y->fig[ j ];
z->fig[ k + 1 ] += z->fig[ k ] / 10;
z->fig[ k ] %= 10;
}
return z;
}
0998デフォルトの名無しさん
2005/07/06(水) 12:33:41for (i = 1; i <= n; i ++)
{
for (j = i; j > 0; j --)
printf( "。" );
printf( "\n" );
}
あれ、もしかしてこれも再帰使うとか?
っていうか、もういいかげん次スレでやろう。
注文あったら次スレで。
http://pc8.2ch.net/test/read.cgi/tech/1120522752/
0999デフォルトの名無しさん
2005/07/06(水) 12:44:441000デフォルトの名無しさん
2005/07/06(水) 12:44:59http://pc8.2ch.net/test/read.cgi/tech/1120522752/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。