ぼるじょあがC/C++の宿題を片づけますYO! 42代目
■ このスレッドは過去ログ倉庫に格納されています
0001ぼるじょあ代理
2005/04/18(月) 17:00:13わからない宿題を片づけますYO!
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:
[3.2] コンパイラ(バージョン):
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【歴代スレは>>2-13】
0002デフォルトの名無しさん
2005/04/18(月) 17:47:38一回おきじゃねぇじゃん。
0003デフォルトの名無しさん
2005/04/18(月) 18:30:24[1] 授業単元: ソフトウェア製作実習�T
[2] 問題文(含コード&リンク): X,Y,Zに整数を入れ、Xに小さな値、Yに中間の値、Zに大きな値を
格納するプログラムを作成する。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ(バージョン):CPad for LSI C-86
[3.3] 言語:C
[4] 期限:2005年4月19日まで
ちなみに、基礎的な↓の部分までしかわかりませんでした。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=313
0004デフォルトの名無しさん
2005/04/18(月) 18:53:15氏ねよ
0005ぼるじょあ ◆yBEncckFOU
2005/04/18(月) 18:53:4940代目: 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/
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
0006ぼるじょあ ◆yBEncckFOU
2005/04/18(月) 18:54:3025代目: 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
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
0007ぼるじょあ ◆yBEncckFOU
2005/04/18(月) 18:56:2110代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
1代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
ぼるじょあ◆yBEncckFOU は共同体で連続体で群生体だから無限の知識と
無尽蔵の体力を持ってるんだYO!
24時間365日、いつでも質問かかって来いYO!
(・3・) アルェー こっちが嫌になるほど質問しろYO!
ぼるじょあ◆yBEncckFOU はコテハンじゃないYO!
名前欄に「ぼるじょあ#ぶるじょあ」でキミも今日から「ぼるじょあ◆yBEncckFOU」だYO!
0008デフォルトの名無しさん
2005/04/18(月) 18:57:18まともなレスつけないぼるじょあなんて必要とされていません。
0009デフォルトの名無しさん
2005/04/18(月) 19:03:32はいyp
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=313
にレスしといた。かなりやっつけ
00103
2005/04/18(月) 19:08:31素早い回答、ありがとうございました。
if文で作るとこまではわかったんですが、中身がどうしたら良いかわからなくて…。
本当に助かりました。
どうもありがとうございました。
0011デフォルトの名無しさん
2005/04/18(月) 22:10:48[2] 問題文:
適当な文字列が10行書き込んであるsample.txtがある。
文字列1
文字列2
…
文字列10
問1:適当な構造体を作成し、sample.txtを開き、データ郡を格納し、DOS窓に
構造体のデータとして
01 文字列1
02 文字列2
…
10 文字列10 と表示せよ
問2:DOS窓でiを入力したら「何行目に文字列を挿入しますか?」と表示し、
適当な行を数値入力後、文字列を挿入する。
問3:文字列挿入後、sample.txtを上書きする。
問4:DOS窓でqを入力すると終了する。
[3] 環境
[3.1] OS:win xp
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年04月20日
[5] その他の制限:
0012前スレ975
2005/04/18(月) 23:28:34とりあえず、形にしたつもりですがファイルへの出力で
ソートした最後の値だけがファイルに保存されてしまいます。
1.0 2.0 3.0 4.0 ・・・ 10.0
というふうにソートした場合、
10.0だけでなく、
1.0 2.0 3.0 4.0 ・・・ 10.0
という風にファイルに保存したいのですが、どのように変えれば出来るでしょうか?
度々申し訳ありませんがアドバイスお願いいたします。
001312
2005/04/18(月) 23:41:10ファイルはこちらにアップさせていただきました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/315.txt
0014デフォルトの名無しさん
2005/04/18(月) 23:51:56ソースを見せてもらったが、表示と同時に保存している。
完全にロジックがおかしいから、表示が終わってから、改めてfopen()して
書き込むが良い。fopen()は"w"で開く度に、前の同名ファイルが存在しても
削除して上書きしてしまう。
0015デフォルトの名無しさん
2005/04/19(火) 00:11:15氏ね
0016デフォルトの名無しさん
2005/04/19(火) 00:13:38おおおお!出来ました!
皆さんどうもありがとうございました!
0017デフォルトの名無しさん
2005/04/19(火) 00:23:30fopen()の引数を "w" から "a" に変えるとかね。
でも、前スレ見てないから>>13が、どんな奴かは知らんが
ソースを見た感じファイル操作なんて早すぎる。
配列は正しく初期化されてるかな?
N個の要素を持つ配列を宣言しておいて、N-1個しか使っていないよ。
それでいてソート処理ではN個全てを対象としている。
それらが、ある程度動くようになってからファイルに出力しようよ。
せっかく配列に保持してるんだから、表示と保存処理は別にした方が良い。
ファイルに出力できれば、それで良いって考えは良くないよ。
ソフトウェア開発の仕事をすると、涙を呑んでそんなことをすることもあるが・・・
0018デフォルトの名無しさん
2005/04/19(火) 02:11:08[2] 問題文(含コード&リンク):0以上1以下の実数pをキーボードから入力し、ランダムにN人を集め、
誕生日別に分類したとき、生まれた人が一人もいないような日が存在しない確率を考える。
このような確率がp以上であるようなNの最小値を出力するプログラムをお願いします。
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C/C++/どちらでも可 のいずれか C
0019デフォルトの名無しさん
2005/04/19(火) 02:23:50[2] 問題文(含コード&リンク):n個の文字列をキーボードから入力し、昇順
に並び替えて出力するプログラムを作成しなさい。ただし、文字列の文字数は
30文字以下とし、n<=50とする。
[3] 環境
[3.1] OS: UNIX/Solaris
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年4月21日まで
お願いします。
0020cen ◆Pm9xOTJuM.
NGNGこんな感じ?
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int i,N,min=365;
double p,tmp;
srand((unsigned)time(NULL));
printf("Please input p\n");
scanf("%lf",&p);
i=0;
while(i<10000){
N=rand()%365+1;
tmp=1-(double)N/365;
if(tmp<p && N<min){min=N;}
i++;
}
printf("%d\n",min);
return 0;
}
0021デフォルトの名無しさん
2005/04/19(火) 02:47:39誕生日というものが1年のうちの各日に均等に生じるという保証がないので、
この問題は回答不可能じゃないかな。
例えば2/29日生まれってのをどうするとか、盆と正月の9ヶ月後の誕生日が多いとか。
0022デフォルトの名無しさん
2005/04/19(火) 03:19:04このスレも昔みたいにテンプレ無くせよ
0023デフォルトの名無しさん
2005/04/19(火) 04:47:28テンプレ無くすと無駄なやり取りが増えるだけで、スレの無駄。
0024デフォルトの名無しさん
2005/04/19(火) 06:46:02おまいら寝とけ
0025デフォルトの名無しさん
2005/04/19(火) 07:29:24昔はなかったぞ。
誰だよ、このスレにテンプレつけた奴は?
0026デフォルトの名無しさん
2005/04/19(火) 09:28:42・Cでお願いします(文中にない場合もある)と言ってるのに C++の"//"のコメント使うのをはじめ
C,C++の記述が混合してたり
・期限が●日だったのにとあとから追加してくるので期限がわからず過ぎてから解答だしたり
・授業単元の趣旨と外れた解答をして「これじゃダメです」ってレス付いたり
・解答もらったけどこっちではコンパイル通りませんとか
いろいろあったから初めの出題の段階でできる限りの情報を引き出すためのテンプレかと
>・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
>・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
テンプレをなくした時のメリットって何ですか?
教えていただけると今後の参考になりますのでお願いします。
0027デフォルトの名無しさん
2005/04/19(火) 09:30:37シープラスプラス??激しくアレな人教えてください
0028デフォルトの名無しさん
2005/04/19(火) 09:37:26マルチ氏ね
0029デフォルトの名無しさん
2005/04/19(火) 09:40:28はじめからこっちで聞くべきでしたねってあっちに
付け加えてんだろうがなんでもかんでも一緒にする房うざすぎ お前がまず氏ね
0030デフォルトの名無しさん
2005/04/19(火) 09:47:15マルチの意味わかってんのかね このクソガキは
ビビってひっこんでんじゃねーぞこら でてこいやキチガイ
0031デフォルトの名無しさん
2005/04/19(火) 09:58:40>>28は消防からやり直して氏ねよ
2chのルールだけ気にしすぎて通常の人間の会話が理解できない房決定
2chやりすぎて脳腐ってんじゃないの?w 氏ね
0032デフォルトの名無しさん
2005/04/19(火) 10:04:00>>28
はじめからこっちで聞くべきでしたねってあっちに
付け加えてんだろうがなんでもかんでも一緒にする房うざすぎ お前がまず氏ね
30 名前:デフォルトの名無しさん[sage] 投稿日:2005/04/19(火) 09:47:15
>>28
マルチの意味わかってんのかね このクソガキは
ビビってひっこんでんじゃねーぞこら でてこいやキチガイ
31 名前:デフォルトの名無しさん[sage] 投稿日:2005/04/19(火) 09:58:40
もういいや
>>28は消防からやり直して氏ねよ
2chのルールだけ気にしすぎて通常の人間の会話が理解できない房決定
2chやりすぎて脳腐ってんじゃないの?w 氏ね
190 名前:デフォルトの名無しさん[sage] 投稿日:2005/04/19(火) 09:42:40
>>189
どこがマルチなんだ?wキチガイか 氏ね房うざすぎ おまえが氏ね
191 名前:デフォルトの名無しさん[sage] 投稿日:2005/04/19(火) 09:57:38
もういいや
>>189は消防からやり直して氏ねよ
2chのルールだけ気にしすぎて通常の人間の会話が理解できない房決定
0033デフォルトの名無しさん
2005/04/19(火) 10:07:29マルチの意味を教えてくれないかwwww
0034デフォルトの名無しさん
2005/04/19(火) 10:08:49ttp://www.angelfire.com/art2/blazer/hm.html
しっかり読め
0035デフォルトの名無しさん
2005/04/19(火) 10:15:12口と逃げ足だけは一人前だなw
0036デフォルトの名無しさん
2005/04/19(火) 10:16:00バカすぎ乙w
0037デフォルトの名無しさん
2005/04/19(火) 10:24:31釣られてんじゃねーよwwwっぅうえwwww
0038デフォルトの名無しさん
2005/04/19(火) 13:29:44#include <stdio.h>
main(){
char cStrings[50][30];
char cWork[30];
int num,i,j;
memset(cStrings,0,sizeof(cStrings));
printf("文字列を入力して下さい。[Enterのみで終了]\n");
for(num=0;num<50;num++){
if (fgets(cStrings[num],30,stdin) == NULL) break;
if (cStrings[num][0] == '\n') break;
}
for(i=0;i<num-1;i++){
for(j=i+1;j<num;j++){
if (strcmp(cStrings[i],cStrings[j]) > 0){
memcpy(cWork,cStrings[i],sizeof(cWork));
memcpy(cStrings[i],cStrings[j],sizeof(cWork));
memcpy(cStrings[j],cWork,sizeof(cWork));
}
}
}
printf("ソート結果\n");
for(i=0;i<num;i++) printf("%s",cStrings[i]);
}
0039デフォルトの名無しさん
2005/04/19(火) 15:23:13[2] 問題文(含コード&リンク):x^3+x-2=0の解を[0,3]区間で求めよ。ただし
ε=0.0001の場合とε=0.1の場合を求め結果を考察せよ(二分法)
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ(バージョン):?
[3.3] 言語:C++
[4] 期限:
[5] その他の制限: ソースプログラムε=0.1の時
結果ファイル2個(x=1,-2 ?)
0040デフォルトの名無しさん
2005/04/19(火) 16:33:50実行できました。助かりました。ありがとうございました。
0041デフォルトの名無しさん
2005/04/19(火) 18:04:55εってなんですか。大体解かるが、変数には説明が必要。
0042デフォルトの名無しさん
2005/04/19(火) 18:07:18004339
2005/04/19(火) 18:09:43すいません
イプシロンです。
EPSでお願いいたします。
004439
2005/04/19(火) 18:12:41ほんとごめんなさい
Microsoft Visual C++ 6.0
です。
0045デフォルトの名無しさん
2005/04/19(火) 18:13:52そんなこと聞いていないが…
質問者いじめはもうやめよう…
0046Addicted to C++ ◆nrBjarne.g
2005/04/19(火) 19:36:27私です。
ダディクールがC/C++の宿題を片づけます 32代目
http://pc5.2ch.net/test/read.cgi/tech/1097592876/330
0047デフォルトの名無しさん
2005/04/19(火) 19:44:19http://pc8.2ch.net/test/read.cgi/tech/1109542053/955
だいたい出来て、やっとエラーがほぼ無くなりました。
size_typeに関するもの以外は。
template<typename Element> reference Vec<Element>::front()
のように、referenceなどのものに関するエラーは出ないんだけど、
template<typename Element> size_type Vec<Element>::max_size(void) const
とかになると、エラーが出ます。
size_typeをsize_tと書き換えると、エラーがなくなります。
これって、コンパイラーかなんかのせい?
ちなみに、visual studioβ版使ってます。
コードは、これ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/319.txt
0048デフォルトの名無しさん
2005/04/19(火) 21:03:51#include <stdio.h>
#include <math.h>
float func (float x) { return x*x*x+x-2.0; }
float bisec (float (*f)(float), float l, float r, float e) {
float m = (l+r)*0.5, fm = (*f) (m);
if (fabs (r-l) < e || fm == 0) return m;
else if ((*f) (l) * fm < 0) return bisec (f, l, m, e);
else return bisec (f, m, r, e);
}
int main () {
printf ("ε=0.0001: %f\nε=0.1: %f\n",
bisec (func, 0.0, 3.0, 0.0001),
bisec (func, 0.0, 3.0, 0.1));
return 0;
}
0049デフォルトの名無しさん
2005/04/19(火) 21:30:270050デフォルトの名無しさん
2005/04/19(火) 21:38:11精神科病院にでも行ってきたら?
0051デフォルトの名無しさん
2005/04/19(火) 21:45:49その必要もない。
0052デフォルトの名無しさん
2005/04/19(火) 21:47:54木又
0053デフォルトの名無しさん
2005/04/19(火) 22:04:190054デフォルトの名無しさん
2005/04/19(火) 22:47:39[2] 問題文(含コード&リンク):
***********
*********
*******
*****
***
*
上から左右2個ずつ*が減る逆三角形を作りたいのですが、for文の条件がわかりません。
*を増やすのを2個ずつ減らせばいいのは分かるのですが、m=m+2にすると、
平行四辺形になります。どうかヒントだけでもいただけないでしょうか
#include <stdio.h>
void main(void){
int k,l,m;
for(k=1;k<=6;k++){
for(l=1;l<=k;l++){
printf(" ");
}
for(m=1;m<12;m=m+2){
printf("*");
}
printf("\n");
}
}
[3] 環境
[3.1] OS:win2000
[3.2] コンパイラ(バージョン):わかりませんがMicrosoftVisualC++使ってます
[3.3] 言語:どちらでも可
[4] 期限:特になし
005554
2005/04/19(火) 22:51:400056cen ◆Pm9xOTJuM.
NGNGこんな感じ?
#include <stdio.h>
void main(void){
int k,l,m;
m=0;
for(k=0;k<6;k++){
for(l=0;l<m;l++){
printf(" ");
}
printf("*");
for(l=0;l<20-m*2;l++){
printf("*");
}
printf("\n");
m=m+2;
}
return 0;
}
005754
2005/04/19(火) 23:02:45マルチっぽくなってしまってすみませんでした。
0058デフォルトの名無しさん
2005/04/19(火) 23:06:10#define N 11
int main()
{
int n, i, offset = 0;
for( n = N; n > 0; n -= 2, offset++ ){
for( i = 0; i < offset; i++ ) putchar(' ');
for( i = 0; i < n; i++ ) putchar('*');
putchar('\n');
}
return 0;
}
0059デフォルトの名無しさん
2005/04/19(火) 23:56:33template習ったから、使わせたいんだと思う。
006047
2005/04/20(水) 00:00:31自称C++のexpertと名乗ってる人達が、自分が想像してた以上にでかい課題だとか言って、
みんな。ひいていくんだけど・・・。
締め切りまで、もう少しだから、馬鹿なりに頑張ってみる。
0061デフォルトの名無しさん
2005/04/20(水) 00:05:12006247
2005/04/20(水) 00:08:14006347
2005/04/20(水) 00:12:07006447
2005/04/20(水) 00:18:55コンパイラーとかのせいでは、ないんですよね?
0065デフォルトの名無しさん
2005/04/20(水) 00:27:310066デフォルトの名無しさん
2005/04/20(水) 01:01:24Solaris環境でC++を使っています。
C++で、Unixシステムコマンドを呼び出す方法を教えてください。
%hostname というコマンドを使いたいのです。
よろしくご教授願いします。
0067デフォルトの名無しさん
2005/04/20(水) 01:02:360068デフォルトの名無しさん
2005/04/20(水) 01:02:59referenceはエラーでないの?出そうな気がするけど。
とりあえずsize_typeに関しては
template<typename Element>
typename Vec<Element>::size_type Vec<Element>::max_size() const
にすれば大丈夫だと思う。
0069デフォルトの名無しさん
2005/04/20(水) 04:47:40これどうすれば??
0070デフォルトの名無しさん
2005/04/20(水) 12:14:07以下のコードはEUCをUNIコード変換する関数なのですが
逆にUNIコードをEUCに変換するように改造するには
どこを触ればいいのでしょうか?基本的にマイナスプラスの世界に
なるかと思われますが、よろしくお願いします。
EXPORT BOOL __stdcall ChengeEucToUni(char *File_in){
unsigned char*str_in,*str_out,*p;//文字列変換入出力
unsigned charstr_in_work[MAX_PATH];//入力ワーク
unsigned charstr_out_work[MAX_PATH];//出力ワーク
unsigned intHighAsc;//上位コード
unsigned intLowAsc;//下位コード
inti,strLen;//処理カウント/文字列長
chartmpfile[255];//テンポラリファイル名
ifstreamfiled;//出力ストリーム宣言
ofstreamfout;//入力ストリーム宣言
//変数の初期化
memset( str_out_work,'\0',MAX_PATH);
memset( str_in_work,'\0',MAX_PATH);
str_out= &str_out_work[0];
str_in= &str_in_work[0];
//変換後テンポラリファイル名作成
memset( tmpfile,'\0',MAX_PATH);
strcpy(tmpfile,File_in);
strcat(tmpfile,"tmp");
//変換元のファイルを開く
filed.open(File_in);
if(filed.fail()){
AfxMessageBox("変換元ファイル読込失敗");
return FALSE;
}
0071デフォルトの名無しさん
2005/04/20(水) 12:15:39fout.open(tmpfile);
if(fout.fail()){
AfxMessageBox("変換先ファイル読込失敗");
return FALSE;
}
int fi = 0;
//変換元ファイルの終端までループする
while(!filed.eof()){
//変換元文字列の取得
filed.getline(str_in,MAX_PATH);
/* 文字バイト数取得 */
strLen=strlen((const char *) str_in);
/* 先頭位置コピー */
p = str_out;
for(i=0;i<strLen;i++){
/* 上位・下位コード取得 */
HighAsc = *(str_in+i);
LowAsc = *(str_in+(i+1));
/* 2バイト文字である */
if(HighAsc > 0x7F){
if(HighAsc == 0x8E){
/* 半角カタカナである */
*str_out = LowAsc;
/* 1文字分進める */
str_out++;
}
0072デフォルトの名無しさん
2005/04/20(水) 12:17:16/* 1バイト目変換 */
/* 偶数である */
if((HighAsc % 2) == 0){
if(HighAsc < 0xDF)
*str_out = (unsigned char)(0.5 * HighAsc + 48);
else if(0xE0 <= HighAsc && HighAsc <= 0xFE)
*str_out = unsigned char(0.5 * HighAsc + 112);
}
/* 奇数である */
else{
if(HighAsc < 0xDF){
*str_out = unsigned char(0.5 * HighAsc + 48.5);
else if(0xDF <= HighAsc && HighAsc <= 0xFD)
*str_out = unsigned char(0.5 * HighAsc + 112.5);
}
/* 2バイト目変換 */
/* 1バイト目が偶数である*/
if((HighAsc % 2) == 0)
*(str_out+1) = LowAsc - 0x2;
/* 1バイト目が奇数である */
else{
*(str_out+1) = LowAsc - 0x61;
if(*(str_out+1) > 0x7E)
*(str_out+1) = *(str_out+1) +1;
}
str_out+=2;
0073デフォルトの名無しさん
2005/04/20(水) 12:18:08/* 1バイト分すすめる */
i++;
}
/* 1バイト文字である */
else{
*str_out = HighAsc;
str_out = str_out + 1;
}
}
*str_out = '\0';
/* 先頭位置に戻す */
str_out = p;
//ファイルに変換データを出力
fout << str_out << endl;
//fout.write(str_out,strLen);//改行失敗の為、上記コードに変更
fi++;
}
filed.close();//変換元ファイルのクローズ
fout.close();//変換ファイルのクローズ
DeleteFile(File_in);//変換元ファイルの削除
MoveFile(tmpfile,File_in);//変換ファイルを変換元ファイル名にリネーム
return TRUE;
}//長文すみません
0074デフォルトの名無しさん
2005/04/20(水) 12:35:410075デフォルトの名無しさん
2005/04/20(水) 12:55:01もうお手上げ状態です。
まじで、助けてください。
これ、本当に必要なんです。
typedef 取りました。
簡単になったと思います。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/320.txt
0076デフォルトの名無しさん
2005/04/20(水) 13:29:26えーと、取り敢えず今までの経過をまとめてくれない?
もう、何がなんだか。
0077デフォルトの名無しさん
2005/04/20(水) 13:30:32[2] 問題文:
問題1:
サイコロを1000回振る。1の目がでた回数を整数型変数oneに憶えさせ、2の目が出た回数を変数twoに憶えさせ、….、6の目が出た回数を変数sixに憶えさせる。サイコロを振り終わってから、どの目が何回でたかを画面に書かせる。
(中級者は、整数型配列 kaisu[6]を宣言し、1の目の出た回数をkaisu[1]に、2の目の出た回数をkaisu[2]に憶えさせる,……のようにすること。
問題2:
問題1で、サイコロを100回振る。どの目が何回でたかを、星の数で表現するようにせよ。
[3] 環境
[3.1] OS: winxp
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C言語
[4] 期限:今日の20時
お願いします。
0078デフォルトの名無しさん
2005/04/20(水) 13:42:01>(中級者は、整数型配列 kaisu[6]を宣言し、1の目の出た回数をkaisu[1]に、2の目の出た回数をkaisu[2]に憶えさせる,……のようにすること。
有り得ない。
0079デフォルトの名無しさん
2005/04/20(水) 13:48:33stlにあるvector.hを書き換えるという課題です。
簡単なのは、これです。
http://www5c.biglobe.ne.jp/~ecb/cpp/07_20.html
member function等の英語版の詳しい説明だと、これです。
http://developers.sun.com/tools/cc/documentation/ss8_docs/man3c++/vector.3.html
ただし、Iterator等は今回ないです。
だいたいは、自分で書いて、あってると思います。
でも、動かないんです。
もう、まる2日馬鹿みたいに、費やしました。
ぐるぐるメリーゴーランド的に繰り返したり。
本当、まじで、お願いします。
0080デフォルトの名無しさん
2005/04/20(水) 13:56:03#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define numof(array) (sizeof(array)/sizeof(array[0]))
void roll_dice (int* dice, int dn, int n) {
if (n <= 0) return;
else {
dice[(int) ((float)dn*rand()/(RAND_MAX+1.0))]++;
roll_dice (dice, dn, n-1);
}
}
int main () {
int i;
int dice[6] = {0};
srand (time(NULL));
roll_dice (dice, numof (dice), 1000);
for (i = 0; i < numof (dice); ++i) printf ("%d: %d\n", i+1, dice[i]);
return 0;
}
0081デフォルトの名無しさん
2005/04/20(水) 14:00:25#include <stdio.h>
#include <stdlib.h>
/* 精度の悪い乱数を使用しているので、必要なら適宜書き換えること */
int diceThrow(void) {return rand() % 6;}
/* count回数ダイスを投げてdice配列に出現回数を記録 */
void l1(unsigned count, int * dice) {int ic; for (ic = 0; ic < count; ++ic) {++dice[diceThrow()];}}
/* arrayからarraySize分をその値の数の星グラフに */
void l2(unsigned arraySize, const int * array)
{
int ic;
for (ic = 0; ic < arraySize; ++ic) {
int cc;
printf("No.%d:%d\t", ic + 1, array[ic]);
for (cc = 0; cc < array[ic]; ++cc) {printf("星");}
printf("\n");
}
}
int main()
{
int kaisu[6]; int ic;
for (ic = 0; ic < sizeof(kaisu) / sizeof(*kaisu); ++ic) {kaisu[ic] = 0;}
l1(1000, kaisu);
for (ic = 0; ic < sizeof(kaisu) / sizeof(*kaisu); ++ic) {printf("No.%d\t%d\n", ic + 1, kaisu[ic]);}
for (ic = 0; ic < sizeof(kaisu) / sizeof(*kaisu); ++ic) {kaisu[ic] = 0;}
l1(100, kaisu);
l2(sizeof(kaisu) / sizeof(*kaisu), kaisu);
return EXIT_SUCCESS;
}
0082デフォルトの名無しさん
2005/04/20(水) 14:16:01お早い回答ありがとうございます。
走らせてみた所、問題なく動きました。
ただ、ちょっと気になったのが>>81の方は何度実行しても星の数が固定なんですが
これは精度が悪い関数を使っているためでしょうか…。
0083デフォルトの名無しさん
2005/04/20(水) 14:16:29ケアレスミス多過ぎ。
単純な文法エラーばかりで、動く云々以前にコンパイラが全部エラーだしたぞ。
--- got/vec.cpp 2005-04-20 14:13:01.500000000 +0900
+++ vec.cpp 2005-04-20 14:12:53.140625000 +0900
@@ -82,2 +82,3 @@
throw(std::out_of_range("Vec at: n has to be larger than 0 and less than curSize"));
+ }
return varray[n];
@@ -86,3 +87,3 @@
template<typename Element>
-Element & Vec<Element>::at(size_t n) const
+const Element & Vec<Element>::at(size_t n) const
{
@@ -94,3 +95,4 @@
//operator
-template<typename Element> Vec<Element>::operator[](size_t n){
+template<typename Element>
+Element & Vec<Element>::operator[](size_t n){
return varray[n];
@@ -99,3 +101,3 @@
template<typename Element>
-const Element & Vec<Element>::operator[](size_t n) const;{
+const Element & Vec<Element>::operator[](size_t n) const {
return varray[n];
@@ -139,3 +141,3 @@
template<typename Element>
-void Vec<Element>::resize(size_t newSize, Element x = Element())
+void Vec<Element>::resize(size_t newSize, Element x)
{
0084デフォルトの名無しさん
2005/04/20(水) 14:17:22乱数系列を初期化していないため。必要ならsrand()関数を呼べ。
0085デフォルトの名無しさん
2005/04/20(水) 14:22:45#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define numof(array) (sizeof(array)/sizeof(array[0]))
void roll_dice (int* dice, int dn, int n) {
if (n <= 0) return;
else {
dice[(int) ((float)dn*rand()/(RAND_MAX+1.0))]++;
roll_dice (dice, dn, n-1);
}
}
void ps (int n) {if (n <= 0) return; else {printf ("*"); ps (n-1);}}
int main () {
int i;
int dice[6] = {0};
srand (time(NULL));
roll_dice (dice, numof (dice), 100);
for (i = 0; i < numof (dice); ++i) {
printf ("%d: ", i+1);
ps (dice[i]);
printf ("\n");
}
return 0;
}
0086デフォルトの名無しさん
2005/04/20(水) 14:23:45感謝です。サイト見ていけました。
0087デフォルトの名無しさん
2005/04/20(水) 14:30:50私はvisual studio 2005β版ですが、
function template has already been defined
っていうエラーが7つと、
fatal error C1075: end of file found before the left brace '{' at 'c:\documents and setting\....\vec.cpp(28)' was matched
Generating Code...
っていうエラーしか出なくて、何がなんだか、よくわかりません。
0088デフォルトの名無しさん
2005/04/20(水) 14:45:06もしかして、Vec.cppをコンパイルしようとしてね?
んなもん、できるわけねぇじゃん。
例えば、
#include "vec.h"
void func()
{
P10C::Vec<int> foo;
}
こんなソースを用意してそれをコンパイルしてみ。
_
それで判らなきゃ、タヒね。
0089デフォルトの名無しさん
2005/04/20(水) 14:46:470090デフォルトの名無しさん
2005/04/20(水) 14:48:00どこに「しね」と?
0091デフォルトの名無しさん
2005/04/20(水) 14:50:40_
タヒね。
↑これは様々な文字を組み合わせて作った巧妙な「死ね」という文字だ!!!
なんて陰険な奴なんだ!!!!!!!!!!!!!!
0092デフォルトの名無しさん
2005/04/20(水) 15:02:04いや、一応、main.cpp作ってやってるんですけど・・・。
ちなみに、しねとか、言ってるの私じゃないです。
0093デフォルトの名無しさん
2005/04/20(水) 15:02:48あんただれですか
0094デフォルトの名無しさん
2005/04/20(水) 15:04:510095デフォルトの名無しさん
2005/04/20(水) 15:09:25Vec.cppをコンパイルしちゃいけないというのは理解できた?
0096デフォルトの名無しさん
2005/04/20(水) 15:13:020097デフォルトの名無しさん
2005/04/20(水) 15:27:36気分転換になおしてあげたよ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/321.txt
0098デフォルトの名無しさん
2005/04/20(水) 15:28:24main.cppをコンパイルしてると思います。
009997
2005/04/20(水) 15:43:40ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/322.txt
やっつけなので品質には期待しないでくれ
0100デフォルトの名無しさん
2005/04/20(水) 15:48:41ありがとうございます。
凄い。
これは、今の自分には作れませんわ。
ちょっとやってみます。
010183
2005/04/20(水) 15:52:29■ このスレッドは過去ログ倉庫に格納されています