5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

<`Д´>C/C++の宿題は私にやらせるニダ!Ver11

1 :デフォルトの名無しさん:03/07/16 00:45
私はC++房。
今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
ただし四面体の宿題は禁止!
前スレhttp://pc2.2ch.net/test/read.cgi/tech/1057070174/

9代目:http://pc2.2ch.net/test/read.cgi/tech/1055944101/ 150
8代目: http://pc2.2ch.net/test/read.cgi/tech/1055056940/l50
7代目: http://pc2.2ch.net/test/read.cgi/tech/1053963794/l50
6代目: http://pc2.2ch.net/test/read.cgi/tech/1053045530/l50
↓現在5代目スレまでhtml化完了
5代目: http://pc2.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc2.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc2.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html

ラウンジ:質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html

933 :デフォルトの名無しさん:03/08/07 00:54
早速バグってやがる( ´Д`)y━─┛~~
[8.080000 4.000000 -3.000000] = -13.800000

934 :デフォルトの名無しさん:03/08/07 09:30
C++で入力された単語がそれぞれ何回出たかを出力するものを書いているのですが
途中でアクセス違反になってしまいます。どこがおかしいのでしょうか?
よろしくお願いします。

int main()
{
vector<string> num;
string x;
cout << "単語を複数個入力してください。 << '\n' << "ctrl+zで入力をやめます。" << endl;
while(cin >> x){
num.push_back(x);
cin.clear();
}
if(num.size()<=){
cout << "入力された単語の数が足りません。" << endl;
return 1;
}

935 :デフォルトの名無しさん:03/08/07 09:30
続きです

sort(num.begin(),num.end());
vector<string>::size_type size;
size = num.size();
string tmp;
int tmp2=0;
//比較と結果の出力
for(int i=0; i != size; i++){
tmp = num[i];
if(i==size){
cout << "比較は終了しました" << endl;
}
else if(tmp==num[i+1]){
tmp2++;
}
else{
cout << tmp << "は" << tmp2+1 << "個です。" << endl;
tmp2=0;
}
}
return 0;
}

936 :934:03/08/07 09:33
すいません
if(num.size()<=)
のところは
if(num.size()<=1)
です。



937 :デフォルトの名無しさん:03/08/07 10:06
i = size -1のとき、
num[i+1]が違法。

938 :デフォルトの名無しさん:03/08/07 10:28
>>934
map<string,unsigned int>words;
while(cin >> x){
words[x]++;
}
for(map<string,unsigned int>::const_iterator i = words.begin(); i != words.end(); ++i){
cout << i->first << "は" << i->second << "回" << endl;
}

939 :デフォルトの名無しさん:03/08/07 10:32
>>932
便乗だけど2次方程式解くにはどうしたらよいの?
x^2+3y+5=0
x+5y=2
みたいな香具師

940 :934:03/08/07 10:34
<<937
ありがとうございます。最後の所を

for(int i=0; i != size; i++){
tmp = num[i];
if(i==size-1){
cout << num[i] << "は" << tmp2+1 << "個です。" << endl;
cout << "比較は終了しました" << endl;
}
else if(tmp==num[i+1]){
tmp2++;
}
else{
cout << tmp << "は" << tmp2+1 << "個です。" << endl;
tmp2=0;
}
}

にしたらできました。

941 :934:03/08/07 10:38
>>938
mapという型自体をはじめて知りました。
勉強してきます。

942 :デフォルトの名無しさん:03/08/07 10:50
>>925
ガウスの消去法でぐぐれ

943 :デフォルトの名無しさん:03/08/07 11:08
unsigned charを引数にして
LSB側4bitが全て0であるかどうかを判定する
関数を誰か作ってください
戻り値はunsigned char型で
1なら真 0なら偽 それ以外ならエラー
と言う条件でお願いします

944 :デフォルトの名無しさん:03/08/07 11:16
エラーって、どういう状況だろーか

945 :デフォルトの名無しさん:03/08/07 11:17
unsgned char testLSB4bit( unsgned char ch )
{return !( ch & 0x0f );}

946 :_:03/08/07 11:17
http://homepage.mac.com/hiroyuki45/

947 :デフォルトの名無しさん:03/08/07 11:19
>>925 ガウス消去はたぶん理解できないだろうから
#include <iostream>
using namespace std;
int main()
{
double x[] = {7,-45,-284};
double y[] = {1,1,4};
double div_x = x[0];
for(int i=0; i<3; ++i){
x[i] = x[i] / div_x;
cout << x[i] << ", ";
}
cout << endl;
double div_y = y[0];
for(int i=0; i<3; ++i){
y[i] = y[i] / div_y;
cout << y[i] << ", ";
}
cout << endl;
for(int i=0; i<3; ++i){
y[i] = y[i] - x[i];
cout << y[i] << ", ";;
}
cout << endl;
div_y = y[1];
for(int i=0; i<3; ++i){
y[i] = y[i] / div_y;
cout << y[i] << ", ";
}
cout << endl;


948 :デフォルトの名無しさん:03/08/07 11:19
続き
cout << "y=" << y[2] << endl;

for(int i=0; i<3; ++i){
y[i] = y[i] * x[1];
cout << y[i] << ", ";
}
cout << endl;

for(int i=0; i<3; ++i){
x[i] = x[i] - y[i];
}

cout << "x=" << x[2] << endl;

あとは自分で考えれ。

949 :デフォルトの名無しさん:03/08/07 11:21
>939
その二元二次方程式は、楕円の交点を求める問題にまで
発展するのか?

5xx-6xy+5yy-14x+2y+5=0
xx+4yy=1

みたいに。

950 :デフォルトの名無しさん:03/08/07 11:21
なにをやってるかわからんかったら数Cの吐き出し法を復習しれ

951 :943:03/08/07 11:25
>>945
ありがとうございました

952 :デフォルトの名無しさん:03/08/07 14:54
>>949
別に宿題じゃないんだけどふと思いついた。
なんかいい方法ってありましたっけ?
解なしのときの処理とかが面倒だね。

953 :デフォルトの名無しさん:03/08/07 17:57
>>947-948
微妙なとこでおわったな(w

954 :デフォルトの名無しさん:03/08/08 17:39
スレ違いといわれてここに来た。
リンク先のプログラムを提出したら先生に
2分木を作成後に,任意の節(idを指定)のデータを木を根から
辿りながら見つけて出力できるようにしなさいって言われた。
どこをどうしたらいい?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=131

955 :デフォルトの名無しさん:03/08/08 17:46
こんなかんじ。動作未確認、勘弁。

void Search_r(char *sid,int depth, Node *node) {
if (strcmp(node->id,sid)!=NULL){
printf("%s,%s,%s\n", root->id, root->name, root->ruby);
return;
}
if (node->left != NULL) {
Search_r(sid,depth + 1, node->left); /* 余白の間隔を調節 */
}
if (node->right != NULL) {
Search_r(sid,depth + 1, node->right); /* 余白の間隔を調節 */
}
}

956 :955:03/08/08 17:49
>955
ありがとうございます。
参考にさせてもらいます。


957 :954:03/08/08 17:59
コンパイルすると次の行
if (strcmp(node->id,sid)!=NULL){
が warning: comparison between pointer and integerとでるのですが
なぜでしょうか。


958 :954:03/08/08 18:23
957は解決しました。そこで以下のように修正しました。
しかしコンパイルはできたのですが実行できません。
なぜでしょうか。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=133

959 :デフォルトの名無しさん:03/08/08 18:25
strcmpって・・・
まあいいか

960 :デフォルトの名無しさん:03/08/08 18:36
Search_rの使い方が悪いんじゃないか?
idに0わたしてるようだし

961 :955:03/08/08 19:19
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=134&fi=no

962 :955:03/08/08 19:23
・本来のmain文が読めません(;;)使い方不明です。
 とりあえず嘘main文を書いておきました。
・Display関数も、こんな風に簡略化できる。

963 :デフォルトの名無しさん:03/08/08 19:50
フローを詳しく追っていけばあなたなら分かると思うけど、

3,木田,kida(
6,下田,simoda(
2,山田,yamada(
1,中田,nakata(
7,山田,yamada(
9,ぬるぽ,gaxtu!(

こういう内容のファイルを用意してコマンドラインから
実行ファイル名 < テキストファイル
みたいにするとできる。(このへんはやってないのかな?)

データの(の意味がよく分からないけど、
そのあとになにかはいるんだろう。たぶん。

964 :デフォルトの名無しさん:03/08/08 20:50
          _
      ミ ∠_)←>木田 下田 山田 中田 山田
         /
         /   \\
 ウイーン  Γ/了    | |
  ウイーン  |.@|    | | ガッガッガッ
       | / |    人
       |/ |    <  >_Λ∩
      _/  | //.V`Д´)/
     (_フ彡        /


965 :デフォルトの名無しさん:03/08/09 20:05
lessを作れと言う課題が出ました。
UNIXのLESSです。

機能としては,
j=一行進む
k=一行戻る
space=一画面進む
b=一画面戻る
q=終了

を作れと言う事です。

C言語でncursesという端末を制御するライブラリを使って作れと言う事です。
入力として与えられたファイルから1行ずつ読み出してそれを双方向リストで繋げろという課題です。

全く分かりません助けてください。

966 :デフォルトの名無しさん:03/08/09 20:59
こういうときlessのソースを探すのが定石

967 :デフォルトの名無しさん:03/08/09 21:03
そしてGPL違反

968 :デフォルトの名無しさん:03/08/09 22:13
>>955
とりあえず
struct line{
 char *s;
 struct line *prev, *next;
};

969 :デフォルトの名無しさん:03/08/09 22:18
俺としては、
struct line
{ struct line *prev, *next;
 char s[1];};
の方がいいナ

970 :デフォルトの名無しさん:03/08/09 23:07
>>966
どうやって探せばいいのでしょう?

971 :デフォルトの名無しさん:03/08/09 23:11
>>970
ググる


972 :デフォルトの名無しさん:03/08/09 23:15
>>969
ねぇ、その要素がひとつの配列にはどんな意味があるの?C FAQにもあるけれどよく分からない。

973 :デフォルトの名無しさん:03/08/09 23:25
あーでも、http://www.catnet.ne.jp/kouno/c_faq/c2.html#6とは違うのかな?

974 :デフォルトの名無しさん:03/08/09 23:36
同じだろ

975 :デフォルトの名無しさん:03/08/09 23:41
>>972
つまり、struct lineを確保する時に配列s用の容量も上乗せすると
いっぺんに確保解放ができて便利。Win32では普通に使われている
しかし標準Cではできないらしい。CFaqの二つ目の方法は
char s[沢山];としておいて必要なだけ少なく確保する。
しかしこれも標準Cではできないらしい。

976 :デフォルトの名無しさん:03/08/09 23:47
>>975
もしかして、

struct hoge *p;
p=sizeof(struct hoge)+strlength;
strcpy(p->s,"もしかして・・・・");
free(p);

こういうこと?配列はメモリー上で連続していて、配列の大きさを越えても文句を言われないことをうまく利用して。

977 :デフォルトの名無しさん:03/08/09 23:48
ムッチリ系の巨乳美女ですね。バイブを挿入されはしゃぎまくっちゃいます。
そのあたりまでは普通のビデオですがそこからがすごいです。
なんと5人連続生姦、中出しに挑戦!オマンコの中はザーメンまみれ!
大量のザーメンが流れ出てくるラストシーンは圧巻ですよ。
無料ムービーあるよ。
http://www.cappuchinko.com/


978 :デフォルトの名無しさん:03/08/09 23:48
もしかしなくても、そういうこと。
hoge p; という使い方は考慮されていない。常にポインタで。

979 :976:03/08/09 23:49
p=sizeof(struct hoge)+strlength;じゃなくて、p=malloc(sizeof(struct hoge)+strlength);だ。

980 :デフォルトの名無しさん:03/08/09 23:50
>>976
もしかしてmallocが抜けているかもしれないけど
そういうこと

981 :976:03/08/09 23:51
>>978
なるほどねぇ、、、すごいこと考える人がいるものだね。
C FAQにあるほどだから常套手段なのか。

982 :976:03/08/09 23:51
あ、ありがとうございました。

259 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)