トップページ⇒tech
1001コメント295KB

C/C++の宿題なら俺にやらせろ!

レス数が1000を超えています。これ以上書き込みはできません。
0001C++房 ◆9ye75cT6 NGNG
俺はC++房。
今まで8ヶ月、毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら俺にやらせてくださいm(_ _)m
ただしソート、2分木など俺が5分以上悩むの問題はお断りだ。
他の手強に聞いてくれ
0002デフォルトの名無しさんNGNG
>>1
あらあら、宿題なのね?
http://pc.2ch.net/test/read.cgi/tech/1020785918/l50

あなたの役目はとうに終わった。
0003デフォルトの名無しさんNGNG
必勝の三目並べを作ってくだちい。
0004デフォルトの名無しさんNGNG
>>3
○:条件によっては勝てるアルゴリズム
●:相手が勝てる条件を作るアルゴリズム

完璧。
0005デフォルトの名無しさんNGNG
セックスのし放題なら俺にやらせろ!
0006デフォルトの名無しさんNGNG

         ∧_∧       ( )
         ( ´Д`)    //。
       /⌒    ⌒ヽ//   。
      /_/|     //    。
    (ぃ9 ./    ///     。
       /   //3      
      (  ///        
       \ .\\    
        .\ .\\   
          >  ) ) 
         / //  
         / / /  
         / / / 
       ( ヽ ヽ 
        \__つ)

とても我慢できないよぅ!



0007デフォルトの名無しさんNGNG
宿題スレはすでにあります。
ここに質問しないで↓のスレにどうぞ。

あらあら、宿題なのね?
http://pc.2ch.net/test/read.cgi/tech/1020785918/
0008デフォルトの名無しさんNGNG
今だ!8ゲトー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
       ∧∧   )      (´⌒(´
    ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
       ̄ ̄  (´⌒(´⌒;;
        ズザーーーーーッ
0009デフォルトの名無しさんNGNG
>>1よ。
その前に俺と安達裕美をヤラせろ!
0010デフォルトの名無しさんNGNG
10!
0011デフォルトの名無しさんNGNG
ageruna
0012デフォルトの名無しさんNGNG
1ヶ月ぶりだ・・・
0013デフォルトの名無しさんNGNG
エディタ機能を持った簡単なファイル操作のプログラムを作成する。
機能として次の3つの処理が行えるものとする。

1.ファイルから文書の読み込み
2.文書の入力とファイルへの書き込み
3.行単位の修正
4.終了
0014デフォルトの名無しさんNGNG
>>13
夢・独り言
http://life.2ch.net/yume/
0015デフォルトの名無しさんNGNG
なんか、13の仕様を見てみると、
「それってed?」的な考えが……
001613NGNG
≫14
ed?すまんシロウトでわからん。
学校の宿題なんだがサパーリ分からん。
0017デフォルトの名無しさんNGNG
マルチハ(・A・)イクナイ!
0018デフォルトの名無しさんNGNG
翼嫁

>>7
0019仕様書無しさんNGNG
アガトウね

       △ 
        ○
        ∨)
        ((
0020mikaNGNG
専門学校に通ってるんですけど、C言語全然分かりません。
課題の丸投げでごめんなさい。教えてください。

課題11-1
キーボードからの入力を一行受けとり、その内容をfgets によって一度文字配列に格納した後に、その
中に“A ”の文字があれば“a ”に書き換え、他の文字はそのままにして、書き換えた後の文字列を一度の
printf で表示するプログラムを作成せよ。
すなわち、”ABC ”と入力すれば、”aBC ”と表示するプログラムを作成せよ。
動作を確認し、プログラムリストをレポートとせよ。

課題12-1
キーボードからの入力を一行受けとり、その内容をfgets によって一度文字配列に格納した後に、その
中の’\n ’を除いた文字列の長さを表示するプログラムを作成せよ。例えば“abc ”と入力すると、3 と表
示する。
動作を確認し、プログラムリストをレポートとせよ。
課題12-2
キーボードからの入力を一行受けとり、その内容をfgets によって一度文字配列に格納した後に、その
文字列中の’a ’の字および’b ’の字の個数のそれぞれを、一度に表示するプログラムを作成せよ。例え
ば、”abcabca ”と入力すると、a の個数を3 、b の個数を2 と表示する。
動作を確認し、プログラムリストをレポートとせよ。
課題12-3 (optional)
キーボードからの入力を一行受けとり、その内容をfgets によって一度文字配列に格納した後に、その
文字列中の単語の数を表示するプログラムを作成せよ。なお、単語は1 文字以上の空白文字’’によって
区切られるものとする。例えば“life is not a dream.”と入力すると、5 と表示する。
動作を確認し、その動作原理の解説およびプログラムリストをレポートとせよ。
0021デフォルトの名無しさんNGNG
重複スレです。すみやかに移動をお願いいたします。
ここに質問しても放置になりますのでお気を付けください。

宿題とか手伝えます
http://pc3.2ch.net/test/read.cgi/tech/1026138039/
0022デフォルトの名無しさんNGNG
宿題丸投げ
キタ━(・∀・)━!
0023最初のだけやってみたよNGNG
int main(void)
{
 char buff[256], *p;
 buff[sizeof(buff)-1] = '\0';
retry:
 printf("\n");
 if (!fgets(buff, sizeof(buff)-1, stdin))
  goto end;
 p = buff;
next:
 switch (*p) {
 case '\0':
 case '\n':
  *p = '\0';
  goto print;
 case 'A':
  if (*(p+1) == ' ')
   *p -= 'A' - 'a';
 default:
  ++p;
  break;
 }
 goto next;
print:
 printf(&((strcmp(buff, "ABC ") != 0)<<3)["aBC \0%4d%.*s\0%2u\n"], p-buff, buff);
 goto retry;
end:
 return 0;
}
0024デフォルトの名無しさんNGNG
(・∀・)・・・・・・
002523NGNG
よく考えたら、
 case 'A':
  if (*(p+1) == ' ')
   *p -= 'A' - 'a';
は、
 case 'A':
  *p -= 'A' - 'a' &- (*(p+1) == ' ');
の方がよかった
0026デフォルトの名無しさんNGNG
> 動作を確認し、プログラムリストをレポートとせよ。

これがよくわからん。
0027セキュリティNGNG
げぇむ星人の情報求む!!
http://www.gamecreators.net/
0028デフォルトの名無しさんNGNG
これじゃだめか?

課題11-1
int i;
char line[256];
fgets(line, sizeof line, stdin);
for (i = 0; line[i] != '\0' ;i++)
  if (line[i] == 'A') line[i] = 'a';
printf("%s", line);

課題12-1
int i;
char line[256];
fgets(line, sizeof line, stdin);
printf("%d\n", strlen(line)-1);

a課題12-2
int a, b, i;
char line[256];
fgets(line, sizeof line, stdin);
for (a = b = i = 0; line[i] != '\0' ;i++)
  if (line[i] == 'a') a++;
  else if (line[i] == 'b') b++;
printf("出現回数: a -> %d回, b -> %d回\n", a, b);

課題12-3 (optional)
int i;
char line[256], *pbuf;
fgets(line, sizeof line, stdin);
for (i = 0, pbuf = strtok(line, " "); pbuf != NULL ;pbuf = strtok(NULL, " "), i++);
printf("%d\n", i);
0029デフォルトの名無しさんNGNG
>>23
gotoなんて使うな!
0030デフォルトの名無しさんNGNG
たしかに23のプログラムはひどいな
Cでgotoを使うといったら3重ループを抜ける時ぐらいだよ
switchに関しては言わないでおこう
0031デフォルトの名無しさんNGNG
>>30
>Cでgotoを使うといったら3重ループを抜ける時ぐらいだよ
さらしage
0032デフォルトの名無しさんNGNG
>>30を皿仕上げ
>>23はわざと汚くしているんだろ。
0033デフォルトの名無しさんNGNG
ネタにマジレスしてる>>30を晒しあげ
0034デフォルトの名無しさんNGNG
なんか>>23すげー必死だな。
0035デフォルトの名無しさんNGNG
>>34
そこまでやるならcaseも反則だろ。
0036デフォルトの名無しさんNGNG
晒しあげしているやつが同一人物に見えてきた(w
0037デフォルトの名無しさんNGNG
重複ageんなよ
0038デフォルトの名無しさんNGNG
「わざと汚くしてるんだよ」とか、本人しかわからねーからな。
他人がフォローする理由ないし。必死すぎ。
0039デフォルトの名無しさんNGNG
×だよ
○だろ
0040デフォルトの名無しさんNGNG
ちゃんとageでやろうぜ
004123NGNG
まあ、俺は23だけどさ、
ろくにわかってない奴(goto使わなきゃループも出来ない奴)でも
 printf(&((strcmp(buff, "ABC ") != 0)<<3)["aBC \0%4d%.*s\0%2u\n"], p-buff, buff);
とか
 case 'A':
  *p -= 'A' - 'a' &- (*(p+1) == ' ');
の動作を理解出来るようなら苦労はしないよな

おっと、勘違いしないで。
↑のは両方「わざとわかりずらいように」書いたんだからね。
004223NGNG
補足
そのままコピーして提出したら怒られるように、わざとね
0043デフォルトの名無しさんNGNG
ということで23を晒しあげ
0044デフォルトの名無しさんNGNG
   A
  (゚o゚)<クソスレageる奴は地獄に落ちるって母ちゃん言ってたぞ
  (ー)ー
   ))
0045デフォルトの名無しさんNGNG
>>44
姉ちゃんじゃねぇのか?
0046デフォルトの名無しさんNGNG
今度は>>30を晒しあげ
0047デフォルトの名無しさんNGNG
   A
  (゚o゚)<婆ちゃんだった。
  (ー)ー
   ))
004838NGNG
ちゃんとスレ全体読んでからレスします・・・

       /         /.    │    ヽ          \
 ∧ ∧/          /.     │     ヽ         ∧\∧
(  ⌒ ヽ           /      │      ヽ        (  ⌒ ヽ
 ∪  ノ          /      │      ヽ         ∪  ノ
  ヽ_),)           /       │       ヽ        し' l_ノ
       ミ      /       │        ヽ
            ∧ /∧      │       ∧ヽ∧  彡
           (  ⌒ ヽ      │      (  ⌒ ヽ
            ∪  ノ ミ  ∧│∧  彡   ∪  ノ
             ヽ_),)    (  ⌒ ヽ      し' l_ノ
                     ∪  ノ
                      ヽ_),)
0049デフォルトの名無しさんNGNG
ここはひどい宿題ですね
0050デフォルトの名無しさんNGNG
こんなにレスがついて>>20も嬉しいだろう
0051デフォルトの名無しさんNGNG
宿題は宿題スレにー。

宿題とか手伝えます
http://pc3.2ch.net/test/read.cgi/tech/1026138039/
0052デフォルトの名無しさんNGNG
>>51
それ1000逝ったから、このスレを宿題スレにしようよ。
0053デフォルトの名無しさんNGNG
C/C++以外も可?
0054デフォルトの名無しさんNGNG
>>53
タイトル読めや。
0055デフォルトの名無しさんNGNG
宿題手伝います
http://pc3.2ch.net/test/read.cgi/tech/1027756023/l50
0056デフォルトの名無しさんNGNG

http://pc3.2ch.net/test/read.cgi/tech/1027756023/6

なんかこっちをC/C++専用の宿題スレ化するみたいなことが書いてあったが。
0057Rina ◆tI333vNE NGNG
すでにあるならお任せしたほうがいいと思ったんですが,
駄目だったでしょうか?
0058デフォルトの名無しさんNGNG
>>57
宿題スレは一つでいい。

宿題手伝います
http://pc3.2ch.net/test/read.cgi/tech/1027756023/l50
0059Rina ◆tI333vNE NGNG
らじゃ.
0060デフォルトの名無しさんNGNG
ぶらじゃ
0061デフォルトの名無しさんNGNG
まはらじゃ
0062デフォルトの名無しさんNGNG
ぷろしいじゃ
0063デフォルトの名無しさんNGNG
いんてじゃ
0064デフォルトの名無しさんNGNG
A4サイズのビットマップファイルを
90度270度180度に回転し
出力するプログラムを作れ。
0065デフォルトの名無しさんNGNG
>>64
作った。
0066デフォルトの名無しさんNGNG
>>65
さんきゅ、使わせてもらってるよ。
0067デフォルトの名無しさんNGNG
A4サイズってなんだ。
モニター依存か。
0068デフォルトの名無しさんNGNG
>>64
普通にA4用紙に印刷してから回転すると楽だよ。
0069デフォルトの名無しさんNGNG
宿題じゃないが、>>30くらいに関連して、正直c/c++で多重ループを抜けるのはどーやんだ。
フラグ立てるのか、goto使うのか、定石を教えてください。
0070デフォルトの名無しさんNGNG
>>69
gotoに一票
0071デフォルトの名無しさんNGNG
>69
時と場合に応じて。あと、その部分を関数に分けてreturnで抜けるとか
007269NGNG
そーか。
goto使ってもいいんだな、ほんとにいいんだな、
文句いわれないんだな。
じゃあ、使おう。
0073デフォルトの名無しさんNGNG
AVL木のソースくれ
0074 NGNG
質問

三角関数が math.h でどのように定義してあるのか見てみたら
それらしいのがみあたらず、それっぽいもので

double _RTLENTRY _EXPFUNC sin (double __x);

がありました。あってますか?

てっきり、こんなものを想定してました・・・

single sin(single i){
}
0075デフォルトの名無しさんNGNG
ライブラリファイル *.lib の使い方を教えて下さい。
0076デフォルトの名無しさんNGNG
>>74
man sin
>>75
man cc
0077デフォルトの名無しさんNGNG
>>74
つぅか型から変わってるんだが・・・。
0078デフォルトの名無しさんNGNG
>>74
定義はそこには無いんじゃないか?
0079デフォルトの名無しさんNGNG
>>76
man co
0080デフォルトの名無しさんNGNG
less /usr/src/lib/libm/common/sincos.c
008174NGNG
win98 + bcc32.exe です
man は使えません・・・
0082デフォルトの名無しさんNGNG
//---------------------------------------------------------------------------

#pragma hdrstop
#include <stdio.h>
#include <iostream.h>
#include <conio.h>

//---------------------------------------------------------------------------

void item();
void deposit(int item);
#pragma argsused
int main(void)
{
char option;

cout << endl;
cout << "S) Select An Item" << endl;
cout << "D) Deposit Money" << endl;
cout << "C) Cancel" << endl << endl;

cout << "Select the menu:";
cin >> option;

clrscr();

if (option == 'S' || option == 's')
{
item();
clrscr();
}

else if (option == 'D' || option == 'd')
{
deposit(int item);
clrscr();
}

else if (option == 'C' || option == 'c')
cout << "cancel" << endl;

else
cout << "Please select S or D or C" << endl;

getch();

}
0083デフォルトの名無しさんNGNG
void item()
{
int item;

cout << " 1 2 3" << endl;
cout << " Coke Sprite Orange Juice" << endl;
cout << "$1.00 $1.00 $1.25" << endl << endl;

cout << " 4 5 6" << endl;
cout << " Mars Oh Henry! Kit-Kat" << endl;
cout << "$0.75 $0.75 $1.00" << endl << endl;

cout << "Select the item:";
cin >> item;
clrscr();

if (item == 1)
cout << "Please deposit $1.00";
else if (item == 2)
cout << "Please deposit $1.00";
else if (item == 3)
cout << "Please deposit $1.25";
else if (item == 4)
cout << "Please deposit $0.75";
else if (item == 5)
cout << "Please deposit $0.75";
else if (item == 6)
cout << "Please deposit $1.00";

deposit(int item);
}


void deposit(int item)
{
int dep, change;
int howMuch[6]={100, 100, 125, 75, 75, 100};

cout << endl << endl;
cout << "Enter how much you are going to deposit" << endl;
cin >> dep;

change = dep - howMuch[item - 1];
cout << "Your change is " << change << endl;

}
何が間違ってる?
0084デフォルトの名無しさんNGNG
>>81
http://www.linux.or.jp/JM/
0085デフォルトの名無しさんNGNG
>82-83
(お約束だけど)質問の仕方
0086デフォルトの名無しさんNGNG
モ ヒ モ ヒ 必 死 だ な
0087モヒモヒNGNG
必死っすよ。
ってかこれ明日がdueで、もうあきらめモード。
ここまででいいかなって思いがある。十分やったっしょ。
0088デフォルトの名無しさんNGNG
どうでもいいが、clrscrが時代遅れに思えて仕方ない。
0089デフォルトの名無しさんNGNG
>>87
せめて商品カタログは構造体の配列にして
すべての処理で参照するようにせんかね?
コンピュータにさせるべきことを人間が打ち込みすぎてるよそれ。
価格変更や商品点数変更をしようとするとあちこち変更が必要になってるやん。
0090モヒモヒNGNG
clrscrって時代遅れなん?
今流はどんなんよ。
0091デフォルトの名無しさんNGNG
>>90
少なくとも単語は略さないね。
clear_screen()とかClearScreen()とかそんな方向じゃない?
C++ならむしろ Screen というオブジェクトで Screen.clear()とかね。
0092デフォルトの名無しさんNGNG
clearScreen ClearScreen clear_screen
0093 NGNG
>>84
使えました。13件ヒット
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/sin.3.html
しかし
>>78
定義が見つかりませんでした。
0094モヒモヒNGNG
誰か82,83のコードをランしてくれた人いますか?
syntax errorってのが起きて困ってるんですけど、見てくれては頂けないでしょうか。
0095名無しさん@EmacsNGNG
depositのコールの仕方がおかしい.
  deposit(int item)って宣言やん….
0096デフォルトの名無しさんNGNG
>>94 ラン以前にコンパイル不能ですがな。
0097デフォルトの名無しさんNGNG
っていうかsyntax errorくらい自分で直せよ.
0098デフォルトの名無しさんNGNG
ソースがわかりにくい。
void item()で"if-elseif"の連続があるけど、switchを使った方がいいと思う。
0099デフォルトの名無しさんNGNG
あーすみません、FtpCommand関数を使ってサーバーにあるファイルの
パーミッションをゲットするにはどうすればいいのでしょうか?
因みにセットする場合のコマンドは644をセットする場合
site chmod 644 でいいんですよね?
0100デフォルトの名無しさんNGNG
っていうかC++で書く必要がないような….
あと, stdio.hとiostreamを混在させるのは俺は好かん.
0101モヒモヒNGNG
depositのコールの仕方がわかりません。
思いつく事全部やったんですけど。
deposit(), deposit(int), deposit(int i), deposit(int item)
どれもコンパイルしないっす。
0102デフォルトの名無しさんNGNG
>>101
すげえ! 天才じゃないのか?(笑)
0103名無しさん@EmacsNGNG
>>101
2ちゃんにきてる暇があったら, C言語の勉強した方がいいと思う.
人に尋ねる以前の問題.
0104デフォルトの名無しさんNGNG
>>101
自分の惑星に帰ったほうがいいんじゃないのか?
0105デフォルトの名無しさんNGNG
氏ねよ
0106名無しさん@EmacsNGNG
正直, こんなに叩かれるのも珍しいな. ある意味>>101は天才かも.
0107デフォルトの名無しさんNGNG
メモリに記録された画像データをHDに記録したいんですが
どこか良い手ほどきしてるHP教えてください
0108デフォルトの名無しさんNGNG
>>107
man fwrite
0109デフォルトの名無しさんNGNG
>>モヒモヒ
基本からやり直した方がいいよ。
つか、そのソースは自分で作った奴じゃなくて、他人のをコピペして改造した
だけだろ。
0110デフォルトの名無しさんNGNG
>>93
double sin(double x){
  float s;
  _asm{
    fld x
    lea ecx, [c]
    lea eax, [s]
    fsincos
    fstp dword ptr[ecx]
    fstp dword ptr[eax]
  }
  return s;
}
こんな感じかな?
あとこういうのが気になりだしたら、
http://sources.redhat.com/glibc/
あたりからソースを持ってきて見てみるといいかも。
0111名無しさん@EmacsNGNG
>>110
ふーん、asm使ってるのか…. 勉強ニナターヨ. >>93じゃないが
気になるので俺もglibcのソース落してみる. さんくすこ.
0112デフォルトの名無しさんNGNG
オレもプログラムを作り始めたころは
ループのないコードを書いてなぜすぐ
終了するのか悩んだものさ。
0113デフォルトの名無しさんNGNG
すみません。
main(int argc, char **argv);
の部分が本によっては
main(int argc, char *argv);
とアスタリスクが1つの本と2つの本があるのですがどう違うのでしょうか?
0114デフォルトの名無しさんNGNG
誤植だろ
0115デフォルトの名無しさんNGNG
>>113
int main(int argc, char* argv[])ってかくつもりだったんか?
0116デフォルトの名無しさんNGNG
>>113
ひとつだけなのか。
*argv[]とでもなっていないなら、その本は棄てるべき。
0117デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=14&fi=no
C++初めて弄ったんだけど、どう?(ちなみに自販機)
ネタ混じりだが此れ自体はネタではない。
0118デフォルトの名無しさんNGNG
"ガコン" が気に入った
0119名無しさん@EmacsNGNG
'Oyajiが出てきた'ってのが気に入った.
ドラクエみたい…w
0120113NGNG
そうですか・・・ どうも誤植だったみたいです。 4問先の問題では直っていましたし。
いまだに char **argv が何に対するポインタなのかはさっぱりですけど。
0121デフォルトの名無しさんNGNG
>>120
char *に対するポインタ
0122デフォルトの名無しさんNGNG
>>120
腐った機構。
0123デフォルトの名無しさんNGNG
>>120
例えば
bcc foo.cpp
とコマンドラインから入力した場合、
argcは2となり、
argv[0]は"bcc"
argv[1]は"foo.cpp"
となるのです。
0124デフォルトの名無しさんNGNG
>>74よ、singleやのーてfloatや
そいつが三角関数かどうかは、やってみるのが早いやろ
どうなってたら三角関数か知らんつーのは反則やけど
媒介変数とか知っとんのやったらこんな実験くらい思いついたらどないやねん
printfで表示さしてみて三角関数表でチェックゆーのもつまらんやろ

#include <windows.h>
#include <math.h>

main()
{
HDC hdc;
double t;

hdc = CreateDC("DISPLAY", NULL, NULL, NULL);

for(t = 0.0; t <= 6.28; t += 0.01)
{
double x = sin(t);
double y = cos(t);

LineTo(hdc, 320 + 300 * x, 240 + 200 * y);
}

DeleteDC(hdc);
}
0125デフォルトの名無しさんNGNG
directxで四角い板を表示するプログラムを作れという課題が出ました。
だれか解けや。カスどもが!ぼけ!ぼけ!みんなみんな死んでしまえ!
0126デフォルトの名無しさんNGNG
スレちがいだなぁ。
0127デフォルトの名無しさんNGNG
斬新なスレだ。宿題やってくれっていうのはよく見るけども。
0128Linux!NGNG
>>125
まずdirectXを窓から投げ捨ててからOpenGLを使いませう!
0129デフォルトの名無しさんNGNG
>>125
DirectX1でもいいの?3Dなさそうだけど。
0130デフォルトの名無しさんNGNG
頼んでおきながら、みんなみんな死んでしまえっていうのが分からん。
0131デフォルトの名無しさんNGNG
DirectX1って存在したの?
GameSDKの次はDirectX2じゃないの?
0132デフォルトの名無しさんNGNG
>>125

#include <HomeWork.h>
int main()
{
  DDHomeWork Dx;
  if( !Dx.Init() )
    return (-1);
  Dx.square(10,10,20,20);
  Dx.wait();
  return (0);
}
0133名無しさん@EmacsNGNG
>>132
細かいことだが
  return(1);
の方がいいと思われ.
0134132NGNG
何となくで作れますた。
ちゃんと上のソース使ったぞ!
(一部変更 Dx.square()の引数なし! DDHomeWorkのコンストラクタで
四角の頂点を初期化〜☆)
DirectX7だけど・・・。
四角い板って意外にむずいな・・・。3D面白いかも知れん・・・。
0135132NGNG
>>133
そうだよ・・・return (1)がよろし・・・。

何年プログラム組んでんだよ俺・・・(遠い目)
0136名無しさん@EmacsNGNG
実は俺もよくやる…w
0137デフォルトの名無しさんNGNG
>>132

#include "DoAllMyHomeWorks.c"

だろ
0138132NGNG
>>137
どうやってクラスを実装しているんだよ 藁)
0139デフォルトの名無しさんNGNG
>>125
サーフェスに四角でも描いて提出しとけ。
カスが!ぼけ!ぼけ!おまえはおまえは死んでしまえ!
0140デフォルトの名無しさんNGNG
>>138
COMみたいにvtblを自前で書いてるんだろ(他人事)
0141138NGNG
>>140
それはもうDirectXの宿題の範囲を超えている予感。(俺事!?)
0142デフォルトの名無しさんNGNG
いきなり質問ですんませんが

protected継承はどういう目的で使うものなんでしょうか?
あるクラスで公開されているものを派生クラスで隠そうとする発想が
どうにも分からんのですが、言語仕様として存在するということは
何らかの使い方を想定しているんですよね??
0143デフォルトの名無しさんNGNG
うひょひょ(w
0144デフォルトの名無しさんNGNG
>>142
それは、親クラスのメンバを継承先の子クラスから自由にいじりたい時
だろう。

privateでは継承した途端にマスキングされてしまうし、publicではクラス
外から自由に触れてしまう。
0145142NGNG
>>144
ああ、なんか漏れすっげー勘違いしてた。
さんくす!
0146デフォルトの名無しさんNGNG
>>145
ちょっと待って。俺が勘違いしていたかも。public継承はよく使うけど、
private継承やprotected継承はあまり使わないね。
0147デフォルトの名無しさんNGNG
private/protectedは必要ないと思う。
それらが必要なケースでは所有で解決するべきじゃないか?
アップキャストすればメンバさわり放題なんだし。
0148デフォルトの名無しさんNGNG
えっと、
public継承:
  元protected → protectedのまま
  元public → publicのまま

protected継承:
  元protected/public → protected

private継承:
  元protected/public → private
でよかったっけ。
0149デフォルトの名無しさんNGNG
Effective C++改訂2版のP176に、「protected継承なるものにどういう
意味を持たせればいいのかは、誰も知らないようだ。」とあります。

メンバをprivateやprotected属性にするのとは違い、継承にprivateや
protectedを使う時は、注意が必要なようです。
0150デフォルトの名無しさんNGNG
public継承はis-a
protected継承はhas-a
と聞いたことがある。
0151デフォルトの名無しさんNGNG
>>148
そうそう。
0152デフォルトの名無しさんNGNG
private継承は使うよ。protected継承はいらん。
0153142=148NGNG
あー、やっぱりprotected継承は考えなくていいのか。
てゆーか EffectiveC++読まなきゃだめだね(苦笑

どうもさんくすでした。
0154デフォルトの名無しさんNGNG
>>152
どういうときに使う?
あんまり意味があるとは思えないんだけど
0155デフォルトの名無しさんNGNG
>>154
has-a時に、
ベースクラスのprotectedメンバを操作する場合
(ベースクラスのコンストラクタやデストラクタがprotected等)や、
ベースクラスの仮想関数をオーバーライドする場合。
0156デフォルトの名無しさんNGNG
>>154
所有/包含の代わりに使う。「それを実装手段とする」だね。また継承元
のprotedtedメンバを使えるという点で、包含よりも柔軟な事がある。
0157デフォルトの名無しさんNGNG
なんか、C++相談室の実質的な次スレになりつつあるなぁ
0158デフォルトの名無しさんNGNG
>>157
あちらのスレは何気に荒れているからかな。
0159デフォルトの名無しさんNGNG
>>155-156
なるほどねぇ、俺は絶対やりたくないですね
面倒でも所有させちゃいます。
0160デフォルトの名無しさんNGNG
>>159
所有/包含とfriend class宣言のセットが一番ポピュラーなんでしょうな。
0161デフォルトの名無しさんNGNG
>>159
だから所有の1つの方法なんだって。
>>160 のいってるように、
protectedにアクセスするだけなら
メンバとして所有してfriendを使ってもいい。
オーバーライドが必要ならprivate継承。
0162デフォルトの名無しさんNGNG
>>161 俺は絶対やりたくないですね
って書いてあるけど、何をそんなにムキになってるんだ?
0163デフォルトの名無しさんNGNG
>>162
あんまりバカだから。
>>159
> なるほどねぇ、俺は絶対やりたくないですね
> 面倒でも所有させちゃいます。
とかバカ丸出し。
その所有を実現するために、
場合によっては必要なんだよ。
夏ってこんな奴ばっかりだな。
0164デフォルトの名無しさんNGNG
>必要なんだよ
必要な例って何?
すべて所有で置き換え可能だから、
C#やJavaではprivate継承がないんでしょ。
0165デフォルトの名無しさんNGNG
>>164
>>155>>156
0166デフォルトの名無しさんNGNG
>>165
だから、プロテクトメンバーを捜査する必要がある場面って何かある?
勿論柔軟なプログラムが可能だろうけど、親クラスの実装に強く依存することになるんでない?
0167デフォルトの名無しさんNGNG
s/捜査/操作/
0168デフォルトの名無しさんNGNG
>>166
SOFTBANK刊、「詳説C++」のP165〜P168に、まさにそのような論議が
書かれています。XはYを使って実装される、の関係を表すのに、できる
だけ包含/所有を使い、private/protected継承は使わないように、と
推奨されています。

他の欠点として、継承すると、親クラスは一つしか使えないことがあげ
られています。包含/所有を使えば、いくつでもはめ込むことが可能で
すから。

protectedなメンバを参照する機会というのは、実際、あまりないでしょ
う。論理的な組み立ての流れの中で、そのような場合も考慮しておか
なければならないでしょうが、実務の世界では親クラスの設計が悪い
時に現れてくるかもしれません。
0169花男NGNG
すみません。宿題でどうしても分からないのですが手伝っていただけませんでしょうか?
C言語の構造体の問題です。
「1:00から5:00まで4時間分の電車の時刻表がある。この時間帯(1:00〜4:00)
のある時刻を入力し、次の電車の到着時刻は何分後で何時何分か表示せよ

(時刻表)
1時 10分 24分 35分  40分 55分 59分
2時 13分 26分 37分  49分 
3時 7分  15分 45分
4時 30分 51分       」

ちなみに自分はプログラムではCが初めてでそれも数ヶ月はじめたばかりの厨房です。
せめてヒントを下さい。よろしくお願いいたします。
0170デフォルトの名無しさんNGNG
確かにこんな事するぐらいなら、class Aのインターフェースをもう少し改良
して所有させればいいように思う。それから A* ap = &b; とできないので、
ポリモーフィックな動作をさせられないのは意外だった。

##include <iostream>
using namespace std;

class A {
protected:
int i;
A() { i = 111; }
virtual void print() const { cout << i << endl; }
};

class B : private A {
int j;
public:
B() : A() { j = 222; }
void print() const { A::print(); cout << j << endl; }
};

int main()
{
B b;
b.print();
}
0171デフォルトの名無しさんNGNG
>>169
構造体を使わずに書けるが。
0172花男NGNG
構造体を使えという問題なんです。よろしくお願いします。
0173デフォルトの名無しさんNGNG
>>172
時刻を構造体に入れるの?
0174デフォルトの名無しさんNGNG
>>169 ほれ。盆休み大サービスじゃ。

#include <stdio.h>

struct train_arrival {
int hour;
int min;
} TA[] = {{1, 10}, {1, 24}, {1, 35}, {1, 40}, {1, 55}, {1, 59}, {2, 13}, {2, 26}, {2, 37},
{2, 49}, {3, 7}, {3, 15}, {3, 45}, {4, 30}, {4, 51}, {-1, -1}};

int main(void)
{
int h, m, i = 0, j, k;

printf("現在時刻を入力して下さい(hh:mm)? ");
scanf("%d:%d", &h, &m);

while (TA[i].hour >= 0)
if ((j = TA[i].hour * 60 + TA[i].min) < (k = h * 60 + m)) i++;
else break;

printf("次の電車の到着まで後 %d分で、%d時%d分に到着します。\n", j - k, j / 60, j % 60);

return 0;
}
0175花男NGNG
169さん 173さん
本当に申し訳ありません。やむを得ぬ用事が出来てしまったためまた改めてこのスレで
質問します。またどうぞよろしくお願いします。
173さんの質問は・・・恐らくint型で。
0176デフォルトの名無しさんNGNG
オナーニタイムか
0177花男NGNG
ですが取り合えず今は保留として置いてください。よろしくお願いします。
0178デフォルトの名無しさんNGNG
>花男氏
>>174さんのサービスについてのコメントはなしですか?
0179デフォルトの名無しさんNGNG
>>178
マルチだからあちこちのスレ見てて忙しいんだよ
0180デフォルトの名無しさんNGNG
宿題スレでヒントを出したものだが、>>174さんがずばり書いてしまっていてショボーン(w
0181デフォルトの名無しさんNGNG
>>180
こういう場合は答えを書かずにつき合ってやった方がいいのか。
これからそうしようか。
0182デフォルトの名無しさんNGNG
>>170
機能が変容するから多態できなくて当然

class battle_ship {
protected:
report local_order(command) ;
public:
void sail(void) ;
void move(two_dimensional_direction) ;
void attack(battle_ship) ;
void attack(submarine) ;
void communicate(station) ;
void suicide_bomb(void) ;
} ;

class space_battle_ship : protected battle_ship {
public:
void takeoff(void) ;
void move(three_dimensional_direction) ;
void attack(space_battle_ship) ;
using battle_ship::communicate ;
using battle_ship::suicide_bomb ;
void hadouho(three_dimensional_direction) ;
} ;

battle_ship yamato ;
space_battle_ship uchu_senkan_yamato ;
0183デフォルトの名無しさんNGNG
>>181
まったくやる気の見えないやつはマルチポストしたりしてうざかったりするので
ずばり答を書いて追い払うこともあったりする(w

今回はヒントをくれということだったんで、少しの間付き合ってみようかと思ってた。
0184デフォルトの名無しさんNGNG
>>182
using宣言を行うと、何か特別な意味があるの?virtualがついてない
から関数のオーバライドとも違うようだけど・・・・

>>183
なるほど。これから場の雰囲気を読むようにしますね。
0185デフォルトの名無しさんNGNG
usingで該当スープ(この場合はspace_battle_shipのpublic)に
メソッドをインポートしているだけ。
void communicate() { battle_ship::communicate(); }と記述しなくていい。
0186デフォルトの名無しさんNGNG
>>168
>継承すると、親クラスは一つしか使えない
ってどゆこと?
0187デフォルトの名無しさんNGNG
>>186
例えば Stackクラスを Listクラスで実装するとして

class Stack {
List l1;
List l2;
};

のように Listクラスを Stackクラスの中に必要なだけ埋め込み
できるけど、継承したら Listクラスの実体は一つしかできない。
0188デフォルトの名無しさんNGNG
>>185
ん?特にbattle::とスコープを解決しなくても、public継承なら親クラスの
関数はそのまま継承されてくると思うけど?usingをつけないと都合の
悪いことがあるのかな、と思って。
0189デフォルトの名無しさんNGNG
>>185
スマソ、protected継承でした。逝ってきます・・・・・・
0190186NGNG
ああ、なるほど。
0191デフォルトの名無しさんNGNG
>>185
そしたら、こういう場合の B::print は、public属性なのでしょうか、それとも
protected属性なのでしょうか。わけが分からなくなってきました(~_~;)

class A {
int i;
public:
A() { i = 111; }
void print() const { cout << i << endl; }
};

class B : protected A {
public:
using A::print; // void print() const { A::print(); }
};

class C : protected B {
public:
using B::print;
};

int main()
{
B b;
C c;

b.print();
c.print();
}
0192デフォルトの名無しさんNGNG
C++関係の質問はC++相談室でする事にします。スレ汚しスマソ。
0193デフォルトの名無しさんNGNG
>>191
そんなもんやってみれば一発じゃん
0194花男=169NGNG
174さん、180さん、183さん
特に174さん問題解いてくださって本当にありがとうございました!

すれ違いになってしまって174さんの書きこみ(解答)を見ずに175、177
のレスを書いた後席をはずしてしまいました。というか外出しておりまして
現在も外から書いております。本当に返事が遅れてしまい申し訳ありませんでした。
現在用事を済ませ、見せていただいています。あんなに早く解ける方がいるとは
思いませんでした。

今更なのですが{-1, -1}(8行目)がどういうことか分からないのですが
解説して頂けないでしょうか。
このプログラムそのものに関してはこれからじっくり考えさせて頂きたいと
思います。
0195デフォルトの名無しさんNGNG
>>194
while (TA[i].hour >= 0) の所でwhileを抜ける為。
0196花男NGNG
195さん
レス有難うございます。もう少し分かりやすく説明して頂けないでしょうか。
0197デフォルトの名無しさんNGNG
>>194
>>195さんも書かれていますが、最低限のエラートラップです。
配列添字が範囲を超えてしまうのを防いでいます。
0198デフォルトの名無しさんNGNG
>>196
それから入力する時刻が1:00〜4:00までに限定されていますが、これは
チェックしてないので、チェックするように変えてみてください。
0199花男NGNG
197さん 有難うございました。すみません あとの細かいところは
考えさせてください。プログラムの全体の形は理解するのに時間がかかると
思いますので・・
もっと厨房的な質問になってしまうのですが

printf("現在時刻を入力して下さい(hh:mm)? "); の(hh:mm)
のような表記で時間が出るのでしょうか。本当に厨房な質問ですみません。
0200デフォルトの名無しさんNGNG
>数ヶ月はじめたばかりの
数ヶ月でそれかよ、、、そんなの始めて2日以内のところだろ、、
0201デフォルトの名無しさんNGNG
>>199
違う違う。11:22のようにコロン( : )を間に挟んで入力してくれ、という意味。
例えば 1時20分なら 1:20[enter] と入れればよい。
0202花男NGNG
理解しました。
お恥ずかしい限りです。

じっくり考えたいと思います。皆さんありがとうございました。
0203デフォルトの名無しさんNGNG
>>187
本に書いてあることを鵜呑みにしないで、実践することも必要だぞ。
こんなケース無いだの、ベースクラスが悪いだの、
頭の中で空想しても何も得ることはない。
要は所有が必要なときに、その実装として何が最適かだ。
メンバで持つだけで解決できなかったり、
ベースクラスが変更できないときに、
実装できません・ベースクラスの設計が悪いです・
僕は悪くありませんじゃプロとして失格だろ。
自分の知識の無さが恥ずかしくて、自分を正当化ばかりしていないで、
設計の選択肢の1つとして覚えておけ。
誰もお前に、その手法を強制しているわけじゃない。
言ってること理解できるか?
0204名無しさん@EmacsNGNG
>>203
カコイイ!! 確かにそうだと思う.

…でもベースクラスの設計が悪かったんだよぉ, 残業になったのは
俺のせいじゃないよぉ、ウワアアアァァァンヽ(´Д`)ノ

…ごめん, 俺テンパってるかもしれん. 逝って来る.
0205デフォルトの名無しさんNGNG
>>200
それよりも日本語として変。
0206デフォルトの名無しさんNGNG
あーすみません、FtpCommand関数を使ってサーバーにあるファイルの
パーミッションをゲットするにはどうすればいいのでしょうか?
0207デフォルトの名無しさんNGNG
>>203
ベースクラスの設計が悪くてプロテクトメンバーをいじる必要があるなら、
継承させずにもう一枚少し大きめなラッパーを書きますが、何か?
0208デフォルトの名無しさんNGNG
>>207
こういう粘着の質問に答えたヤシは災難だな、いってることも矛盾だらけだし
0209デフォルトの名無しさんNGNG
プログラミングにはいろいろな手法があるので実装は人それぞれだし、
どれが正しいというもんでもない。
チーム開発では統一しなきゃいかんけど。
絶対に正しいプログラムは作れないという数学的証明があるらしい。
0210デフォルトの名無しさんNGNG
消費リソースを抑えるか、実行速度を取るか、再利用性&可読性、安定性で変わってくる。
0211デフォルトの名無しさんNGNG
>>209
>絶対に正しいプログラムは作れないという数学的証明があるらしい。
何もしないプログラム。

nop

すぐ終わるプログラム。

halt
0212デフォルトの名無しさんNGNG
>>209
チューリングマシンの停止問題っすか?
0213デフォルトの名無しさんNGNG
コボルがわからん
0214花男NGNG
すみません。>>169 で質問した花男というものですがやっぱり分かりません。
どなたか助けてください。困っている点その�@コンパイルしたら>>174 で通るんですが
「パラメーターが足りません」とエラー表示され実行されないんです。
どうしたら良いのでしょうか。
�Awhile〜else break;間の意味を解説して頂けませんでしょうか。
お願いします。
0215デフォルトの名無しさんNGNG
>>214
機種依存文字。
0216花男NGNG
え?読めない文字ありますか?
0217デフォルトの名無しさんNGNG
>>216
215「丸つき数字を使うなヴォケ」ということです。
分かりましたか?
0218デフォルトの名無しさんNGNG
>>214
できた実行形式のファイルの名前は何?
0219花男NGNG
すみません。丸付き数字は使わないようにします。
実行形式のファイル名は「shukudai.c」とつけました。
お願いします。上記の2点に関して教えてください。
0220218NGNG
あれ、はずしたみたい。
他に同名のファイルがあって、そっちを実行してんじゃないかとおもった。
0221デフォルトの名無しさんNGNG
>>214
k = h * 60 + m;
while (TA[i].hour != -1) {
 j = TA[i].hour * 60 + TA[i].min;
 if (j >= k) break;
 i++;
}
ちょっと変更してみた。多少わかり易くなったと思うけど。
これでもわからないですか?
0222デフォルトの名無しさんNGNG
実行ファイルに「 .c」はないと思うが・・・
0223デフォルトの名無しさんNGNG
>>214
whileの中の条件式は、配列TAが最後まで到達したかどうか見てる。
TAの初期化で最後に{-1,-1}ってのがあるだろ。それと比べてる。
これは番兵という手法で一般的に使われる。

ifの中は時と分で表されたものを分だけに直して、大小比較してる。
たとえば3時15分だったら、(3*60+15)=195分とかね。
構造体のままだと大小比較できないから分に直してるわけだ。

で、入力された時刻と時刻表を比べて入力された時刻の直後の時刻表の時刻が
出てきたらbreakしてる。

こんなもんでいいかな。
0224デフォルトの名無しさんNGNG
番兵って、この場合、最後を{5,0}とかにする手法じゃなかったけ。
0225デフォルトの名無しさんNGNG
>>224
要はデータに絶対出てこない数値が入っていれば良いんでは?
0226花男NGNG
なんとなくですが理解できました。
わかりやすく説明して頂いたように思います。
ありがとうございます。たいへん助かりました。
{-1,-1}に関しては前もどなたかにお聞きしたのですが
使い方が難しいですね。

ところでコンパイルの方は何故エラーが出てしまうのでしょう。
0227224NGNG
>>225
最後を{5,0}にすると
while (TA[i].hour >= 0)
を
while (1)
とかけるようになる。
終端検出の比較と次の到着時刻を求める比較とを
同じにすることで、ループ中の比較回数を減らす手法だと
解釈していたんだけど。
0228デフォルトの名無しさんNGNG
>>227
でも5時は (現在の仕様では) ありえないし。

でも100%現実には-1時はないから -1の法がいいけどな。
0229224NGNG
高速化を考えなくていい状況なら、俺も-1を使うと思う。
番兵を使うと読みにくくなると思うしね。

単に >>223 の番兵の解釈が間違っているんじゃないかといいたいだけ。
0230223NGNG
>>229
んん。おれの番兵の解釈間違ってるのか。
番兵って言葉どの本で覚えたんだっけかな。

手近にある「プログラミング作法」を開いてみると、
訳語が「番人」だったけど載ってた(以後「番人」で統一する)。

ちょっと引用すると、

>データの末尾にNONWORDを2〜3個追加しておくと、プログラムのメイン処理ルー
>プが格段にシンプルになる。これは番人(sentinel)値を追加して境界をマーク
>するテクニックの一例だ。
(「プログラミング作法」103ページ)

コードまでは載せないけど、ここに書いてあることからおれが読み取れることは
・あるデータの集まりがあって
・その末尾にありえないデータを置いておく。このありえないデータ値を「番人」と呼ぶ
・データの集まりを一通り舐めるときは番人が出現するまでループをまわす
ということなんだけど、この解釈で間違ってる?
間違ってるとすると認識を改めないと。
0231デフォルトの名無しさんNGNG
>230(=223)
あるデータの集まりを探索するときに、末尾に必ず条件にマッチする
データ(これには番兵であるという印を付けておく必要がある)を置いて
おく。このことによって(ループのたびに行われる)終了判定の式を省く
ことができる。

ってのが(いわゆる)番兵の使用法ですよね。

たぶん223さんの頭にあるのは、Cの文字列のNULL終端子みたいな
ものだと思うのですが、そういうのを番兵と呼ぶのは、少なくとも私は
聞いたことないです。
0232223NGNG
>>231
そうです。確かにCの文字列の終端子が頭にありました。
>>174の例でいうと{5,0}とか、拡張を考えると{25,0}みたいな
ものをおいておくとループの中で
・配列の末尾かどうか
・条件に合うものかどうか
という二つの判定を一つに省くことができるということですね。
で、番兵にぶちあたったかどうかというのはループの外で判定すると。

なるほど一つ賢くなりました。ありがとうございました。
0233デフォルトの名無しさんNGNG
なにかないの〜?
0234デフォルトの名無しさんNGNG
先生!浮動小数点数をC風文字列に変換するにはどうしたらいいんですか?
言語はC++かCで。
0235デフォルトの名無しさんNGNG
>234
sprintf()
0236234NGNG
あ、いないと思いますけどsprintfなんて辞めてくださいよ。
0237デフォルトの名無しさんNGNG
>>236
なんで?
0238234NGNG
ぁ・・・・・。
0239234NGNG
ごめんなさい。
ここで聞いたのが間違いでした。
0240デフォルトの名無しさんNGNG
>>236
てめー、Cをなめてんじゃねーのか?
勘違いすんじゃねーよボケ!
0241デフォルトの名無しさんNGNG
>>239
本気で教えてもらいたいなら、そういうなめた態度止めろよ。
0242デフォルトの名無しさんNGNG
>234
最初からここで質問しようとすんなよ。
ネタだと勘違いするヤツが出てくんだろが。
0243デフォルトの名無しさんNGNG
>>236
仕事で、そういう処理を書くなら、
漏れは迷わずsprintf使うけどな。
何か問題あんの?
0244デフォルトの名無しさんNGNG
C風文字列ってどんなの?
0245デフォルトの名無しさんNGNG
>>244
'\0'で終わる、charの配列。
0246デフォルトの名無しさんNGNG
>>243
そういう処理を自分で書く宿題なのだと思われ。
0247デフォルトの名無しさんNGNG
結構むづかしいね。
仮数部のビット数を得るマクロとか、ありましたっけ?
0248デフォルトの名無しさんNGNG
>>247
書けばいいじゃん。IEEEの浮動小数点っしょ?
0249デフォルトの名無しさんNGNG
>>247
float.h嫁
0250花男NGNG
>>169 で質問した花男というものです。
2度ほど教えて頂いたのですが、今回で最後にしますのでもう1度だけ同じ質問
に関して教えて頂きたいです。どうぞよろしくお願い致します。
>>174 という解答を頂いたのですがint h, m, i = 0, j, k;の部分が
分かりません。どうしてm, i を他の記号に置き換え、hをゼロとするのでしょうか。
あともうひとつ、仮にこの時刻表が1時〜5時までではなくて2時〜5時だった場合、{}内を
{2, 13}, {2, 26}, {2, 37},・・・以下を書いていくと思うのですが最後の
{-1, -1}はどのように書き換えればよいのでしょうか?これを本当に最後にしますので
宜しくお願いします。



0251デフォルトの名無しさんNGNG
#include <stdio.h>
#include <string.h>
main()
{
char ans[]="dictionary";
char guess[]="----------";
char a;
int i,count=0;
do{
printf("%s",guess);
printf("アルファベットを入力してください。:");
a=getchar();
for(i=0;i<10;i++) if(a==ans[i]) guess[i]=a;
count++;
}while(strcmp(ans,guess)!=0);
printf("正解は%sでした。\n",ans);
if(count<15)
{
printf("%d回目で正解です。あなたの勝ち。\n",count);
}
else
{
printf("%d回目で正解です。あなたの負け。\n",count);
}
}
0252デフォルトの名無しさんNGNG
上のはある本のをちょっと改良した、単語当て
ゲームです。
countで、何回で正解したのかを計測している
のですが二倍ぐらいの数になってしまいます。
あと、10、11行目がdoの二回目以降、二回
実行されてしまいます。どうしてでしょう。
この本のソースは間違っているんでしょうか。
0253デフォルトの名無しさんNGNG
>>251>>252
for(i=0;i<10;i++) if(a==ans[i]) {
guess[i]=a;
count++;
}
じゃないのか?
0254デフォルトの名無しさんNGNG
>252
a=getchar();
を
a=getchar();getchar();
にすれば、とりあえず望み通りの結果になる(バグが残ってるけどね)
0255251,252NGNG
>>253
考えてくださってありがとうございます。
実行してみましたが、それでも何回か多くなってしまうんですよね…。
しかも根本的には本に書いてあったプログラムを変えていないですし、
どう考えても自分には合っているように思えます。とはいっても始めて
一ヶ月ほどの者なので誤植があったとしてもどう直せばいいのかもわかり
ません。
0256デフォルトの名無しさんNGNG
>255
あのね、入力のとき
a改行
ってするでしょ?
で、1回目のgetchar()がaを取るんだけど、改行がまだ残ってるから、
1回(もしかするとWinだと2回)余分にループしちゃうの。
0257251,252NGNG
>>254
ありがとうございます。本当に望み通りの結果になりました。
バグも起こりませんでした。
でもa=getchar();getchar(); の意味と、251のではなぜcountの数が違い、
10,11行目のprintfが二回ずつ実行される(doの二回目以降)のかを教えて
いただけないでしょうか。
0258251,252NGNG
>>256
ありがとうございました。日々精進します。
0259デフォルトの名無しさんNGNG
>>255
getchar()は改行コードも一文字として読むから多くなる。
改行コード(\n)をはじきなさい。
0260259NGNG
ちょっとまて、俺は間違ってないぞ。
ただちょっと遅かっただけなんだ。
許せよマザー。
ありがとうファザー。
0261254NGNG
>259
そういうときって普通どうする?
自分で書いといてなんだけど、254のやり方はよくないんだよね。
0262259NGNG
while((a=getchar())=='\n');
0263254NGNG
>262(=259)
while((a=getchar())=='\n');
printf("%s",guess);
printf("アルファベットを入力してください。:");

こうするわけですね。どうも
0264259NGNG
>>263
ちがうよ
a=getchar();
を>>262にする。
whileが終わるときは'\n'以外がaに代入されていることになる。
0265254NGNG
>259
ああ、ボケてました。そうですよね
了解です。どうもありがとう
0266デフォルトの名無しさんNGNG
画像関係の問題です。
原画像を極座標変換して表示したいんですが。
変換後の点が変換前のどの点に対応させるか、その関係がよく分からなくて
困ってます。
どなたか、以前にこのての問題を考えたことがある方いらっしゃらないでし
ょうか?
0267デフォルトの名無しさんNGNG
>>266
極座標変換って何かちゃんと知って書いてるか?
普通に逆変換汁!
0268266NGNG
>267
極座標変換は分かってますよ。
原画像をグニャッとドーナツみたいにした画像に変えたいのです。

普通に逆変換ってどういうことですか?
0269デフォルトの名無しさんNGNG
>>268
それならトーラスにマッピングすれば?
0270ksoNGNG
数学板の方がもっと具体的に数式で教えてくれるYO!
数学板へGO
くだらねぇ問題はここへ書けver.3.1415926535897932
http://science.2ch.net/test/read.cgi/math/1029498021/
0271269NGNG
>>268
平面(x,y)の画像0<=x<=1、0<=y<=1をz軸を中心軸とするトーラスの上半分だけにマッピングするには
トーラスの円環の半径をa、柱の半径をbとして円筒座標(θ,r,z)に変換すれば
θ=2πx ;
r=a-b*cos(πy)
z=b*sin(πy)
天頂から投影してzを無視しユークリッド座標(v,w)もどすと
arctan(w/v)=2πx
√(w^2+v^2)=a-b*cos(πy)
(x,y)について解いて
x=(1/2π)arctan(w/v) ;実際にはatan2(v,w)を使い0〜2πに変換
y=(1/π)arccos{(a-√(w^2+v^2))/b} ;
てなかんじで
0272269NGNG
なんじゃい極座標でいいのかい
それだと立体感がないぞ
半径をaとすると
θ=2πx
r=ay
でいいだろ。後は同様
0273デフォルトの名無しさんNGNG
こいつまるちだよ
0274花男NGNG
>>250 誰か教えて下さい。おながいします。
0275デフォルトの名無しさんNGNG
{-1,-1}は終端子だからそのままでいいとおもうが。
0276花男NGNG
ありがとうございます
0277花男NGNG
int h, m, i = 0, j, k についても教えて欲しいのですが・・・
0278デフォルトの名無しさんNGNG
>>277
悪いけど質問の内容が理解できない。
キミの目には、
「m, i を他の記号に置き換え、hをゼロ」
にしているのが見えるのか?
0279花男NGNG
レスが大変遅くなってしまってすみません。上の質問ですが分かっていません。
hで○○時間、mで○○分と表して
時間を入力した数字をKとして変換して構造体の時刻表からjという時間と比較して
入力した数字の方が大きい限りi++して次の時間帯まで探す。
jーkはあと何分後に電車が来るか。j / 60、j % 60で何時何分につくかを示す。

教えて頂いた事を乏しい理解力とつたない文章力で書いてみたのですがint m, i = j, k;
が考え付きません。
0280花男NGNG
誰か教えてください・・・
0281デフォルトの名無しさんNGNG
>280
int h, m, i = 0, j, k;
は
int h;
int m;
int i = 0;
int j;
int k;
と同じ意味
0282デフォルトの名無しさんNGNG
>>280
恥さらしあげ
0283デフォルトの名無しさんNGNG
>250
>これを本当に最後にしますので宜しくお願いします。
0284デフォルトの名無しさんNGNG
>>283は>>281を読んだのか?
0285花男NGNG
どうもお世話になりました。
自宅のネットが故障しててネットにつなげない状況でして・・
レスが遅れてすみませんでした。283違う人です。281で頂いた回答でやっと全体が分かりました。
本当に初歩から分かっていなかったため迷惑お掛けしました。
多数の方に温かいレスを頂き有難うございました。これに懲りてもっと勉強します。
 
0286デフォルトの名無しさんNGNG
大相撲があれば

中相撲
さらには小相撲があるかと思うのですが

どこにあるのでしょうか??
0287花男NGNG
訂正 自宅のネット=自宅のコンピューター  失礼しましたー。
        
      
0288shigeNGNG
韓国の頭目程度が「大統領」を名乗るのはおこがましい。
よって「小統領」に降格!

金大中大統領 -> 金大中小統領
0289デフォルトの名無しさんNGNG
void main(int argc, char *argv[])
を再利用するために int argc の部分を char *t に変えたいのですが
#define で変えるにはどうしたらいいのでしょうか?
文字列だと思って
#define "int argc" "char *t"
とやってみたのですが駄目でした。
0290デフォルトの名無しさんNGNG
>>289
とりあえずやめれ。
0291デフォルトの名無しさんNGNG
>>289
何をしたいのか、もっとちゃんと書けば、他の回答が得られる
0292デフォルトの名無しさんNGNG
こら おまえら いいかげんにしろ


おれさまをだれだとおもっているんだ



ほまれたかき ケツ毛之助というんだ


もんくがあるならかかってこい
0293デフォルトの名無しさんNGNG
>>291
argcの部分をchar *tに変えたい
0294デフォルトの名無しさんNGNG
>>293
なんで? argcはchar **で固定じゃないか? ポインタの勉強をしてくるべきな気がするが….
0295294NGNG
>argcはchar **で固定じゃないか?
char**をintに置き換えてくれ…欝氏
0296デフォルトの名無しさんNGNG
>>294
mainを再利用するため
0297294NGNG
>mainを再利用
これが分からんのよ. 具体的にはどんな再利用の仕方するの?
# でも絶対そんな使い方は間違ってると思うぞ.
0298デフォルトの名無しさんNGNG
>>297
俺に聞かれても困る
俺質問者じゃないから
0299289NGNG
もう、いいです。 ごめんなさい。
ただ、メイン関数を別名関数に移行する手間をできるだけ省きたかったんです。
横着してすいません。
0300デフォルトの名無しさんNGNG
秋はサンマ
0301デフォルトの名無しさんNGNG
再利用(C++では不可)
int main(int argc,char *argv[]){
if(argv) printf("%d\n",main(argc,NULL));
else if(argc==0) return 1;
else return argc*main(argc-1,NULL);}
0302デフォルトの名無しさんNGNG
>>299=289
再利用したいmainの中身をほぼ書き写した関数hogeを作る。
int hoge(char*t){
}

それをmainと再利用する関数fで呼ぶ。
main(int, char **v){
hoge(v[1]);
f();
}
f(){
hoge("abc");
}

これじゃだめなのか、っていうか普通mainの中身は最低限しか書かない。
0303302NGNG
>>299
>ただ、メイン関数を別名関数に移行する手間をできるだけ省きたかったんです

見逃した。
でも、移行する手間なんて無きに等しいと思うが・・・
むしろmainを再利用しようとする方が>>301のようになって面倒かと。
0304デフォルトの名無しさんNGNG
>>302
キミノホウガタダシイ
0305289NGNG
>301 , 302
どうもありがとうございました。
0306デフォルトの名無しさんNGNG
542から上げ
0307...NGNG
読み込んだ顔画像のノイズ除去のための「拡大(膨張?)縮小処理」のプログラム(C言語)を探しています。

0308デフォルトの名無しさんNGNG
>>307 はマルチ
http://pc3.2ch.net/test/read.cgi/tech/992671330/484
0309デフォルトの名無しさんNGNG
コールバックって、メンバー関数をじかに呼べないんですが、

class Aとclass Bがあって
Bは、コールバックされる関数(SetTimerとか)を使っていて、
さらにそのコールバックされる関数の中でBのメンバー関数を呼び出したい。

BにAのインスタンスのポインターを持たせればできますが、
1. Bの実装でAに依存しない(class Aのクラス定義を読み込まない)
2. Aをコールバックされる関数を含んだ中傷クラスのサブクラスとしない

という条件で、うまい方法ってないですか?

現状はtemplateを使って(public,private等は省略)
class base {
 virtual void operaot()() = 0;
};

template<class T>
class callback : public base
{
 typedef void (T::*F)();

 callback(T* obj, F func) : o(obj), f(func) {}
 void operator()() { return o->*f();

 T* o;
 F f;
};

とやって、AはBにcallbackのインスタンスを渡すようにしてますが、今市…
 
0310デフォルトの名無しさんNGNG
5個の整数a,b,c,d,eを入力して
a,b,c,dと四則計算(+,-,*/)を使ってeを作る式があれば
全て表示するプログラムをお願いします。。

例えば
1,1,9,9,10なら
9*(1+1/9)=10
0311デフォルトの名無しさんNGNG
>>309
デリゲートって知ってるか?
0312デフォルトの名無しさんNGNG
デリゲートで条件クリアできっか?
0313デフォルトの名無しさんNGNG
BCC使ってるんですがDOSのプログラムしか作れません。
ウインドウをつくってください
0314デフォルトの名無しさんNGNG
CreateWindow
0315デフォルトの名無しさんNGNG
bcc -tW hoge.cpp
0316313NGNG
初心者です。すいません。
できればソースを教えていただければうれしいでつ
0317デフォルトの名無しさんNGNG
キーワード教えてもらったらググル
0318デフォルトの名無しさんNGNG
>>310
バックトラック法とか?
0319デフォルトの名無しさんNGNG
>>310
木を作るのじゃ
0320デフォルトの名無しさんNGNG
>>313
猫見れ
0321313NGNG
>>320
VC++用に書いたソースでもいいんですか?
よくわかんないんですけど・・・
0322デフォルトの名無しさんNGNG
>>321
実行すれ
0323313NGNG
#include <stdio.h>

void main()
{
printf("Hello world\n");
return 0;
}
0324デフォルトの名無しさんNGNG
>>310
難しい。俺にはできない
0325デフォルトの名無しさんNGNG
>>323,313
void
return 0;
ってあんた・・・
0326313NGNG
間違えました

#include <stdio.h>

void main()
{
printf("Windowsのプログラム\n");
return;
}

でした
0327デフォルトの名無しさんNGNG
>>310 さらっとやるつもりが一時間もかかってしまった・・・
#include <stdio.h>

#define LEAF 0
#define PLUS 1
#define MINUS 2
#define TIMES 3
#define DEVIDE 4
#define TTOP 5

#define TLEFT 1
#define TRIGHT 2
#define DIFMIN 0.000001
0328デフォルトの名無しさんNGNG
void showans(struct culctree *node, int pfunc, int ppos, int e){
 char func;
 if ( node->function == LEAF ){
  printf( "%.0f", node->value);
 }else{
  bool flag = false;
  if ( node->function == PLUS ){
  if(pfunc == TIMES || pfunc == DEVIDE || (pfunc == MINUS && ppos == TRIGHT)) flag = true;
   func = '+';
  } else if (node->function == MINUS) {
   if(pfunc == TIMES || pfunc == DEVIDE || (pfunc == MINUS && ppos == TRIGHT)) flag = true;
   func = '-';
  } else if (node->function == TIMES) {
   if(pfunc == DEVIDE && ppos == TRIGHT) flag = true;
   func = '*';
  } else if (node->function == DEVIDE) {
   if(pfunc == DEVIDE && ppos == TRIGHT) flag = true;
   func = '/';
  }
  if(flag) printf("(");
  showans(node->left, node->function, TLEFT, e);
  printf("%c", func);
  showans(node->right, node->function, TLEFT, e);
  if(flag) printf(")");
 }
 if(pfunc == TTOP){
  printf("=%d\n", e);
 }
}
0329デフォルトの名無しさんNGNG
oid findans (struct culctree *list, int n, int e){
 struct culctree newlist[4];
 int i, j, k, m;
 if(n == 1){
  double dif = list[0].value - e;
  if(dif < DIFMIN && - dif < DIFMIN) showans(&(list[0]), TTOP, TLEFT, e);
  return;
 }

 for(i = 0; i < n; i++){
  for(j = 0; j < n; j++){
   if( i == j ) continue;
   newlist[0].left = &(list[i]);
   newlist[0].right = &(list[j]);
   m = 1;
   for(k = 0; k < n; k++){
    if(k != i && k!= j) newlist[m++] = list[k];
   }
   if ( i < j ) { // 足し算・掛け算は順序関係ないためa + bとb + aを両方検索しない
    newlist[0].function = PLUS;
    newlist[0].value = newlist[0].left->value + newlist[0].right->value;
    findans(newlist, m, e);
    newlist[0].function = TIMES;
    newlist[0].value = newlist[0].left->value * newlist[0].right->value;
    findans(newlist, m, e);
   }
0330デフォルトの名無しさんNGNG
   newlist[0].function = MINUS;
   newlist[0].value = newlist[0].left->value - newlist[0].right->value;
   findans(newlist, m, e);
   if( newlist[0].right->value > DIFMIN || newlist[0].right->value < - DIFMIN) {
    newlist[0].function = DEVIDE;
    newlist[0].value = newlist[0].left->value / newlist[0].right->value;
    findans(newlist, m, e);
   }
  }
 }
}
0331デフォルトの名無しさんNGNG
int main(){
// a,b,c,d,eの入力
int a,b,c,d,e;
printf("a = ");
scanf("%d", &a);
printf("b = ");
scanf("%d", &b);
printf("c = ");
scanf("%d", &c);
printf("d = ");
scanf("%d", &d);
printf("e = ");
scanf("%d", &e);

struct culctree list[4];
for(int i = 0; i < 4; i++){
list[i].left = NULL;
list[i].right = NULL;
list[i].function = LEAF;
}
list[0].value = a;
list[1].value = b;
list[2].value = c;
list[3].value = d;

findans(list, 4, e);
}
0332デフォルトの名無しさんNGNG
もっと簡単にできないものか・・
0333初心者NGNG
漏れも>>310に挑戦してみる。猫でもわかるをみながら。
0334デフォルトの名無しさんNGNG
DEVIDE?DIVIDEじゃないの?
0335デフォルトの名無しさんNGNG
できたかな…2, 3, 5, 7, 9 だと、
(2*5-7)*3 = 9
(2*(3+5)-7) = 9
((5+7)/2+3) = 9
の3つ。合ってる?
0336デフォルトの名無しさんNGNG
>>335
((2*(3+5))-7)
(((2*5)-7)*3)
(3*((2*5)-7))
(3+((5+7)/2))
の4つ。
0337デフォルトの名無しさんNGNG
C言語で行列→逆行列にするプログラムってどのように作ればよいのでしょうか?
誰か教えてくれませんか?
宿題できねぇよぉ〜
0338デフォルトの名無しさんNGNG
>>337
行列式をもとめるプログラムとCramerの公式を使えば?
0339337NGNG
どうやって?
0340デフォルトの名無しさんNGNG
>>339
Aの逆行列Bの(i,j)成分は
(j,i)に関するAの小行列式/Aの行列式で求められる。
0341デフォルトの名無しさんNGNG
for文を使えば楽勝のような気が。
for( i=100; i>-=0; i--)
とかで。
0342デフォルトの名無しさんNGNG
>>341
それは逆行列?
0343デフォルトの名無しさんNGNG
>>337
計算機向きの逆行列を求めるアルゴリズムは、ガウス・ジョルダン消去法を
応用したアルゴリズムが使われる。

http://www.mscom.or.jp/~tog/anna/INV1.C
0344デフォルトの名無しさんNGNG
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define Epsilon 10e-11
void main(void);
double Heihoukon( double ); double Rippoukon( double );
double Yonjoukon( double );
void main(void){
long i;
double x,x2,x3,x4;
printf(" x x^(1/2) x^(1/3) x^(1/4) \n\n");
for(i=1;i<101;i++){
x= (double) i; x2 = Heihoukon(x); x3 = Rippoukon(x); x4 = Yonjoukon(x);
printf("%14.10f %14.10f %14.10f %14.10f \n",x,x2,x3,x4);
}
}
double Heihoukon(double x){
double y; y=sqrt(x); return(y);
}
double Rippoukon(double x){
double y; y=3.0*x; return(y);
}
double Yonjoukon(double x){
double y; y=sqrt(x); return(y);
}
平方根、立方根、四乗根を数表に書く問題なんですけど、平方根以外は倍表示されました。
明日までにやらないと出席になりませぬ。。だれか手助けをキボンヌ。
0345デフォルトの名無しさんNGNG
double Yonjoukon(double x){
return sqrt(sqrt(x));
}
0346337NGNG
誰かできた?
0347デフォルトの名無しさんNGNG
>サンクス★
立方根もキボンヌ!!
0348デフォルトの名無しさんNGNG
>>347
double Sanjoukon(double x)
{
return pow(x, 1/3.);
}
0349デフォルトの名無しさんNGNG
>>346
>>343見てよ
0350337NGNG
だから早くやってほしいんだけど。まだ?
0351デフォルトの名無しさんNGNG
>>350
しょうがねえなあ。ほらよ。3×3の逆行列だ。

#include <stdio.h>

int main(void) {
double a[3][3];
int i, j, k;
double p, q;
int c,d;

a[0][0] = 1;
a[0][1] = 1;
a[0][2] = 1;
a[1][0] = 1;
a[1][1] = 2;
a[1][2] = 3;
a[2][0] = 2;
a[2][1] = 4;
a[2][2] = 5;
0352デフォルトの名無しさんNGNG
for (k = 0; k < 3; k++) {
p = a[k][k];
a[k][k] = 1.0;
for (j = 0; j < 3; j++) a[k][j] /= p;
for (i = 0; i < 3; i++) {
q = a[i][k];
a[i][k] = 0.0;
if (i != k)
for (j = 0; j < 3; j++) a[i][j] -= q * a[k][j];
}
}

for(c=0;c<=2;c++) {
for(d=0;d<=2;d++) {
printf("inv a[%d][%d] = %f\n",c,d,a[c][d]);
}
}
return 0;
}
0353デフォルトの名無しさんNGNG
f(x)=e^(2x)をx=2.0の近傍で第四項までテーラー展開した
x=1.0~x=3.0までの真値、近似値及び相対誤差を求めたいのですが、

#include <stdio.h>
#include <math.h>

int main(void)
{
double true,near,x,gosa;

for (x=1.0; x<=3.0; x=x+0.1){
if(x==2.0) continue;
true=exp(2*x);
near=exp(4)*(1+2*(x-2.0)+2*(x-2.0)^2+4/3*(x-2.0)^3);
gosa=((near-true)/true)*100;

printf("   X=%2.1f\n",x);
printf("  真値=%f\n",true);
printf(" 近似値=%f\n",near);
printf("相対誤差=%3.0f%\n\n",gosa);
}

return 0;
}
と書いたところ、近似値(変数near)を計算するところで
「浮動点小数の不正な使用です。」と出てきてしまいます。
どうすればいいのでしょうか。
0354デフォルトの名無しさんNGNG
>>353
C言語にはべき乗の演算子"^"はありません。
関数pow()を使いましょう。
0355デフォルトの名無しさんNGNG
>354さん
どうもありがとうございます。
ものすごい馬鹿な質問だったようですね・・・
0356デフォルトの名無しさんNGNG
>>355
いえいえ初心者の人は誰でも間違うミスです。
恥ずかしいことはないですよん。
0357デフォルトの名無しさんNGNG
>>355
初心者初心者ばーか。
0358353NGNG
連続質問すいません。>>353のプログラムで、
for (x=1.0; x<=3.0; x=x+0.1){
if(x==2.0) continue;
・・・・・
}
と書いたんですが、実行してみたら、
x==2.0のときのforループがスキップされないし、
x==3.0の時の処理をしてくれません。
for (x=1.0; x<=3.1; x=x+0.1){・・・
とすると、x==3.0のときの処理がされるのですが・・・
なんかまた勘違いしてそうですがお願いします。
0359デフォルトの名無しさんNGNG
>>358
0.1は、二進数で厳密に表現することができないため、誤差が生じる。
ループ変数は整数で管理し、x = i/10 などと固定小数点で計算すべし。
0360353NGNG
出来ました。ありがとうございますた。
0361デフォルトの名無しさんNGNG
// hoge_tクラスのポインタを宣言して、
hoge_t *hoge;

// giko_tクラスのポインタを取得して、
// giko_tクラスのgetAA()というメソッドを呼ぶのを同時に、

AA *a = hoge->getGiko()->getAA();

とかってできますよね?


class giko_t{
AA* getAA();
}
class hoge_t{
giko_t* getGiko();
}
0362ひよっこプログラマーNGNG
VISUAL C/C++ ver6.0
を使っているのですが、
テキストファイルを読み込んで次々に構造体に書き込んで
2分木を作りたいのですが、fopen関数を使って
fp1 = fopen("gakuseidata.txt","r");として読み込もうとしましたが、
error C2040: 'fp1' : 'struct _iobuf ' は 'struct _iobuf *' と間接操作のレベルが異なります。
とでました。
普段LINAXを使っているのですが、今、家に無いのでわかりません。
どこにテキストファイルを置いて、どのような記述で読み込めばいいのか、
伝授してください。
0363デフォルトの名無しさんNGNG
>362
fp1はどういう宣言したんだ?
0364ひよっこプログラマーNGNG
>>363
FILE fp1 と・・。
0365デフォルトの名無しさんNGNG
>>364
FILE *fp1;
だ。以上。
0366ひよっこプログラマーNGNG
すいません。
FILE *fp1
ですがダメでした。(゚△゚;)
0367デフォルトの名無しさんNGNG
今度はエラーはどうでてる?
0368ひよっこプログラマーNGNG
>>365
すいません。糞ミスでした。
FILE *fp1,
ってかいてました。
わざわざ、ありがとうございました。
0369デフォルトの名無しさんNGNG
>>362
LINAXって便器の名前?
0370デフォルトの名無しさんNGNG
うちは普段TOTOを使っています。
0371デフォルトの名無しさんNGNG
Oh calcho!
0372デフォルトの名無しさんNGNG
>>369
> LINAXって便器の名前?

Laox と Inax の共同開発です。
0373デフォルトの名無しさんNGNG
>>369>>372
便器用や浴室周り用のOSのことだろ?   え、違うの?
0374デフォルトの名無しさんNGNG
>>369, >>372-373

馬鹿ばっかし...。ちゃんとした会社だ。

http://www.linax.com
0375デフォルトの名無しさんNGNG
べき乗を求める関数ってどうすればいいんでしょうか
0376デフォルトの名無しさんNGNG
>>375
使えばいいと思います。
0377デフォルトの名無しさんNGNG
void main();

ってなんか気持ち悪い。
0378デフォルトの名無しさんNGNG
power
0379375NGNG
あ、ごめん。作れた〜
>>376
そうでつね
質問の仕方が悪かったね。ごめん
べき乗を求める関数を作りたかったのです
0380375NGNG
ちなみに、
long bekijou(int a, int b) ←のa,bに、2の2乗って感じで数値入力
{
unsigned long total = a;
while(--b>0)total *= a;
return total;
}
これ以外にもっといい方法ありますか?
0381デフォルトの名無しさんNGNG
>>377
       void main();void main();
      void main();  void main();
     void main();    void main();
    void main();      void main();
   void main();        void main();
  void main();          void main();
 void main();            void main();
void main();              void main();
 void main();            void main();
  void main();          void main();
   void main();        void main();
    void main();      void main();
     void main();    void main();
      void main();  void main();
       void main();void main();
0382デフォルトの名無しさんNGNG
>>380
標準関数にべき乗求める奴がなかったか
0383375NGNG
っと、unsignedはいらないですね
0384デフォルトの名無しさんNGNG
>>380
bekijou(a,0) = a
なのは仕様かね
0385デフォルトの名無しさんNGNG
pow(x, y) == exp(y * log(x))

で、exp()とlog()をテイラー展開しる。
0386デフォルトの名無しさんNGNG
long bekijou(int a, int b) 
{
unsigned long total = 1;
while(b--)total *= a;
return total;
}
0387375NGNG
>>382
そうだったんですかー。サンクス
>>384-385
すいません。まだ始めたばっかなんで、意味がわかりません・・・
0388デフォルトの名無しさんNGNG
long bekijou(int a, int b){
  long n;
  n=pow(a,b);
return n;
}
0389デフォルトの名無しさんNGNG
>>387
a ^ 0 = 1

aの零乗って意味ね
0390デフォルトの名無しさんNGNG
>>387
#include <math.h>

double pow(double,double);
0391デフォルトの名無しさんNGNG
>>387
ついでに>>380の方法だと整数しか使えない不備もあるので素直にpow()関数使うのがよし
0392375NGNG
みなさんありがとうございました!
ツァイチェン
0393デフォルトの名無しさんNGNG
なんだ、pow()関数を自作して結果を比較するものだと思ってた。
面白くないな。
0394デフォルトの名無しさんNGNG
http://home.att.ne.jp/wind/alchemist/
http://alchemist.hp.infoseek.co.jp/
http://y7.net/alchemist
http://gatecity.gaiax.com/home/crossroad/
http://lovemac.gaiax.com/home/crossroad/
http://rimnesia.gaiax.com/home/crossroad/
http://www.globetown.net/~alchemist/
http://www.friend.jp/mypage?id=al-chemy
http://www.geocities.co.jp/Technopolis/1682
0395デフォルトの名無しさんNGNG
long shakkin(long yen){
yen=pow(yen,2);
return(yen);
}
0396中三てぃもーるNGNG
いまから平方根求めるファンクションつくるのでレビューしてください
0397デフォルトの名無しさんNGNG
long shakkin(long yen){
return yen * yen;
}
0398デフォルトの名無しさんNGNG
>>396
そのレスにその関数を書けばレス数が節約できたのに。
オレモカー
0399デフォルトの名無しさんNGNG
>>395
(((( ;゚Д゚)))ガクガクブルブル
0400デフォルトの名無しさんNGNG
>>395
double futsuu_yokin(double yen){
 return pow(yen, 1.00001);
}
0401デフォルトの名無しさんNGNG
yen += yen * 0.00001;
0402中三てぃもーるNGNG
やはり素因数分解するのですか?
0403デフォルトの名無しさんNGNG
微分する。
0404中三てぃもーるNGNG
じゃぁ、微分から勉強しないとだめじゃん・・・。失礼しました
0405デフォルトの名無しさんNGNG
>>396
double heihoukon(double val){
 return sqrt(val);
}
0406デフォルトの名無しさんNGNG
なんで標準で準備されてるものを作ろうとするんだ
0407中三てぃもーるNGNG
>>406
一応勉強のために・・。
0408デフォルトの名無しさんNGNG
double mysqrt(double x)
{
double s, last;

if (x > 0) {
if (x > 1) s = x; else s = 1;
do {
last = s; s = (x / s + s) / 2;
} while (s < last);
return last;
}
if (x != 0) fprintf(stderr, "mysqrt: domain error\n");
return 0;
}

自家製 sqrt()
0409中三てぃもーるNGNG
>>408
おお、参考にさせてもらいます
0410デフォルトの名無しさんNGNG
質問ですがよろしくお願いします。
いま円周率を50桁ぐらいまで計算するプログラムを作っています。
計算式が(長いけどすみません)
3+1/(7+1/(15+1/(1+1/(292+1/(1+1/(1+1/(1+1/(2+1/(1+1/(3+1/
(1+1/(14+1/(2+1/(1+1/(1+1/(2+1/(2+1/(2+1/(2+1/(1+1/(84+1/
(2+1/(1+1/(1+1/(15+1/(3+1/(13+1/(1+1/(4+1/(2+1/(6+1/(6+1/99
))))))))))))))))))))))))))))))))というように繁分数になるのですが
long doubleでは桁数に限界があって計算できません。
これを回避する方法を教えてください。
よろしくお願いします
0411デフォルトの名無しさんNGNG
>>410
多倍長演算クラスを自作しれ。
0412デフォルトの名無しさんNGNG
すでにあるのもをわざわざ作る奴はバカ
0413410NGNG
すみません。
まだはじめたばかりでよくわからないんですけど、
処理の概念だけでも教えていただけないでしょうか?
0414デフォルトの名無しさんNGNG
>>410
ウザイから、マルチヤメレ。

***すれ立てるまでもない質問はここで 第23刷***
http://pc3.2ch.net/test/read.cgi/tech/1034088067/381
0415ちょいと質問NGNG
システム間通信のことで質問です。
3つ以上のプロセスをパイプで結ぶプログラムをC言語で
答えてくれるとありがたいです。
0416デフォルトの名無しさんNGNG
>>415
3つ以上のプロセスをパイプで結ぶことのできる OS をまず用意しろ。
0417ひよっこプログラマーNGNG
typedef struct{
Data data;
seito *r;
seito *l;
}seito;
error C2061: 構文エラー : 識別子 'seito' がシンタックスエラーを起こしました。

シンタックスエラーっちなんだーー?
助けてクレーー。
0418manko_chinko ◆GLc2rpKRNM NGNG
typedef struct seito_x{
Data data;
seito_x *r;
seito_x *l;
}seito;
0419デフォルトの名無しさんNGNG
>>417
シンタックスエラー=構文エラー
0420デフォルトの名無しさんNGNG
typedef struct seito_x {
Data data;
struct seito_x *r;
struct seito_x *l;
}seito;
0421manko_chinko ◆GLc2rpKRNM NGNG
おお、忘れてた。スミマセン
0422ひよっこプログラマーNGNG
>>418
だめでした・・・。(泣)
0423manko_chinko ◆GLc2rpKRNM NGNG
>>422
420のが正しいです
0424ひよっこプログラマーNGNG
おお!!できました。みなさん、自分の目指すべき存在です。
ありがとうございました!!
0425デフォルトの名無しさんNGNG
typedef struct seito_ seito;
struct seito_ {
Data data;
seito *r;
seito *l;
};
0426デフォルトの名無しさんNGNG
教えてください。
3000バイトの文字列に2700バイト目の後ろに、8バイト文字列
を追加するという宿題が出ています。
まず、1〜2700バイト目を文字列から抜き出したいのですが、
VBでいうmidみたいな関数ってありますか?
宜しくお願いします。
0427デフォルトの名無しさんNGNG
>>426
> 3000バイトの文字列に2700バイト目の後ろに、8バイト文字列
> を追加するという宿題が出ています。

まず、日本語を勉強しろよ。
0428デフォルトの名無しさんNGNG
文字列ってSTLでも使ってるの?
charの配列だったら、文字列について勉強しなおしましょう。
0429デフォルトの名無しさんNGNG
いいからおまえらDelphiつかっとけ。
0430デフォルトの名無しさんNGNG
VC++でスタックの状態を表示する SDI アプリケーションを作成せよ。

このプログラムを作って下さい

丸投げですみませんが教えて下さい。
0431デフォルトの名無しさんNGNG
>>430
べ〜。
0432デフォルトの名無しさんNGNG
>>430
で、どこまで与えられてるわけ?
0433デフォルトの名無しさんNGNG
>>430
0f 22 c0
0434デフォルトの名無しさんNGNG
>>450
このあたりでこのすれは終わる
0435デフォルトの名無しさんNGNG
class Base {
public: void f() { cout << "Base method." << endl; }};

class Sub : public Base {
public: void g() { cout << "Sub method." << endl; }};

int main() {
 Base *b = new Sub;
 b->f();

 b = (Sub*)b;
 b->g(); // コンパイルエラー Base::g()は無い
 // ((Sub*)b)->g(); ok。でも面倒

return 0;
}

Subクラスに存在するgを呼びたいのですが、ダウンキャストってどーやるんですか?
b = (Sub*)b; じゃだめなんですか?
0436デフォルトの名無しさんNGNG
// まさかこれで良かったりはしねーだろうな。 >>427
void hoge( char* buf, char* org, char* eight ) {
char c = org[2700];
org[2700] = 0;
sprintf(buf,"%s%s%c%s",org,eight,c,org+2701 )
}
0437デフォルトの名無しさんNGNG
>>435
>// ((Sub*)b)->g(); ok。でも面倒
あなたの書いた、これがダウンキャスト。
そんなに面倒か?たいしたことないと思うが。

どうしてもアレなら、
Sub* x = (Sub*)b;
x -> g();
って書いたっていいけど、そもそもなぜスーパークラスへのポインタで
そのオブジェクトを指すようにしたのか、その理由を思い出せ。
0438デフォルトの名無しさんNGNG
C言語で

ポインタで連結リストを作ってそこに"浮動小数点"を
挿入することはできますか?
0439デフォルトの名無しさんNGNG
>>438
リストを構成する構造体のメンバーにdoubleかfloatを加えればできるだろ。
0440デフォルトの名無しさんNGNG
430のスタックの状態を表示するって普通にやってできるのか?
インラインアセンブラ使わなくちゃできないのでは・・・
0441_NGNG
どなたか、曖昧検索のアルゴリズムをCで教えていただけませんか?
今勉強中です。
お願いします。
0442デフォルトの名無しさんNGNG
>>439
具体例をお願いします。
0443デフォルトの名無しさんNGNG
struct Hoge {
double foo;
struct Hoge *next;
};
0444デフォルトの名無しさんNGNG
テキストファイルの”FJDSIAI”のような文字列を読み込みたいのですが、
うまくいきません。
具体的なソースで書いていただけないでしょうか。お願いします。
0445デフォルトの名無しさんNGNG
意味が分からん
0446444NGNG
>>445
要するにテキストファイル中の文字列を配列に入れたいんです。
表示するだけでもうまくいかないもので・・・
0447デフォルトの名無しさんNGNG
どこまでできるんだ?
表示くらいはできるの?
int ch;
while ((ch = getchar()) != EOF) {
putchar(ch);
}
0448444NGNG
fgets使って表示しようとしてるんですが、
fprintfでの表示もうまくいかないんです・・・
0449デフォルトの名無しさんNGNG
言語は何なのか分からんのでC++と仮定。

std::ifstream ifs("hogehoge.txt");
if (!ifs)
{
std::cerr << "ファイルが開かネーヨ" << std::endl;
return 1;
}

char buf[1024];
ifs.width(sizeof(buf));
ifs >> buf;
0450デフォルトの名無しさんNGNG
printf("%s", str);
0451444NGNG
すみません・・・Cです・・・
0452デフォルトの名無しさんNGNG
char buf[1024];
FILE* p = fopen("text", "rt");

while (fgets(buf, sizeof(buf), p)) fputs(buf);

fclose(p);
0453デフォルトの名無しさんNGNG
fgetsいうてはるやん。
0454デフォルトの名無しさんNGNG
fputs(buf); -> puts(buf);
0455ひよっこプログラマーNGNG
typedef struct{
char sei[10];
char namae[10];
int sex;
int gakuseki;
}Data;

typedef struct seito_x {
Data data;
struct seito_x *right;
struct seito_x *left;
}seito;
この構造体で2分木をつくっているのですが、
mallocで動的にメモリを確保したあと、
scanf("%c",wkdata->data.gakuseki);
で、数字を挿入したのですが、
プログラム実行中にエラーがでて、
上手くいきません。
構造体のint型に数字をいれるのに
scanfをつかうのは問題があるのでしょうか?
ちなみに、データをいれる構造体は、
mallocでメモリを確保してポインタにアドレスを持たせたものです。
0456デフォルトの名無しさんNGNG
scanfにはポインタを渡すんだが。
0457デフォルトの名無しさんNGNG
アドレス!アドレス!
0458デフォルトの名無しさんNGNG
>>455
scanf("%c",&(wkdata->data.gakuseki));
0459デフォルトの名無しさんNGNG
mallocで確保するところのソースを見せて。
0460デフォルトの名無しさんNGNG
>>458
"%c" --> int gakuseki の方は指摘しなくていいのか ?
0461444NGNG
>>452
すいません・・・うまくいかないのですが・・・
配列の中身の表示はfprintfで%sに渡せばよいのですよね?
0462デフォルトの名無しさんNGNG
>>461
>>454
0463デフォルトの名無しさんNGNG
>>461
ソース見せれ。
そのほうが早く解決する。
0464444NGNG
void main(){

FILE *fp1,fp2;
int i,ii,iii=0,j,jj;
char I[BUF_SIZE],M[BUF_SIZE],E[BUF_SIZE];
fp1=fopen("DATA.txt","r");

char line[BUF_SIZE];
while(1){
if( fgets(line,sizeof(line),fp1) == NULL ) break;
line[strlen(line)-1] = '\0';
if( line[0] == '>' ){
I[i] = line[i];
}
if( line[0] == '>>' ){
M[ii] = line[ii];
}
if( line[0] == '>>>' ){
E[iii] = line[iii];
}
0465ひよっこプログラマーNGNG
>>455ですが、アドレスを渡さなくてもwkdata自体はポインタなので、
問題は無いはずなのですが、ちなみに
printf("sei= ");
scanf("%s",wkdata->data.sei);
として、文字列を入れても問題は無くて、数字にした瞬間、
実行エラーなのですが・・・。
0466デフォルトの名無しさんNGNG
FILE *fp1,fp2;って
FILE *fp1;
FILE fp2;
に解釈されなかった?
0467デフォルトの名無しさんNGNG
FILE *fp1, fp2; <-
これはなんですか?これは。

FILE* fp1, * fp2;
0468デフォルトの名無しさんNGNG
>>465
文字列はポインタとして扱われるんじゃない?
0469デフォルトの名無しさんNGNG
if( line[0] == '>>' ){
M[ii] = line[ii];
}
if( line[0] == '>>>' ){
E[iii] = line[iii];
}

これも意味分からん。
0470444NGNG
えと、fp2の方は消し忘れです。すみません。
テキストデータの中で『>』があったら、I[]に、『>>』があったらM[]に、
『>>>』があったらE[]に入れたいんです・・・
分かりにくくてすみません・・・
0471デフォルトの名無しさんNGNG
>>465
>アドレスを渡さなくてもwkdata自体はポインタなので、
>問題は無いはずなのですが

構造体のポインタについて勉強し直すことをすすめる
0472ひよっこプログラマーNGNG
wkdata = (seito *)malloc(sizeof(seito));
これの意味はメモリを確保して、そのアドレスを
wkdataのポインタにわたしているんですよね?
0473デフォルトの名無しさんNGNG
文字列をコピーしたいのなら
strcpy等を使うべきでは。
iとかiiやiiiの意味がわからん。
0474デフォルトの名無しさんNGNG
>>465
しかし、gakusekiは実体だよな。うん。
0475デフォルトの名無しさんNGNG
x = wkdata->data.gakuseki; ってあったら
int型の値がxに代入されるよね。
例えばwkdata->data.gakusekiが100だったら
scanf("%c", wkdata->data.gakuseki);は
scanf("%c", 100);ってやるのと同じこと。
0476デフォルトの名無しさんNGNG
>>472
そこまではヨシとして、

wkdata->data.sei
↑は配列の先頭アドレスを示す

wkdata->data.sei[0]
↑は配列の先頭要素の値を示す

wkdata->gakuseki
↑はgakusekiの値を示す

で分かる?
0477ひよっこプログラマーNGNG
>>476
しかし、gakusekiは
//データの宣言
typedef struct{
char sei[10];
char namae[10];
int sex;
int gakuseki;
}Data;
//個人情報の構造体宣言
typedef struct seito_x {
Data data;
struct seito_x *right;
struct seito_x *left;
}seito;
この入れ子の構造体なので、
wkdata->data.gakuseki
なのでは?
0478デフォルトの名無しさんNGNG
line[strlen(line)-1] = '\0';
も変に思うんだが、\0で終わってなかったら
strlenは使えなかったと思う。
0479デフォルトの名無しさんNGNG
型変換のところで分からないんですが

int型の変数をchar型へキャストすると
変換された変数は、もともとint型だった時の下位8ビット分だけ抜き取られて
char型になるんですか?
0480デフォルトの名無しさんNGNG
wkdata->data.gakuseki はint型。ポインタじゃない。
0481476NGNG
>>477
うん間違った
0482476NGNG
×wkdata->gakuseki
○wkdata->data.gakuseki
↑はgakusekiの値を示す
0483ひよっこプログラマーNGNG
>>476です。みなさん、ありがとうございました。なんとか、わかりました。
とりあえず、また、がんばってみます。
0484444NGNG
おかしい所だらけですみません。
要するにテキストデータの中で『>』があったら、I[]に、
『>>』があったらM[]に、 『>>>』があったらE[]に入れたいんですが、
何使ってもいいんで、具体例書いてもらえないでしょうか?
0485デフォルトの名無しさんNGNG
>>444
Cには文字列型というのは無いよ。
0486デフォルトの名無しさんNGNG
void main(){

FILE *fp1;
int i,ii,iii=0,j,jj;
char I[BUF_SIZE],M[BUF_SIZE],E[BUF_SIZE];
fp1=fopen("DATA.txt","r");

char line[BUF_SIZE];
while( fgets(line,sizeof(line),fp1) != NULL ) {
char *s = line;
line[strlen(line)-1] = '\0';
if( *s++ == '>' ){
if (*s++ != '>') {
strcpy(I, line);
} else if (*s++ != '>') {
strcpy(M, line);
} else {
strcpy(E, line);
}
}
この続きはどうなってるの?
0487デフォルトの名無しさんNGNG
FILE *fp1
char I[BUF_SIZE],M[BUF_SIZE],E[BUF_SIZE];
fp1=fopen("DATA.txt","r");

char line[BUF_SIZE];

while(fgets(line,sizeof(line),fp1)){
char* pdest = (line[0] == '>') ? I : (!strncmp(line, ">>", 2)) ? M : (!strncmp(line, ">>>", 3) ? E : NULL;
if (pdest) strncpy(pdest, line, BUFSIZE);
}
0488444NGNG
>>485
あ・・・なんかC++とCがかなりごっちゃになってますね・・・すいません。
>>486
IとMとEの配列の長さ(文字数)を測り、その数値を使って計算したいんです。
計算式はちょっとかけないのですが・・・
ところで、予期せぬEOFが検出されました、と出るのですが・・・
さいきん、なぜかこのエラーが多い・・・
0489デフォルトの名無しさんNGNG
>>hoge
ってあったときに
IとM両方にいれるの?
Mだけ?
0490デフォルトの名無しさんNGNG
>>488
じゃあもう自分でやれよ。
0491デフォルトの名無しさんNGNG
Perlでやったほうが楽。
0492444NGNG
>>489
Mだけです。
0493デフォルトの名無しさんNGNG
fprintf(fp1, "%s", line);
なんてしてないことを祈る。
0494デフォルトの名無しさんNGNG
>>444
>aa>>if>>>kk>a>>>adaf>>fad>>d>>> > >>ad>f
ファイルの中身はこんな感じなの?
0495デフォルトの名無しさんNGNG
#include <sstream>
std::ostringstream
使えや!ヽ(`Д´)ノ
文字列処理(゚Д゚)ウマー
0496デフォルトの名無しさんNGNG
boost::tokenizer<char>…。
0497444NGNG
レス遅れてすみません。
なんとか、思うように出来ました。ありがとうございました。
0498じょNGNG
C言語はまぁできるつもりな者です。お世話になります。
C言の宿題で、行列の諸計算を行うプログラムを書け、というのがあって、
計算自体はできたんですがよくよく課題を見てみると
「・・・を表示し、また同時にファイルに出力する。」
みたいな事が書いてありまして。

さすがにそこら中のprintfを同じ内容の
printfとfprintf2行に書くのはどうかと思い
define使って1行にしようと思ったのですが、
引数がいくつでもいいprintfをdefineに組み込むのが
どうしてもうまくできません。とりあえず今はしょうがなく

#define printf1(a)   printf(a),   fprintf(fp,a)
#define printf2(a,b)  printf(a,b),  fprintf(fp,a,b)
#define printf3(a,b,c) printf(a,b,c), fprintf(fp,a,b,c)
・・・(以下略)

としてますが、もっとうまくやる方法を探しています。
だいいち、マクロ名を何個も用意するのは気が進みません
(マクロ内に変数(ファイルポインタ)を直接書くのもどうかと思いますが)。

前にどこかで見かけたモノで、myprintf((式))のように
括弧を2重にするような記述方法があったような気がするんですが
探しても見つかりません。どなたかぐっとくるような回答をお願いします。
0499デフォルトの名無しさんNGNG
>>498
defineじゃなくて関数にすれば?
0500デフォルトの名無しさんNGNG
だな。
0501デフォルトの名無しさんNGNG
int myprintf(FILE* fp, const char* fmt, ...)
{
int n;
va_list arg;
va_start(arg, fmt)
vprintf(fmt, arg);
n = vfprintf(fp, fmt, arg);
va_end(arg);
return n;
}
0502じょNGNG
引数を好きな数受け取る関数を作り、
それぞれをprintfとfprintfに渡す、ということですか?

それも少し考えたのですが、受け取る型が決まってないので
printfのように文字列を見ていって型を変えるのがどうも。。。
それとも関数を使ったもっとスマートな方法があるのでしょうか
(面倒くさがりやですみません)
0503じょNGNG
>>501
すばやい回答、ありがとうございます。早速試してみます。
0504デフォルトの名無しさんNGNG
teeかます。
0505じょNGNG
見事、期待通りに動きました!
vprintfの存在に気づきませんでした(涙
これでレポート出せます。どもありがとうございました。
0506ひよっこプログラマーNGNG
ファイルから数字(13330等)を文字列として読み込んで、その文字列を
int型の数字として変換できませんか?もしくは、文字列としてでは無く、
数字として読み込む方法なんてありますか?ちなみに、テキストファイルを
読み込んでおります。
0507デフォルトの名無しさんNGNG
半角なのか全角なのか、それが問題だ。
0508デフォルトの名無しさんNGNG
>>506
fgets() と atoi() を調べること。
0509デフォルトの名無しさんNGNG
scanf("%f", &x);
sscanf(str, "%f", &x);
0510ひよっこプログラマーNGNG
半角です。fgets()は文字列をとるので
akasatana kakikukeko 13330 aiueo
とテキストにある場合一行全部読み込んでしまうので。。。
sscanf(str, "%f", &x); これは?し、知らない。
0511デフォルトの名無しさんNGNG
数字のみを探し出してっていうのは別っしょ。
0512デフォルトの名無しさんNGNG
scanfと同じ。入力がstrからになるだけ。
数字の部分を切り取って渡せば変換するってことなんだけど。
0513ひよっこプログラマーNGNG
ありがとうございます。とりあえず、エラーは出なくなったので、
また試行錯誤してみます。
0514デフォルトの名無しさんNGNG
Perlとかでやったら楽だろうに。
0515デフォルトの名無しさんNGNG
You_must_use_isdigit().
0516515NGNG
str[i]-'0'でもいいかも・・・
0517デフォルトの名無しさんNGNG
fseek(fp,sp,SEEK_SET)をspを増加させながら
ループの中で使用してるんですがspがファイルの終端を越えたときに
ループを抜けるようにするにはどのようなループを組めばいいのでしょうか?
0518デフォルトの名無しさんNGNG
>>517

int sp, en;
fseek(fp,0,SEEK_END);
en = ftell(fp);
for(sp = 0; sp < en; ) { ...fseekを含む処理... }
0519デフォルトの名無しさんNGNG
>>518
ftellなんて物があったのですね
有難うございます 今日少しでも寝れそうです
0520223NGNG
>>518
spとenの型はlongの方がよくね?
0521デフォルトの名無しさんNGNG
はじめまして^^
今Linuxでxpm画像を読み込んで画面に表示し、
表示した画像から目的の色の座標を取得するという課題をやっています。
HPや本を調べて画像表示部分はできたのですが、
ここから先がうまくいきません・・・
Gtk,Gdkを使用しています。
担当教授からは解析用の関数があると聞かされたのですが・・・
ここから先をどのようにすればよいかご教授願えないでしょうか?
よろしくお願いしますm(_ _m
0522デフォルトの名無しさんNGNG
画像表示部分です^^

#include <gtk/gtk.h>

int main(int argc, char *argv[]){
GtkWidget *window;
GtkStyle *style;
GdkPixmap *pixmap;
GdkPixmap *mask;
GtkWidget *pixmapwid;

gtk_init(&argc, &argv);

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

style=gtk_widget_get_style(window);
pixmap=gdk_pixmap_create_from_xpm(window->window, &mask, &style->bg[GTK_STATE_NORMAL], "ファイル名");
pixmapwid=gtk_pixmap_new(pixmap, mask);
gtk_container_add(GTK_CONTAINER(window), pixmapwid);
gtk_widget_show(pixmapwid);

gtk_widget_show(window);
gtk_main();
return 0;
}
0523 NGNG
>>520

fpos_t じゃなかったっけ。。
0524名無しさん@XEmacsNGNG
>>521-522
目的の色ってのはどこから入力するの?出力は?
xpmファイルは普通のテキストファイルなので、その気になれば自前で解析関数作れると思いますが......
とりあえず、GTK or GDK の Reference Manual を参照してはどうですか?
0525521NGNG
>524
色の入力は実行時にキーボードから入力できるようにしたいです。
出力はX Y座標を変数にでも入れて、その座標を表示さえできれば・・・

最終目標がロボカップ(ロボットにサッカーをさせる)なんですが、
最終的には7色を識別(ロボット3対3+ボール)できるようにしたいのです。
このXY座標によって作戦みたいな感じでやりたいと思ってます・・・
0526524NGNG
>>525
ええと......とりあえず Reference Manual は読みましたか?
私も Gtk+ 詳しいわけじゃないので分かりませんが、GdkImage あたりが怪しいのではないでしょうか?
0527デフォルトの名無しさんNGNG
>>524
つーか、関数教えてやれよ。
0528521NGNG
うーん、まだLinuxプログラム触って三ヶ月も経ってないんで、
Reference Manual をみてもよくわかんないんです・・・
GdkImageって

http://developer.gnome.org/doc/API/gdk/gdk-images.html#GDKIMAGE

のことですよね?
これをどう使えばいいのかわからんですよ・・・
0529524NGNG
>>528
とりあえず、GdkImage 作成して、そこに目的の Pixmap 描画して
gdk_image_get_pixel() でどうでしょうか?
これが最良の方法か分かりませんが(それ以前にできるかどうか試してませんが)
0530521NGNG
>529
自宅にLinux環境がなくてためせないんで、
明日試してみたいと思います〜
0531デフォルトの名無しさんNGNG
1つ目の引数のファイルをを2つ目の引数のファイルにコピーするソフトを作れと某氏から言われたのですが、
これで合ってますか?改善する点があるとすればどこでしょうか?

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
FILE *fp1, *fp2;
int c;

fp1 = fopen(argv[1], "r");
if (fp1 == NULL) {
printf("Error!!\n");
exit(1);
}
fp2 = fopen(argv[2], "w");
if (fp1 == NULL) {
printf("Error!!\n");
exit(1);
}

while ((c = fgetc(fp1)) != EOF) {
fputc(c, fp2);
}

fclose(fp1);
fclose(fp2);

return 0;
}
0532デフォルトの名無しさんNGNG
>>531
Windowsだとバイナリファイルのコピーがうまくいかない。
0533デフォルトの名無しさんNGNG
>>532
バイナリファイルとテキストファイルの判定は、
どのように行えばいいのでしょうか?
0534デフォルトの名無しさんNGNG
>>533
一般にはできないので、全部バイナリファイルとしてコピーすればよい。
0535デフォルトの名無しさんNGNG
>>534
分かりました。コード改良します。
0536表象文化論専攻NGNG
クリック一発でレジストリ内のカタカナを半角に統一したいのだが何か?
0537デフォルトの名無しさんNGNG
>>536
あっそう
0538デフォルトの名無しさんNGNG
>>536
おまえがやりたいのはレジストリなのかシェルなのかはっきりしろ。
やりたいって、やればいいのでは。できるよ。どうなってもしらんが。
0539デフォルトの名無しさんNGNG
>>531
win用
#include<stdio.h>
int main(int argc,char *argv[])
{
char s[BUF_SIZ];
sprintf(s,"copy %s %s",argv[1],argv[2]);
system(s);
return 0;
}
0540デフォルトの名無しさんNGNG
>>539
・バッファオーバーフローの可能性がある
・argcが1や2だった場合を考慮してない

70点
0541デフォルトの名無しさんNGNG
>>539
バイナリファイルは copy /b じゃないの?
0542デフォルトの名無しさんNGNG
それは+使ってconcatする場合限定。
0543デフォルトの名無しさんNGNG
ああそうか、テキストをバイナリモードでconcatすると、つなぎ目に
ctrl+zコードが残ったままになってまずいのか。
0544デフォルトの名無しさんNGNG
さすが Microsoft というか
さすが Bill Gates 天才だね!!
>> CRLF コードが LF コードに
>> ctrl+z コードが残って
0545デフォルトの名無しさんNGNG
>>544
CP/M時代からの遺物だと思われ。
0546デフォルトの名無しさんNGNG
スレ違いですが
「DOSのパスにバックスラッシュを使うことにした人」
「バックスラッシュに¥を割り当てた人」
「JISキーボードの0の上の~・ポンド・セント・々などを取っちゃダメって決めた人」
の名前を教えてください。
0547デフォルトの名無しさんNGNG
>>546
一番上のは(恐らく)ジョブスって人です。
0548デフォルトの名無しさんNGNG
Perlのsplit()をCで実装したいんですが、分かる方お願いします。
split(char*out, const char*in, char delim);
という形で。delimは'\t'とか、','とか1文字が入るという感じで。
ほんとは正規表現使いたいけど、それを実装するのは面倒そう。
0549デフォルトの名無しさんNGNG
strtok
0550デフォルトの名無しさんNGNG
perlからsplitパクってくればええやん。
0551548NGNG
>>549
strtokを調べてみました。
自分のやりたいことはこれで済みますね。
どうもありがとうございました。
0552デフォルトの名無しさんNGNG
本当に基礎な事で申し訳ないんですが
配列に入っている整数の最小数を探し出して
その要素が何番目なのかをプリントアウトしないといけないのですが
どうしたらいいのでしょうか。
最小数は探し出してプリントアウトできたのですが。
よろしくお願いします。
0553デフォルトの名無しさんNGNG
>>552
> 最小数は探し出してプリントアウトできたのですが。

探し出した時に、その添え字を覚えておけばいいとおもうけど...。
0554デフォルトの名無しさんNGNG
>>553
回答ありがとうございます。
ちょっと説明不足と言いますか
質問が的確じゃなかったと思います。すみません。
具体的に言えば、下の関数の中で
最小数の添字をelemとして返そうとしているのですが
どうしてもelemの値はゼロになってしまいます。
正しく最少数の添字を返すにはどうしたら良いのでしょう。
よろしくお願いします。
ポインタ、関数は課題としてつかわなければならないので使っています。

int returnSmallestElement(int array[]){
int i,*ptrOne,*ptrTwo,elem=0;
ptrOne=&array[0];
for(i=1;i<SIZE;i++){
ptrTwo=&array[i];
if(*ptrOne>*ptrTwo){
elem=i;
*ptrOne=*ptrTwo;
}
}
return elem;
}
0555デフォルトの名無しさんNGNG
>>554
間違ってなさそうだが...。(VC++ 6.0 ならちゃんと動いたぞ。)
ただ、そのプログラムだと array[0] が壊されるようだが、それはいいのか ?
0556デフォルトの名無しさんNGNG
>>555
回答ありがとうございます。
Dev-C++使ってるんですが
Elemが0になっちゃいます....
どうしたらいいんだろう。
0557デフォルトの名無しさんNGNG
>>553,>>555
他の関数に問題がないか
しばらく自分で考えてみます。
本当にありがとうございました。
0558デフォルトの名無しさんNGNG
外で
minimum = returnSmallestElement(array);
としてる?
単に
elem=0;
としてあるが、arrayに正の数しか入っていなくて、比べた時に
 0 が 一 番 小 さ い
とかか?
0559デフォルトの名無しさんNGNG
>>554
( `Д) <int returnSmallestElement(int array[],int *index);
/(ヘ つ )ヘ  とでもして、最小のインデックスを返したら?
       それから、なぜ最小値の候補にarray[0]を使うの?
       それようの変数を別に用意したら?
0560デフォルトの名無しさんNGNG
( `Д) <なんだ、インデックスを返してるのか・・・
/(ヘ つ )ヘ
0561デフォルトの名無しさんNGNG
(; ゚Д゚)=3 
/(ヘ э )ヘ
0562デフォルトの名無しさんNGNG
カメラを制御するため0x****って感じで値を渡して
やらないとならないのですが****のとこだけ十進で
計算して(a=8000-6Xといった風に。)あとで0xを頭につけて
渡してやるためにはどのように記述すればよいでしょうか。
よろしくおねがいします。
0563デフォルトの名無しさんNGNG
実は
*ptrOne,*ptrTwo
の中の値が保持されてないんじゃないの?
内部で宣言しているし・・・
0564デフォルトの名無しさんNGNG
文字列で16進表現したものを渡せばいいの?
だったら、
char buf[BUFFER_SIZE];
sprintf(buf, "0x%x", a);
みたいに。文字列に直してからそれを送れば。
0565デフォルトの名無しさんNGNG
( `Д) <つーことは、文字列で渡すの?
/(ヘ つ )ヘ あと、a=8000-6Xってどういう意味?
0566563NGNG
間違えました。
elemでアドレスが返って、
minimum = returnSmallestElement(array);(お借りします。)
として、
printf("adress=%d,minimum_no=%d",minimum,array[minimum]);
これでよくない?
0567562ですNGNG
レスありがとうございます

>>564,>>565さん
文字列ではなく関数マニュアルではロングとあります。
今現在は
BOOL sts = m_vcc4a.SetPTAngle2( 0L,0x8080, 0x8000);
って感じでそのまま書いて渡してます。初心者丸出しですみません・・
0568デフォルトの名無しさんNGNG
0x8000+n
か?
0569562ですNGNG
>あと、a=8000-6Xってどういう意味?

画像処理をして、その結果により変数Xの値を決めて
0x8000 -> 0x8012 といった風に変えたいのです。
0570562ですNGNG
>>568さん nはlongですか? 
0571562ですNGNG
int n=2;
BOOL sts = m_vcc4a.SetPTAngle2( 0L,0x8000+0x2, 0x8000);
で無事通りました・・・お騒がせしました。みなさんありがとうございます。
0572562ですNGNG
↑タイプミス・・寝ぼけててすみません
0573!1NGNG
とりあえず、AIを作ったんだけど、それを実体化させるにはどうしたらいいの?
0574デフォルトの名無しさんNGNG
女性と籍を入れる。
0575ZettonNGNG
参考書に載っていた、入力したファイルを画面に表示する
プログラムなんですが・・・

/* 入力されたファイルを画面に表示するプログラム */

#include<stdio.h>

main()
{
FILE * fp ;
char *p ;
char str [ 500 ] ;
char fname [ 100 ] ;

puts ( "ファイル名を入力してください。" ) ;
gets ( fname ) ;

fp = fopen ( fname , "r" ) ;
p = fgets ( str , 500 , fp ) ;
 /*ここなんですが、pとstrには何が入ったんでしょうか?*/
 /*while文の処理がわかんないんです。*/
/*いろいろ検索したんですが、リファレンスが難しくて・・*/
/*お願いします。*/
while ( p != NULL)
{
printf( "%s" , str ) ;
p = fgets ( str , 500 , fp ) ;
}
fclose ( fp ) ;
}
0576デフォルトの名無しさんNGNG
K&Rを読んだ方が早いと思うが。
str には fnameのファイルの最初から500-1文字が入る。
途中に改行があったらそこで終わる。
pにはstrもしくはファイルが終わってたらNULLが入る。
0577ZettonNGNG
ありがとうございました。
0578CビギナーNGNG
これをダイクストラ法にしてください。
グラフ表示の方式はソースをみて下さい。

/* 単純法 */
#include <stdio.h>
#include <stdlib.h>
#define INF 1000000
#define malloc_e(t, n)(t*)malloc_e_void((unsigned)(sizeof(t)*(n)))

/* struct edge 型の定義 */
struct edge{
int d;
int end1, end2;
};
/* struct graph 型の定義 */
struct graph{
int width; /* drawgraphでグラフを描画するときに横に並ぶ節点の個数 */
int n; /* 節点数 */
int m; /* 枝数 */
struct edge *E;
};
/* エラーチェック付き malloc; 返り値は void* 型 */
void*
malloc_e_void(size_t size) {
void *ptr = malloc(size);
if (!ptr) {
fprintf(stderr, "malloc : Not enough memory.\n" );
exit(EXIT_FAILURE);
}
return ptr;
}
0579続きNGNG
/* データの読み込み */
void read(struct graph *gp){
int e;
fscanf(stdin, "%d %d %d", &gp->width, &gp->n, &gp->m);
gp->E = malloc_e(struct edge, gp->m);
for (e = 0 ; e < gp->m; e++){
fscanf(stdin, "%d %d %d", &gp->E[e].d, &gp->E[e].end1, &gp->E[e].end2);
if(gp->E[e].d >= INF){
fprintf(stderr, "ERROR: the cost of the edge %d->%d is too large!\n",
gp->E[e].end1, gp->E[e].end2);
exit(EXIT_FAILURE);
}
}
}
/* drawgraph.tcl 用グラフ定義の出力 */
void
write(struct graph *gp, int source){
int e;
printf("### graph definition\n");
printf("begingraph\n");
printf("width %d\n", gp->width);
printf("nodenum %d\n", gp->n);
printf("edgenum %d\n", gp->m);
printf("source %d\n", source);
printf("nodestart 0\n");
printf("# edges\n");
for (e = 0; e < gp->m; e++){
printf("edge %d %d %d\n", gp->E[e].d, gp->E[e].end1, gp->E[e].end2);
}
printf("endgraph\n###\n");
}
0580続きNGNG
/* main 関数 */
int
main(int argc, char *argv[]){
int v, e, k, source;
int **label;
int *prev;
struct graph g;

/* source: 実行時,引数を省略すれば 0 */
if (argc > 1) source = atoi(argv[1]);
else source = 0;

/* データの読み込み & メモリ確保 */
read(&g);
if (source < 0 || source >= g.n){
fprintf(stderr, "ERROR: invalid source number.\n");
exit(EXIT_FAILURE);
}
/* drawgraph.tcl 用グラフ定義部分の出力 */
write(&g, source);
/* malloc for label[][], prev[] */
label = malloc_e(int*, g.n);
for (v = 0; v < g.n; v++) label[v] = malloc_e(int, g.n+1);
prev = malloc_e(int, g.n);
/* 初期化: label[][] and prev[] */
for (v = 0; v < g.n; v++){
label[v][0] = INF;
prev[v] = -1;
}
label[source][0] = 0;
0581続きNGNG
/* At the end of the k-th step, label[v][k], v= 0, 1, ..., n-1, has been
calculated, whose value means the shortest path length using at most
k edges from the source.*/
k = 1;
while(1){
for(v = 0; v < g.n; v++) label[v][k] = label[v][k-1];

printf("step # k = %d\n", k);
for(v = 0; v < g.n; v++){
printf("label %d %d\n", v, label[v][k]);
printf("colornode %d white\n", v);
if (prev[v] >= 0) printf("coloredge %d %d red\n", v, prev[v]);
}

printf("step\n");
for(e = 0; e < g.m; e++){
int flag = (prev[g.E[e].end1] == g.E[e].end2 ||
prev[g.E[e].end2] == g.E[e].end1);
if (flag) printf("coloredge %d %d pink\n", g.E[e].end1, g.E[e].end2);
else printf("coloredge %d %d grey\n", g.E[e].end1, g.E[e].end2);
printf("step\n");
0582続きNGNG
/* the case end1->end2 */
if(label[g.E[e].end2][k] > label[g.E[e].end1][k-1] + g.E[e].d){
label[g.E[e].end2][k] = label[g.E[e].end1][k-1] + g.E[e].d;
printf("colornode %d red\n", g.E[e].end2);
if (prev[g.E[e].end2] >= 0){
printf("coloredge %d %d black\n", prev[g.E[e].end2], g.E[e].end2);
}
prev[g.E[e].end2] = g.E[e].end1;
flag = 2;
}
/* the case end2->end1 */
if(label[g.E[e].end1][k] > label[g.E[e].end2][k-1] + g.E[e].d){
label[g.E[e].end1][k] = label[g.E[e].end2][k-1] + g.E[e].d;
printf("colornode %d red\n", g.E[e].end1);
if (prev[g.E[e].end1] >= 0){
printf("coloredge %d %d black\n", prev[g.E[e].end1], g.E[e].end1);
}
prev[g.E[e].end1] = g.E[e].end2;
flag = 2;
}
if (flag == 0){
printf("coloredge %d %d black\n", g.E[e].end1, g.E[e].end2);
}
else if (flag == 1){
printf("coloredge %d %d red\n", g.E[e].end1, g.E[e].end2);
}
else {
printf("coloredge %d %d orange\n", g.E[e].end1, g.E[e].end2);
}
}
0583続きNGNG
/* 終了条件の判定 */
for (v = 0; v < g.n; v++){
if(label[v][k] != label[v][k-1]) break;
}
if (v == g.n) break; /* label[v][k] == label[v][k-1], for all v */
if (k == g.n){
printf("there exists a negative cycle in the input graph.\n");
printf("cannot construct the shortest path tree.\n");
exit(EXIT_SUCCESS);
}
k++;
}
printf("end\n");

/* 最短路の出力 */
for(v = 0; v < g.n; v++){
int curr = v;
printf("# ");
while( prev[curr] != -1 ){
printf("%d <-- ", curr);
curr = prev[curr];
}
printf("%d (length = %d)\n", source, label[v][k]);
}
exit(EXIT_SUCCESS);
}
0584ちなみに自分でここまではしました。NGNG
/* daikusutora */
#include <stdio.h>
#include <stdlib.h>
#define INF 1000000

#define malloc_e(t, n) (t*)malloc_e_void((unsigned)(sizeof(t)*(n)))

/* struct edge 型の定義 */
struct edge{
int d;
int end1, end2;
};

/* struct graph 型の定義 */
struct graph{
int width; /* drawgraphでグラフを描画するときに横に並ぶ節点の個数 */
int n; /* 節点数 */
int m; /* 枝数 */
struct edge *E;
};

/* エラーチェック付き malloc; 返り値は void* 型 */
void*
malloc_e_void(size_t size) {
void *ptr = malloc(size);
if (!ptr) {
fprintf(stderr, "malloc : Not enough memory.\n" );
exit(EXIT_FAILURE);
}
return ptr;
}
0585続きNGNG
/* データの読み込み */
void read(struct graph *gp){
int e;
fscanf(stdin, "%d %d %d", &gp->width, &gp->n, &gp->m);
gp->E = malloc_e(struct edge, gp->m);
for (e = 0 ; e < gp->m; e++){
fscanf(stdin, "%d %d %d", &gp->E[e].d, &gp->E[e].end1, &gp->E[e].end2);
if(gp->E[e].d >= INF){
fprintf(stderr, "ERROR: the cost of the edge %d->%d is too large!\n",
gp->E[e].end1, gp->E[e].end2);
exit(EXIT_FAILURE);
}
}
}

/* drawgraph.tcl 用グラフ定義の出力 */
void
write(struct graph *gp, int source){
int e;
printf("### graph definition\n");
printf("begingraph\n");
printf("width %d\n", gp->width);
printf("nodenum %d\n", gp->n);
printf("edgenum %d\n", gp->m);
printf("source %d\n", source);
printf("nodestart 0\n");
printf("# edges\n");
for (e = 0; e < gp->m; e++){
printf("edge %d %d %d\n", gp->E[e].d, gp->E[e].end1, gp->E[e].end2);
}
printf("endgraph\n###\n");
}
0586続きNGNG
/* main 関数 */
int
main(int argc, char *argv[]){
int v, e, min, u, source , Pnum ;
int *label ;
int *prev ;
int **Bwidth ;
int *P ; /* uがpの要素ならp[u]==1,そうでなければ0 */
struct graph g ;

/* source 実行時引数を省略すれば0 */
if (argc > 1) source = atoi(argv[1]);
else source = 0 ;

/* データの読み込み & メモリ確保 */
read(&g);
if (source < 0 || source >= g.n){
fprintf(stderr, "ERROR : invalid source number.\n");
exit(EXIT_FAILURE);
}

/* drawgraph.tcl 用グラフ定義部分の出力 */
write(&g, source);

/* malloc for label[],prev[] */
label = malloc_e(int,g.n) ;
prev = malloc_e (int, g.n) ;
0587続きNGNG
/* 初期化 */
for (v= 0 ; v < g.n ; v++){
label[v] = INF ;
prev[v] = -1 ;
P[v] = 0 ;
}

label[source] = 0 ;
P[0] = 1 ;
Pnum ;

for(v=0;v < g.m; v++){
for (u=0 ; u < g.m ; u++){
Bwidth[v][u] = -1 ;
}
}

for (v=0; v < g.m ;v++){
Bwidth[g.E[v].end1][g.E[v].end2] = g.E[v].d ;
Bwidth[g.E[v].end2][g.E[v].end1] = g.E[v].d ;
}

0588続きNGNG
/* step2 */

while (Pnum < g.n )
{
if(P[v] == 0){
min = INF ;
for(v = 0 ; v < g.n ; v++){
if ( P[v]){
continue ;
}
if(label[v] < min ){
min = label[v] ;
}
}
printf("\nstep\n") ;
for(v=0 ; v < g.n ; v++){
if(label[v] == min){
if(v != 0){
printf("coloredge %d %d red\n" , v , prev[v]) ;
}
printf("colornode %d gray\n" , v);
P[v] = 1;
Pnum++;
}
}
0589続きNGNG
/* step3 */

/* Pにふくまれるもの */
for(v=0 ; v < g.n ; v++){
if (!P[v]){
continue ;
}
for(u =0 ; u < g.n ; u++){
if (P[u]){
continue ;
}

/* Neiborhood */
if (Bwidth[v][u] != -1){
if(label[v] + Bwidth[v][u] < label[u]){
label[u] = label[v] + Bwidth[v][u] ;
prev[u] = v ;

printf("\nstep\n") ;
printf("coloredge %d %d red\n" , v,u ) ;
printf("colornode %d red\n" , u ) ;
printf("label %d %d\n" , u , label[u] ) ;
}
}
}
}
}
}
exit(EXIT_SUCCESS);
printf("end\n");
0590続きNGNG
/* 最短路の出力 */
for(v = 0; v < g.n; v++){
int curr = v;
printf("# ");
while( prev[curr] != -1 ){
printf("%d <-- ", curr);
curr = prev[curr];
}
printf("%d (length = %d)\n", source, label[v]);
}
exit(EXIT_SUCCESS);
}
0591デフォルトの名無しさんNGNG
ダイクストラ氏亡くなったそうだね。
0592デフォルトの名無しさんNGNG
そーいうのはこっちに貼った方がいいんじゃない?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433
0593と、解けない・・・NGNG
半径100のを球の地球儀に見立てたとき、
東径i度(0≦i≦180)、北緯j度(-180≦j≦180)の地表の
三次元座標(x,y,z)としたとき
x=100*cos(j)*cos(i)
y=100*cos(j)*sin(i)
z=100*cos(j)
中心C(-120、0、0)
・上の球の三角形パッチ近似によるオブジェクト定義ファイルを作成せよ。

【ヒント】
経線・緯線を15度刻みに分割する。
そこでえられる個々の球面四角形に対角線を一本引いて得られる三角形パッチ528面を作れ。







0594デフォルトの名無しさんNGNG
なんだ、その「オブジェクト定義ファイル」って。
C/C++となんか関係あんのか?
0595と、解けない・・・NGNG
>>594
すみません、意味不明ですよね。やりたいことを分かりやすくまとめると
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
左下の点を東経0度、北緯-180度とし
右上の点を東経180度、北緯180度とする。
このとき、左下の座標は、
---------------------------------------------------------
東径i度(0≦i≦180)、北緯j度(-180≦j≦180)の地表の
三次元座標(x,y,z)としたとき
x=100*cos(j)*cos(i)
y=100*cos(j)*sin(i)
z=100*cos(j)
---------------------------------------------------
上の公式から 、左下(100*cos(-180)*cos(0),100*cos(-180)*sin(0),100*cos(-180))となる。
残りのすべての点の座標をこの要領で求める。
ここからが分からないんですけど
A・ B・ F・

C・ D・ E・

上で求めた座標を印字するとき
printf("(Cの座標)(Dの座標)(Bの座標)");
printf("(Cの座標)(Bの座標)(Aの座標)");
pirntf("(Dの座標) (Eの座標) (Fの座標) ") ;
printf("(Dの座標) (Fの座標) (Bの座標) ") ;
上の三角形CDB,CBAのような感じで、三角形を作りながら印字したいんです。
0596もまずにパピコNGNG
要するに、球をポリゴヌで作ってその全頂点座標を列挙しやがれ!ってことか?
だとしてもよくわからんな。なんで経度の方を180度で取り、緯度を360度取るんだろう。
東極と西極ができちまうじゃないか。
0597デフォルトの名無しさんNGNG
int x,y;
for(x = -12; x <12;x++){
for( y = 0; y < 11; y ++){
 rect = { x, y, (x+1), (y+1)};
triangle1 = { {x,y}, {x+1, y }, {x,y+1} };
triangle2 = { {x,y+1}, {x+1,y } , {x+1, y+1} };
}}
ただし、それぞれ15倍すること
0598と、解けない・・・NGNG
>>596
>要するに、球をポリゴヌで作ってその全頂点座標を列挙しやがれ!ってことか?
はい、そのとおりです。
三角形を作るように全頂点座標を列挙するのがポイントと書いてあるます。

>なんで経度の方を180度で取り、緯度を360度取るんだろう
大変すみません。経度(0≦i≦360)でした。
ほんとにすみません。

>>597
おぉ!!なるほど。
どうもありがとう御座いました。
0599もまずにパピコNGNG
なんか595の式をまんま代入してプログラムしてたら円錐になってしまった。
やっぱり地球が丸いのなんて邪教徒の盲信だってことだな。
0600デフォルトの名無しさんNGNG
>x=100*cos(j)*cos(i)
>y=100*cos(j)*sin(i)
>z=100*cos(j)
ここのcos,sinを、それぞれ、替えてみたり、i,jを替えてみたりしたら?
0601もまずにパピコNGNG
やっぱり俺が座標系を間違ってたぜ! 地球丸い!
漏れアフォ! アリストテレスかしこ!

こんな感じでできました。
void setVert(CUSTOMVERTEX &Vert, int a, int b)
{
  Vert.x = sin((float)a*3.14159/12.0) * cos((float)b*3.14159/12.0);
  Vert.y = -sin((float)b*3.14159/12.0);
  Vert.z = -cos((float)a*3.14159/12.0) * cos((float)b*3.14159/12.0);
  Vert.nx = -Vert.x;
  Vert.ny = -Vert.y;
  Vert.nz = -Vert.z;
  Vert.color = 0xffffffff;
}

CUSTOMVERTEX g_Vertices[11*25*2];
int c=0;
for(int y = -6; y<5; y++) {
  for(int x = -12; x <= 12; x++) {
   setVert(g_Vertices[c], x, y+1);
   c++;
   setVert(g_Vertices[c], x, y );
   c++;
  }
}
0602デフォルトの名無しさんNGNG
あ〜ラヂアンを考慮してなかったの?
0603デフォルトの名無しさんNGNG
sin cos tan
0604デフォルトの名無しさんNGNG
モイラーの公式を使えって言われたんですがそれはなんですか?
0605デフォルトの名無しさんNGNG
>>604
オイラーではなくてか?
0606沙羅NGNG
1、標準入力から家族三人の年令を入力して、
  家族全員の年令の合計と平均年令を求めて、
  出力するプログラムを作れ。

 「家族3人の年令を空白で区切って入力して下さい: 12 50 60
  年令の合計: 122
  平均年令: 40.7」

2、標準入力からある整数を読み込み、この整数の128の剰余を求め
  剰余の値を文字コードにもつ、アルファベットを出力する
  プログラムをつくれ。

  「整数を入力してください: 624
   対応するアルファベットはpです。」

宿題が全然わからないのです。
全部で4問あるのですが、
まずはじめの2問、お願いいたします。
どうか教えて下さいm(>_<)m
0607デフォルトの名無しさんNGNG
>>606
> 宿題が全然わからないのです。

全然わからないなら、おとなしく留年するなり落第するなりした方がいい。

> まずはじめの2問、お願いいたします。

はじめの2問...、全て頼る気か ?

ちょっとは努力しろ、ヴァカ。
0608沙羅NGNG
すみません、努力が必要なんはめっちゃわかります。
あまあまですね。
途中まではわかるのでヒントもらうつもりできたんですが…
お邪魔いたしました。
0609もまずにパピコNGNG
何がわからんかくらい書け。
平均は家族三人の年齢をa,b,cとすれば(a+b+c)/3だ。
128の剰余ってのは128で割った余りだ。Cだったら(x%128)だ。
入出力は色々方法があるので、先生が教えた奴を使え。
0610590NGNG
結局だれもれすなしか

2ちゃんのレベルはこんなもんだな
0611デフォルトの名無しさんNGNG
double d, add = 0;
cout<<"input: ";
for (int i = 0; i < 3; i++) cin>>d, add+=d;
cout<<"Sum: "<<add<<"\nAvg: "<<add/3<<endl;
0612沙羅NGNG
#include<stdio.h>
もまずにパピコさん、ありがとうございます!

main()
{

int Date1, Date 2, Date3;
int Add,Mul,Div;

scanf("%d %d %d", &Date1, &Date2& Date3)

Add=Date1+ Date2+ Date3;
Mul=(Date1+ Date2+ Date3)/3;

途中まで自分でやってみたのはこんなかんじなのですが、
足し算と割算とをつかってるしきをMulとするのはおかしい??
あと、プログラム中に文章をだす(平均年令とか)のがわからないです。
printf("平均年令");
ですか…??
0613デフォルトの名無しさんNGNG
Aveだろっ!
0614?1??NGNG
!!ありがとうございます!!
0615betterNGNG
float Ave;
Sum=......
Ave=Sum/3.0;
0616デフォルトの名無しさんNGNG
>>608
> 途中まではわかるのでヒントもらうつもりできたんですが…

何で、その「途中まで」を書かないの ?

> お邪魔いたしました。

まあ、どうでもいいけど、これだけだったらホントにお邪魔としか言いようがないなぁ。
0617?1??NGNG
わからない!のきもちいっぱいで…
すみません。
でも、ほんとに親切な方がたくさんいてくださって
とても助かりました。

betterさん、Sumってなにでしょうか…??
0618betterNGNG
「総和」
辞書引くように。和英辞典も良いよ。
0619611NGNG
ハァハァ沙羅タソ・・・
お礼は2時間でいいからね(;´Д`)
0620betterNGNG
are?[ave]ltutetigaunn?shame a little.
0621?1??NGNG
Sum=総和、覚えておきます!

#include<stdio.h>

main()
{

int Date1, Date 2, Date3;
int Add,Mul,Div;

scanf("%d %d %d", &Date1, &Date2& Date3)

float Ave;
Sum=Date1+ Date2+ Date3;
Ave=(Date1+ Date2+ Date3)/3;

printf("%d %d %d"\n", Date1, Date2, Date3);
printf("%d %d\n", Sum, Ave");
}

これでよいでしょうか?
平均年令や年令の合計ということばはどこにかいたらよいでしょうか??
0622betterNGNG
チェック項目
1.宣言を直す。
2.コンパイルして見る。
3.整数・実数の出力の仕方の違いを理解する。
4.Aveを求める式にSumを使う。
5.文字列をprintfに入れて見る。他
0623デフォルトの名無しさんNGNG
>>607
お前がスレ違い。自分で調べろとか言うヤシは逝ってよしだよ
0624?1??NGNG
#include<stdio.h>

main()
{

int Date1, Date 2, Date3;
int Ave,Sum;

scanf("%d %d %d", &Date1, &Date2& Date3)

float Ave;
Sum=Date1+ Date2+ Date3;
Ave=Sum/3;

printf("家族3人の年令を空白で区切って入力してください:%d %d %d"\n", Date1, Date2, Date3);
printf("年令の合計: %d\n", Sum");
printf("平均年令: %d\n,Ave");
}

こんなかんじでしょうか…??
コンパイル…学校いかないとできないので
たしかめることができないのです…
0625デフォルトの名無しさんNGNG
>>624
自宅のマシンにもCいれれ
0626?1??NGNG
>>625
いれたいです。マックでいいのないですかね。
0627デフォルトの名無しさんNGNG
>>626
http://www.alpha-net.ne.jp/users2/ei9711/freeprog.html
0628betterNGNG
Aveを二回宣言している。出力が%dのままでは、まずい。
scanf();のData3の辺りが変だ。
割るときに3.0じゃないとダメだったんじゃないのかな?
'\'全角はダメなんじゃないの?
"の位置が変。変なところに有る。
あとは他の方よろしく、他は頑張って。
0629デフォルトの名無しさんNGNG
>>624
6: 宣言の構文エラー(関数 main )
9: 未定義のシンボル Date2(関数 main )
9: 未定義のシンボル Date3(関数 main )
11: ステートメントにセミコロン(;)がない(関数 main )
15: 不正な文字 '\' (0x815f)(関数 main )
15: 関数呼び出しに ) がない(関数 main )
15: 文字列または文字定数が閉じていない(関数 main )
16: 文字列または文字定数が閉じていない(関数 main )
*** 8 errors in Compile ***
0630?1??NGNG
みなさん、本当にありがとうございました!!!
はじめはいってきたときとかとても説明不足だったのに、
こんなにつきあってくださって感謝感謝です。
教えていただいた間違えてるところをがんばってなおします!!
0631デフォルトの名無しさんNGNG
【広告】プログラマ・シナリオライター など 募集【広告】

ジャソプのギャルゲーを作っています!!part11
http://corn.2ch.net/test/read.cgi/ymag/1033761995/

こちらのスレッドでジャンプキャラのギャルゲーを創っています。

随時、CG・彩色・シナリオ・プログラマ等スタッフ募集中!
スタッフ参加しない・できない人たちも、意見要望アイデア出し、
その他諸々どんなかたちでもいいので、是非参加してください。

公式HP【ジャソプのギャルゲーをマジで作る会】
http://isweb41.infoseek.co.jp/computer/eque/

現在体験版の配布も行っています、一度試しに訪れてみてください。   
0632デフォルトの名無しさんNGNG
( ´_ゝ`)フーン
0633パパNGNG
いいからケツを出せ。
0634デフォルトの名無しさんNGNG
#include <stdio.h>

main() {
int Date1, Date2, Date3;
int Sum;
float Ave;

printf("家族3人の年令を空白で区切って入力してください\n");
scanf("%d %d %d", &Date1, &Date2, &Date3);

Sum=Date1+ Date2+ Date3;
Ave=(float)Sum/3;

printf("家族3人の年令: %d %d %d\n", Date1, Date2, Date3);
printf("年令の合計: %d\n", Sum);
printf("平均年令: %f\n",Ave);
}
0635デフォルトの名無しさんNGNG
#include <stdio.h>

main() {
int i;
printf("整数を入力してください: ");
scanf("%d", &i);
printf("対応するアルファベットは%cです。\n", i%128);
}
0636デフォルトの名無しさんNGNG
data:データ
date:日付
0637デフォルトの名無しさんNGNG
C++で、structって使ってもいいの?
全部クラスにしないとダメ?
0638デフォルトの名無しさんNGNG
>>637
関数オブジェクトなどを書く時で、publicなメンバだけの時はstructと
書くと private: を付けなくて済む。
0639デフォルトの名無しさんNGNG
http://gooo.jp
無料掲示板
無料レンタル掲示板
0640 NGNG
宿題ではないけど少し教えええてほしいことがあります。
例えばテキストファイルで
0 62 98 45698
1 98 58 69871
3 25 48 98745
みたいなデータが五百行以上続いているファイルがあるとして
2行ごとに行の内容を全て消したファイルを作りたいのです。
上の例でいえば3から始まる行を全て消して、次は6行目をけすという感じに
できればC言語でお願いします。ヒントだけでも良いです。
0641デフォルトの名無しさんNGNG
ファイル新たに作っても良いの?
桁は固定されてる?
0642640NGNG
>>640
もちろんファイルあたらに作っても良いです。
数字の桁は右の方に、例えば3 25 48 95698 4456.5 25.3
見たいにかなり続いてます。しかし行の終わりは同じ位置です。
たぶん固定です。
0643デフォルトの名無しさんNGNG
>>640
> 2行ごとに行の内容を全て消したファイルを作りたいのです。

消すとはどういうことか ?

A. 改行は残すのか ?
B. 改行ごと削除するのか ?

>>641
それってなんかプログラムに関係する ?
0644641じゃないがNGNG
>>643
フィルタにすればファイルをプログラム上明示的に作る必要はないな。
ただ、桁が固定されているとプログラムは格段に楽になる。
0645640NGNG
>>640
できれば改行ごとです。けど別に改行程度なら残っていてもいいです。
実はいつもは手作業でエディタで消していたのでそれをなんとか自動化
したいとおもいまして・・・
0646デフォルトの名無しさんNGNG
while(p){
  fgets(p);
  fputs(p);
  if(p==NULL)
   break;
  fgets(p);
  fputs(p);
  if(p==NULL)
   break;
  fgets(p);
}
こんなイメージ。
0647デフォルトの名無しさんNGNG
>>645
今ここで書いてみた。テストはしてないし、コンパイルもしてないけど、こんな感じ。


#define BUFSIZ 512 /* 行の大きさ以上 */
#define SKIP 3 /* この数の倍数行を出力しない */

int main(void) {
char buf[BUFSIZ];
int i = 1;

while (fgets(stdin, buf, sizeof(buf))) {
if (i % SKIP) {
fputs(stdout, buf);
}
}
return 0;
}
0648647NGNG
ぎゃ。iをインクリメントするの忘れてた(汗
whileのループ中一番最後に
i++;
を付け加えてください。
0649640NGNG
>>647
これってファイル処理はしなくてよいんですか?
あ、そうか。stdinのところをファイルポインタにしたら
画面に処理後のファイルが表示されるってことですか?
Cはよくわからないので自信ないですが。

0650デフォルトの名無しさんNGNG
  FILE *stdin, *stdout;

  if ((stdin = fopen("\\〜〜〜〜.〜", "rt")) == NULL){
    fprintf(stderr, "Cannot open input file.\n");
    return 1;
  }

  if ((stdout = fopen("\\〜〜〜〜.〜", "wt")) == NULL){
    fprintf(stderr, "Cannot open output file.\n");
    return 1;
  }
〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜
  fclose(stdin);
  fclose(stdout);
0651デフォルトの名無しさんNGNG
stdin とかってマクロじゃなかった?
0652デフォルトの名無しさんNGNG
お願いします。

テキストファイル"input2.txt"から座標データを読み込み、読み込んだ各点間を
n等分した中間点の座標を"二次式による補間法"を用いて計算し、ディスプレーおよびoutput2.dat
に出力するプログラムを作成しなさい。ここで、nの値はキーボードから、もしくは
プログラム中に直接定義してもよい。

Input2.txt(先頭行はデータ数、2行目以降はxおよびyの位置関係)

友達間で誰もできなくてショックだったんです。
誰か教えてください。
0653643NGNG
>>644
> フィルタにすればファイルをプログラム上明示的に作る必要はないな。

すまん、>>641 の「ファイル新たに作っても良いの?」は見落としてた。

> ただ、桁が固定されているとプログラムは格段に楽になる。

そうか ? とりあえず最大長さえ決まってればいいと思うけど...。
(決まってないとちょっとだけ工夫が必要だよね。)

>>646
100行毎と言われたらどうするんだ ? (ステップ数が稼げていいかも知れんが...。)

>>647
いいかげん、fgets() と fputs() の引数の順序ぐらい覚えろよ。
(確かに、俺にとっても違和感あるけどな。)
0654652NGNG
すいません、書き忘れてましたね。

Input2.txt(先頭行はデータ数、2行目以降はxおよびyの位置関係)
5
100.0 0.0
200.0 200.0
300.0 100.0
400.0 0.0
500.0 300.0
0655640NGNG
エラーがでまくりました。
たとえばファイル処理をいっさい行わず自分でドスの画面にデータを
コピーして、また画面に表示することにすればもっと簡単になりますかね?
0656デフォルトの名無しさんNGNG
stdin,stdoutは予約語だね。使えない。in,outでいいでしょ。
0657デフォルトの名無しさんNGNG
#include <stdio.h>

main() {
int ch, state=1;
while ((ch = getchar()) != EOF) {
if (state) putchar(ch);
if (ch == '\n' && ++state == 3)
state = 0;
}
}
0658647NGNG
>>653
そ、そうっすね。普段はエディタに覚えさせてるんですが、
ホットゾヌから書いてたもんでうろ覚えで書いちゃいました。
0659デフォルトの名無しさんNGNG
#include <stdio.h>
#define BUFSIZ 512 /* 行の大きさ以上 */
#define SKIP 3 /* この数の倍数行を出力しない */
int main(void){
  FILE *in,*out;
  char buf[BUFSIZ];
  int i=1;
  if((in = fopen("\\〜〜〜〜.〜", "rt")) == NULL){
    fprintf(stderr, "Cannot open input file.\n");
    return 1;
  }
  if((out = fopen("\\〜〜〜〜.〜", "wt")) == NULL){
    fprintf(stderr, "Cannot open output file.\n");
    return 1;
  }
  while (fgets(in, buf, sizeof(buf))) {
    if (i % SKIP) {
      fputs(out, buf);
    }
    i++;
  }
  fclose(in);
  fclose(out);
  return 0;
}
こんなかんじか?他人のを勝手に合成してますけど・・・sorry
エラーが何を言っているのかも理解してあげたら?
0660659NGNG
fgetsとか直してないです。重ねてスミマセン。
fgets(buf, sizeof(buf), in)
fputs(buf,out);
かな?
0661デフォルトの名無しさんNGNG
#include <stdio.h>
main(){
  FILE *in,*out;
  int data_no,n;
〜〜〜〜〜〜〜〜ファイルオープン
  fscanf(in, "%d", &data_no);
  for(i=0; i<data_no; i++)
    fscanf(in, "%f %f", &f1[i],&f2[i]);
  scanf("%d", &n);
//二次式による補間法の処理
〜〜〜〜〜〜〜〜ファイルクローズ
  return 0;
}
0662デフォルトの名無しさんNGNG
二次式による補間法ってのはどんなもんなのかね。
0663manko_chinko ◆GLc2rpKRNM NGNG
技術科の先生に調子乗って俺のほうがプログラミングできるといってしまいました
で、先生が「じゃ、OSつくってこい。」といいました。

どうすればいいですか。
0664デフォルトの名無しさんNGNG
先生もOSを作らないと比較しようがないとでもいえ。
0665デフォルトの名無しさんNGNG
>>663
作ればいいじゃん。作れば証明できるんだから。
0666manko_chinko ◆GLc2rpKRNM NGNG
まず環境構築だと思うのですが、
アセンブラとこんぱいらはなにがいいでしょうか。
0667manko_chinko ◆GLc2rpKRNM NGNG
ちなみにWindowsのコマンドプロンプトで作ろうと思います
0668デフォルトの名無しさんNGNG
まずローダーからつくれ。
0669デフォルトの名無しさんNGNG
>>663
自分の蒔いた種だ。
ITRONとか調べてがんがれ
0670デフォルトの名無しさんNGNG
>>663 こっちいけ
http://pc3.2ch.net/test/read.cgi/tech/1027080631/l50
0671manko_chinko ◆GLc2rpKRNM NGNG
Cでかいたやつとアセンブリで書いたやつををリンクしたいんですが、Cでかいたほうで、
ライブラリをリンクしろみたいにリンカに言われてリンクできません。OSつくるのにライブラリなんてリンクしちゃだめですよね?
どうにかならないでしょうか。コンパイラは16bitのやつが使いたいので某企業の16bitコンパイラです。
リンカはmicrosoftのlinkです。
0672教えてください!NGNG
標準入力からある整数を読み込み、この整数の128の剰余を求め、
剰余の値を文字コードに持つ、アルファベットを出力するプログラムを作れ。です。
0673デフォルトの名無しさんNGNG
C言語でpop3クライアント(って言うのか?)を作らなきゃ
いけなくなった・・・誰か教えてくれ〜
0674デフォルトの名無しさんNGNG
行列式を解くためのプログラム教えてー。
0675デフォルトの名無しさんNGNG
>>672
>>635にもう出てるが。
0676デフォルトの名無しさんNGNG
あと微分積分をとくプログラムもお願い。
0677デフォルトの名無しさんNGNG
>>672
自分で考えたコードをもってこい。

>>673
ソケットの使い方と POP3 プロトコルのコマンドがわかれば作れる。
とりあえずこのサイトでも読んでくれ。
http://x68000.startshop.co.jp/~68user/net/

>>674
まず google。コードごと載ってるサイトが腐るほどある。
0678デフォルトの名無しさんNGNG
>>676
宿題なら単に”微分積分をとくプログラム”っていうだけじゃないでしょ。
問題全文かきや
0679デフォルトの名無しさんNGNG
>>677
ここは宿題やってくれるスレだろ。ぐちぐち言ってないでさっさとやれや。
0680教えてください!NGNG
>>675
すいませんでした。見てなかったです。どうもありがとうございました。
0681デフォルトの名無しさんNGNG
>>676
ルンゲ・クッタ法とかシンプソン則でぐぐれ。
0682デフォルトの名無しさんNGNG
>>679
質問のレベルに合わせて答えたまで。
0683デフォルトの名無しさんNGNG
       ||||||
       ||||||
        _    _
        | |__| |
       (____ ヽ_
             ヽ__・)   ワンワン
              `´
0684デフォルトの名無しさんNGNG
>>682
わかったからさっさちゃれや。
0685超初心者ですNGNG
標準入力からある単語を読み込み、その単語の各アルファベットに対応する
文字コードを整数とみなして、単語を構成する全アルファベットの整数の和
を求めて出力するプログラムを作れ。です。教えてもらえませんか?
0686?1??NGNG
お昼は大変お世話になりました。
じっくりかんがえてきてみたら、解答してくださっていたので
うれしかったです。自分の間違いをしっかりかんがえてなおしました。
ありがとうございます!!
しかも、おなじ問題を質問していた方が…

そして、さらに質問をしてしまいますが
標準入力からある単語を読み込み、
その単語を各アルファベットにたいおうする
文字コードを整数とみなして、
単語を構成する全アルファベットの整数の和を求めて出力する
プログラムをつくりたいのです。

「単語を入力してください:get
 整数の合計は320です。」

というのをのくるとき

#include<stdio.h>
main()
{
c=getchar();
putchar('\n');
printf("整数の合計は%dです。\n")
}
とかんがえてみたのですが
g,e,tそれぞれを整数とみなして
合計するにはどうしたらいいでしょうか??
0687デフォルトの名無しさんNGNG
>>685‐686
同じ質問?

sum=0;
gets(p);
while(*(p++)){
  sum += *p;
}
0688?1??NGNG
同じだ!!びっくり。

このwhile文てどうなってるんです…か??
0689デフォルトの名無しさんNGNG
#include <stdio.h>
main() {
int sum=0, ch;
while ((ch = getchar()) != EOF && ch != ' ' && ch != '\n')
sum += ch;
printf("%d\n", sum);
}
0690デフォルトの名無しさんNGNG
おんなしとこに所属してんじゃネーノ
0691?1??NGNG
あと、
「英文を入力してください:
This is a pen.
That is a book.
^d
文字数は全部で29文字です。
行数は全部で2行です。」

というような標準入力で英文を読み込んで、
英文に含まれる全文字数と行数を
もとめて出力するプログラムをつくるさい、

#include<stdio.h>
main()
{
int c;

c=getchar();
while(c !=EOF){
}
}
と、かんがえて途中までこうなったのですが、
文字や行をかぞえるにはどうしたらよいのでしょうか??
0692デフォルトの名無しさんNGNG
if (c != ' ' || c != '\n') char_count++;
if (c == '\n') line_count++;
0693デフォルトの名無しさんNGNG
空白も含めるのね。
if (c == '\n') line_count++;
else char_count++;
0694デフォルトの名無しさんNGNG
#include <stdio.h>
main() {
int sum=0;
char buf[1024], *p;
gets(buf);
for (p = buf; *p && *p != ' '; p++)
sum += *p;
printf("%d\n", sum);
}
0695?1??NGNG
689>>
言葉を入れる場合
#include <stdio.h>
main() {
int sum=0, ch;
while ((ch = getchar()) != EOF && ch != ' ' && ch != '\n')
sum += ch;
printf("整数の合計は%d\n", sum);
}

単語を入力してくださいは、どこへいれればよいのでしょう??
あと、chとは…??

692,693>>
whileのあとにif文でしょうか??

694>>
これは691の返信でしょうか…???
0696デフォルトの名無しさんNGNG
>>694は>>685ですよ。
>>691はこうかな。
#include <stdio.h>
main() {
int c, line_count=0, char_count=0;
printf("英文を入力してください:\n");
while ((c = getchar()) != EOF)
if (c == '\n') line_count++;
else char_count++;
printf("文字数は全部で%d文字です。\n", char_count);
printf("行数は全部で%d行です。\n", line_count);
}
0697?1??NGNG
696>>大変おせわになります!!
こまかくかいていただいてありがとうございます★
0698デフォルトの名無しさんNGNG
おいおい、ストリーム入力演算子の使い方間違ってるぞ
0699デフォルトの名無しさんNGNG
ねえねえ、EOFって何?
どうやって入力すんお?
0700?1??NGNG
699>[Control]+[d]ですかね??
0701デフォルトの名無しさんNGNG
>>700
なるほど。
のわりには、>>696のプログラムは終わらないんですけど。
なんでだろ
0702デフォルトの名無しさんNGNG
DOS プロンプト/コマンドプロンプトなら Ctrl+z
0703デフォルトの名無しさんNGNG
>>702
どうもです。解決しました。
0704デフォルトの名無しさんNGNG
>>695
#include <stdio.h>
main() {
int sum=0, c;
printf("単語を入力してください\n");
while ((c = getchar()) != EOF && c != ' ' && c != '\n')
sum += c;
printf("整数の合計は%d\n", sum);
}
0705?1??NGNG
ほんとにありがとうございました。
おかげさまで解決致しました★ミ
0706デフォルトの名無しさんNGNG
>>673
7行スレで見かけたので、移転前サーバの過去ログをひっぱってっきた
http://pc.2ch.net/tech/kako/1018/10188/1018840143.html
ここの475
0707デフォルトの名無しさんNGNG
C++の面白い問題集ってないかな?
みんなでそれを解く、っつーのは結構面白いと思うんだけど。
0708デフォルトの名無しさんNGNG
>>707
C++じゃないが、情報処理学会刊行誌の情報処理で
プログラミングコンテストの問題を解いてみようというのがあって、おもしろい
C++じゃないが、C MAGAZINEの電脳倶楽部とか、
昔はBITも問題集としてもおもしろかった
0709デフォルトの名無しさんNGNG
>>656
すげー突っ込みたい…。
0710デフォルトの名無しさんNGNG
我慢しろ。
0711デフォルトの名無しさんNGNG
憧れの先生に「お前のプログラミングの腕を見せてくれ」と言われました。
先生を振り向かせる為にはどんなものを作ればいいと思いますか?
アドヴァイスください。
0712デフォルトの名無しさんNGNG
>>711
指定時間になったら、お前のちんちんの画像を学内の全 PC に表示するプログラム。
必ず、振り向いてもらえるし。洒落がわかる先生なら、ほめてもらえるかもしれない。
0713デフォルトの名無しさんNGNG
Lispの処理系を作る。
0714デフォルトの名無しさんNGNG
>>711は女?
0715hitotuNGNG
質問があります。
ファイルを開く時に自分でファイル名を入力してそのファイルを開く
プログラムを作りたいのだけど、そうすればよいですか?
0716デフォルトの名無しさんNGNG
>>715そうすればよいです。
0717711NGNG
>>712
変態氏ね

>>713
Lispって?なんでしょうか

>>714
メスですが何か?
0718デフォルトの名無しさんNGNG
ネタはマ板でやれ>711
0719デフォルトの名無しさんNGNG
ネタはマ板ってわけじゃない。ネタスレ多いのも確かだが。
0720デフォルトの名無しさんNGNG
>>719
ローカルルールぐらい読みなよ。

> 業界談義、愚痴はプログラマ板へどうぞ。

何のために、マ板とム板があるのかよく考えよう。

こっちは、プログラム技術@2ch掲示板 だよ。
          ~~~~
0721デフォルトの名無しさんNGNG
>>720
下線がずれた、鬱だ。とりあえず、「技術」に引いたつもりです。
0722デフォルトの名無しさんNGNG
2chねらーにルール守れって言ってもねえ。
0723デフォルトの名無しさんNGNG
ローカルルールのどこに「ネタはマ板で」ってあんの?
0724デフォルトの名無しさんNGNG
ネタ、板とは関係の無い話題はご遠慮ください。
0725デフォルトの名無しさんNGNG
で、出された宿題は「先生を振り向かせること」なんですか?
0726デフォルトの名無しさんNGNG
>>724
2ちゃんは煽りとネタばっかですが。
0727デフォルトの名無しさんNGNG
上に書いてあることぐらいよめや

> この板はプログラムを作る人のための板です。
>
> あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
>
> その他、お勉強ページへのリンクスレ、
> 推薦図書・必読書スレ
> もあります。
>
> プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
> ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
> Javascript は Web 制作板、CGI は Web プログラミング板へ。
> 業界談義、愚痴はプログラマ板へどうぞ。
> ゲーム関係の話題はゲーム製作板へどうぞ。
> ネタ、板とは関係の無い話題はご遠慮ください。
0728デフォルトの名無しさんNGNG
> ネ タ 、 板 と は 関 係 の 無 い 話 題 は


    
    ご   遠   慮   く    だ    さ   い。


0729デフォルトの名無しさんNGNG
>>727-728
しつこいっつうの。
0730デフォルトの名無しさんNGNG
>>729
お前が納得してローカルルールを守ればいいの。
0731デフォルトの名無しさんNGNG
2chの鯖管理者にでもなれば?
アクセス制限でもなんでも掛けてください、ルール守る気無いので。
マジでしつけえな粘着厨房は。
0732デフォルトの名無しさんNGNG
>>731
お前がしつこい。
0733デフォルトの名無しさんNGNG
>>731
俺が2chの鯖管理者になれれば即効でお前をアクセス制限するって
できないからここでやってんじゃん。
ルールを守る気無い? モラルが失われてるなぁ。
自分が特定されなきゃ何でもやっていいと思っているのか?
それを厨房って言うんだよ。
0734デフォルトの名無しさんNGNG
つーか、どこにも行くな。つまんないから。回線はそのままで氏ね。
0735デフォルトの名無しさんNGNG
質問です。
鶴と亀の数(ただし10万匹以上)を繰り返し読み込み、
(処理の終了はEOFの検出でおこなう)
鶴の平均体重3.3kg亀の平均体重0.6kgを用いて
以下の表示をすること。

1鶴と亀の数が同じ時は:合計の頭の数を表示
   120000匹でテストのこと
2鶴と亀の数が同じでかつ、その数が188822匹のときは
   1の処理に加えて、鶴と亀の合計体重を表示する。
   188822匹でテストのこと
3鶴の数が亀の数より10000匹以上多く、かつ亀の数が
60000匹以上
のとき:鶴の体重の合計、亀の合計体重、および鶴の合計体重が
亀の合計体重よりいくら重いか を表示
    鶴 140000匹 亀 70000匹でテスト
4亀の数がつるより多いとき 
     亀の足の合計数が鶴の足の合計数より
どれだけ多いかを表示
  亀150000匹 亀1000匹でテスト
5上記のいずれにも当てはまらないときは
    どれにも該当しません と表示する
6想定した入力の数にあわない入力がなされたときは
    入力が誤っています と表示する


教えてください。
0736デフォルトの名無しさんNGNG
>>735
なんか問題に不備があるぞ。

・鶴と亀の数を読み込むというが、どこから? そしてそのフォーマットは?
・各問題にいえることなんだが、たとえば、1のやつは「120000匹でテストのこと 」
 となっているが、これは鶴と亀の合計が120000匹なのか、鶴と亀がそれぞれ
 120000匹ずついて合計240000匹なのかがわからん。

どう答えていいものやら。
0737デフォルトの名無しさんNGNG
>>734
お前一人が氏ねよ。つまんないんだろ。これでもうつまんないなんて思わなくなるぜ。
0738デフォルトの名無しさんNGNG
>>736
漏れは735じゃないが、
>処理の終了はEOFの検出でおこなう
んだからファイルから読み込むんだと思われ

けど、4は両方とも亀の上に、
片方は前提条件の10000匹以上でないあたり訳わかめ
0739735NGNG
フォーマットはファイルから読み込む
訂正で

4亀の数がつるより多いとき 
     亀の足の合計数が鶴の足の合計数より
どれだけ多いかを表示
  鶴150000匹 亀1000匹でテスト
>>736
鶴と亀がそれぞれ
 120000匹ずついて合計240000匹
です。

この訂正でもプログラムが組めない場合は
6想定した入力の数にあわない入力がなされたときは
    入力が誤っています と表示する
のやり方だけでも教えてください。
0740デフォルトの名無しさんNGNG
>739 適当に書き変えれ
int main()
{
char arr[80];
long turu, kame;

while(fgets(arr, sizeof(arr), stdin)) {
if (sscanf(arr, "%ld %ld", &turu, &kame)==2)
judgement(turu, kame);
else
printf("入力が誤っています\n");
}

return 0;
}
0741デフォルトの名無しさんNGNG
>>738

>>処理の終了はEOFの検出でおこなう
>んだからファイルから読み込むんだと思われ
とはかぎらんだろうに
0742デフォルトの名無しさんNGNG
こういう意図の読めない仕様は宿題でも仕事でもやだね。
0743デフォルトの名無しさんNGNG
5個の整数a,b,c,d,eを入力して
a,b,c,dと四則計算(+,-,*/)を使ってeを作る式があれば
全て表示するプログラムをお願いします。。

例えば
1,1,9,9,10なら
9*(1+1/9)=10
0744デフォルトの名無しさんNGNG
>>743
いまいちききたい事がわからんけど想像で。

int a, b, c, d, e;
printf("a=");
scanf("%d",&a );
printf("b=");
scanf("%d",&b );
printf("c=");
scanf("%d",&c );
printf("d=");
scanf("%d",&d );

e = a*(b+c/d);

printf("%d*(%d+%d/%d)=%d", a, b, c, d, e);
0745デフォルトの名無しさんNGNG
>>742
嫌なのは同意だけど、実際そんなのばかりじゃない?

>>743
Cマガのパズルみたいでちょっと面白いね。
とりあえず全検索のを作ってから、
枝刈りを考えてみれ。
0746デフォルトの名無しさんNGNG
質問です。

年月をmm(月)/dd(日)/yyyy(年)でたずねて、
たとえば、12/23/2002ってこのとおりに入力したら、
表示するときに、月の部分を、Decemberって出させて、
December 23, 2002って表示させるようにするにはどうすればいいでしょうか?
初心者ですいません。。。

0747デフォルトの名無しさんNGNG
初心者です
�U�Uこの半角記号が打てないので
プログラムを書くのに困っています。
どうすれば、英数半角でこの記号が打てるようになるのか
教えてください
0748Zetton ◆2ioLXWs4uc NGNG
>>747
毎日腕立て500回
0749デフォルトの名無しさんNGNG
>>746
strftime

でなければこんなん。1.4 節参照 。
http://hp.vector.co.jp/authors/VA014758/programming/pre/part2/chap1.htm
0750デフォルトの名無しさんNGNG
>>748
それなら、もう3年くらいやってます。
0751Zetton ◆2ioLXWs4uc NGNG
>>750
それじゃあ
あとプラス1000回
0752デフォルトの名無しさんNGNG
>>743
その宿題は10日くらい前、すでに誰かがやってくれてた。
>>327-332だ。検索してくれな。しかし〆切いつなんだろうね。
0753デフォルトの名無しさんNGNG
>>327-331
structの定義が抜けてますな。

struct culctree{
struct culctree* left;
struct culctree* right;
int function;
double value;
};
0754デフォルトの名無しさんNGNG
>>749

ありがとうございます。
一度がんばってできるかやってみます。
0755デフォルトの名無しさんNGNG
質問です。

12345 ^ 6789012 % 34567 を計算した結果を
画面に表示するにはどうすればいいんですか?
0756デフォルトの名無しさんNGNG
>>755
printf("%f\n",fmod(pow(12345,6789012),34567));
0757755NGNG
>>756
BCCでもGCCでもオーバーフローになりました。他に方法ありませんか?
0758デフォルトの名無しさんNGNG
>>756
OverFlowしたよ。
0759デフォルトの名無しさんNGNG
剰余の性質を利用して式を変形して解けってことじゃないのかな。
BIGINT作ってもいいけど。
0760デフォルトの名無しさんNGNG
printf("%d", 12345 ^ 6789012 % 34567 );
0761756NGNG
>12345 ^ 6789012 % 34567 を計算した結果を
>画面に表示するにはどうすればいいんですか?

計算結果がたまたまオーバーフローしただけだ
レスの注文どうりにやったつもりだが・・・(>計算した結果を画面に表示)
「オーバフローしますた」とでも教官に逝って来てくれ
0762デフォルトの名無しさんNGNG
>>760
意味が違う。^はビット毎のxor演算子。
0763デフォルトの名無しさんNGNG
なぜ755の「^」はxorでないと判るんだい?
0764デフォルトの名無しさんNGNG
>>762
755は^の意味を指定してない。
もし%を剰余と考えるなら、^を同じくCのbit xorと考えるのは合理的だと思うが。
0765デフォルトの名無しさんNGNG
6789012はQWORDになるからではないのかい?
0766デフォルトの名無しさんNGNG
>>760 あー、Cスレなんだからそれが正解だな。
0767755NGNG
すみません。
12345 ^ 6789012 % 34567 は 12345の6789012乗を34567で割った余りのことです。

>759
Googleで剰余の性質で調べたんですが、なかなかヒットしません・・・
0768デフォルトの名無しさんNGNG
QWORD?
intelの?
8byte?
0769デフォルトの名無しさんNGNG
>>767
printf("%d\n", 2276);
0770デフォルトの名無しさんNGNG
int i, a =1;
for( i =0; i < 6789012; i++ )
a = (a*12345)%34567;
printf("%d\n", a );
0771755NGNG
>>769-770
770のソースを実行したら、ちゃんと2276と表示されました。
試しに計算しやすい数字で確かめても成功しました。
ありがとうございます!
0772デフォルトの名無しさんNGNG
宿題の解答を教えて下さい。

>10月20日・宿題4 「hit & blow」(C言語です)
>条件
>数字は4つ(ex.1234)
>「printf、int、scanf、while、ポインタ関数(or構造体)、ランダム関数
> if」を使う(これ以外は使えないそうです。
>2以上の関数で構成する
>1〜9までの整数を使う
>数字は重複しない事
>解答するチャンスは10回まで

この条件を満たすプログラムを作れと言われました。お願いします
0773デフォルトの名無しさんNGNG
>>772
「main が使えないと組めねーよ。」と先生に言ってやれ。

あと、+=(){} とかもな。
0774デフォルトの名無しさんNGNG
ポインタ関数てナンダロナンダロ?
0775デフォルトの名無しさんNGNG
>>774
関数へのポインタと間違えてるんじゃない?
0776デフォルトの名無しさんNGNG
>>775
それにしては、(or 構造体) って言うのが、意味不明なんだが...。
0777デフォルトの名無しさんNGNG
C++の勉強で文字列クラスを作ろうとしたんですが、

class cstr
{
  char *buf;
public:
  cstr();
  cstr(char *);
  cstr& operator=(cstr&);
  cstr& operator+(cstr&);
  char* GetAddr();
};

main()
{
  cstr A,B("test"),C("test2");
  A = B + C;
  A = A + B + C;
  cout << A.GetAddr() << endl;
}

で演算子+の作り方がさっぱり分かりません。おすえてください。
0778772NGNG
送られてきたメールそのまま転載したんですが
意味不明ですよね・・・。すいません自分で勉強します
0779デフォルトの名無しさんNGNG
>>778
つーか、親切にも hit & blow と書いてあるんだから、それでググレばいやと言うほどソースがででくるぞ。
0780デフォルトの名無しさんNGNG
>>777

cstr operator+(cstr& cs) {
cstr tmp;
tmp.buf = new char[strlen(buf) + strlen(cs.buf) + 1];
strcpy(tmp.buf, buf);
strcat(tmp.buf, cs.buf);
return tmp;
}

とでもすれば?無理に参照を返そうとするとうまくいかない。
0781777NGNG
>>780
ありがとうございます。
試してみます。
0782おばかです。NGNG
ホーナー法により、
  f(x)=1.1x^4+2.6x^3+0.5x^2-2.0x+1.0
のf(0.8)とf'(0.8)を計算するプログラムを作ってください。
できるだけ難しい構文を使わないでお願いします。馬鹿なもんで。
0783デフォルトの名無しさんNGNG
main(){
 printf("f(0.8) = %d\n", x * ( x * ( x * (1.1 * x + 2.6 ) + 0.5 ) - 2.0 ) + 1.0 );
 printf("f'(0.8) = %d\n", x * ( x * (4.4 * x + 7.8 ) + 1.0 ) - 2.0 );
}
0784デフォルトの名無しさんNGNG
うは、つっこまれる前に修正
main(){
 printf("f(0.8) = %f\n", x * ( x * ( x * (1.1 * x + 2.6 ) + 0.5 ) - 2.0 ) + 1.0 );
 printf("f'(0.8) = %f\n", x * ( x * (4.4 * x + 7.8 ) + 1.0 ) - 2.0 );
}
0785デフォルトの名無しさんNGNG
main(){
 double x = 0.8;
 printf("f(0.8) = %f\n", x * ( x * ( x * (1.1 * x + 2.6 ) + 0.5 ) - 2.0 ) + 1.0 );
 printf("f'(0.8) = %f\n", x * ( x * (4.4 * x + 7.8 ) + 1.0 ) - 2.0 );
}
0786デフォルトの名無しさんNGNG
x = 0.8;

fx = 1.1;
fx = fx * x + 2.6;
fx = fx * x + 0.5;
fx = fx * x - 2.0;
fx = fx * x + 1.0;

printf("f(%f) = %f\n", x, fx);

dydx = 4.4;
dydx = dydx * x + 7.8;
dydx = dydx * x + 1.0;
dydx = dydx * x - 2.0;

printf("f'(%f) = %f\n", x, dydx);
0787デフォルトの名無しさんNGNG
「ブザーを鳴らせ」て宿題出たんだけどどうしたら鳴るの?
手短にお願いします。
0788デフォルトの名無しさんNGNG
\a
0789デフォルトの名無しさんNGNG
それだけじゃなくて、ブザーを鳴らすだけのプログラムお願いします。
0790おばかです。NGNG
ありがとう!!>>783-786
0791デフォルトの名無しさんNGNG
#include <stdio.h>

int main()
{
/* 死ね */
putchar('\a');
return 0;
}
0792デフォルトの名無しさんNGNG
>>789
int main()
{
printf("\a");
return 0;
}
0793789NGNG
ありがと!
0794デフォルトの名無しさんNGNG
C !
0795デフォルトの名無しさんNGNG
VC++での直線描画のプログラムを手短なもので良いのでお願いできますか?
0796デフォルトの名無しさんNGNG
>795
LineTo
0797デフォルトの名無しさんNGNG
>>767
高速べき乗算とか、RSA、数論関連のページを調べてみろ。

>12345 ^ 6789012

なんて、C/C++の組み込み型で処理しようとしたら、オーバーフロー
するに決まってる、理由は解る・・・よな?
0798デフォルトの名無しさんNGNG
>>797
俺の環境のlong intならせいぜい2乗だな(ワラ
^がEORなら問題ないけど。
0799デフォルトの名無しさんNGNG
a mod b = c のとき、(a*x) mod b = c (a,b,c,xは任意の自然数)
例)12 mod 5 = 2 のとき、(12*34721895375918273) mod 5 = 2
0800799NGNG
ごめんうそ。
a*b mod c = (a mod c)*(b mod c) mod cが成り立つ。
0801デフォルトの名無しさんNGNG
C言語でよく分からないところがあるのですが
#include <stdio.h>

int main(void)
{
int c;
c = getchar();

if(c == EOF){
    printf("1st EOF\n");
    printf("2nd EOF\n");
}else{
    printf("NOT EOF\n");
}

  return(0);
}

のプログラムを起動し
Ctrl+Zを入力すると

2nd EOF
のみが表示されて1st EOFが表示されません。
バッファ関係でprintf("1st EOF");が実行されなくなるのかと思い
fflush(stdin)を試してみましたがうまくいきません。
解決方法をどなたか教えていただきませんか。
0802デフォルトの名無しさんNGNG
>>801
Windows98やMeだろ?
0803795NGNG
関数LineToの引数としてはどのようなものが良いのでしょうか?
座標の値を引数として渡すのが良いのでしょうか?
0804デフォルトの名無しさんNGNG
>>802
そうです。98です。
OSの問題なのですか?XPで試してみます。
0805801NGNG
>>802
XPでやった結果問題なく表示されました。
XPのコマンドプロンプトだとCtrl+Z + ENTERで入力の終了を行うのですね。

しかし、98で問題なく表示するにはどうしたらいいんですか?
よろしかったら、原因や対処方法をどなたか教えていただけないでしょうか?
0806デフォルトの名無しさんNGNG
>>803
MSDNみれ
0807755NGNG
>>797-800
追加レスありがとうござます。
なるほど、RSAの公開鍵に応用できるんですね。
0808521NGNG
色々試行錯誤した結果なんとか指定した座標の色情報を取得することができました。
あとはIf文で総当たりすれば目的の色を取得できると思います。
ですが、あたらしい課題ができてしまいました。
あたらしい課題は取得した色を新しいWindowで表示しろとのことです。
Rederence Manualなども参照してなんとかできそうなところまで来たのですが、
実行後にエラーがでてしまいうまくできませんでした。
エラー内容は
Gdk-CRITICAL **: file gdkimage.c: line 402 (gdk_image_put_pixel): assertion `image != BULL' failed.
と何度も表示されます。
ご指導よろしくお願いします。
0809521NGNG
作成したプログラムです。

#include <stdio.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>

int main(int argc, char *argv[]){
GtkWidget *window,*window2;
GtkStyle *style1,*style2;
GdkPixmap *pixmap1,*pixmap2;
GdkPixmap *mask1,*mask2;
GtkWidget *pixmapwid1,*pixmapwid2;
GdkImage *tmpmask1,*tmpmask2;
gint width,height,depth=-1,i,j;
guint32 RGB;

gtk_init(&argc, &argv);

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

window2=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window2), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL);


style1=gtk_widget_get_style(window);
style2=gtk_widget_get_style(window2);

pixmap1=gdk_pixmap_create_from_xpm(window->window, &mask1, &style1->bg[GTK_STATE_NORMAL], "res0.xpm");
pixmapwid1=gtk_pixmap_new(pixmap1, mask1);
0810521NGNG
続きです。

gdk_window_get_size(pixmap1, &width, &height);
gtk_container_add(GTK_CONTAINER(window), pixmapwid1);
gtk_widget_show(pixmapwid1);

gtk_widget_show(window);

tmpmask1=gdk_image_get(pixmap1,0,0,width,height);

RGB=gdk_image_get_pixel(tmpmask1,35,50);

pixmap2=gdk_pixmap_new(window2->window,width,height,depth);

tmpmask2=gdk_image_get(pixmap2,0,0,width,height);

gtk_widget_show(window2);

for(i=0;i<height;i++){
for(j=0;j<width;j++){
gdk_image_put_pixel(tmpmask2,i,j,RGB);
j++;
}
i++;
}
printf("%d\n",(int)RGB);
gtk_main();
return 0;
}
0811デフォルトの名無しさんNGNG
y = x^2 - 3x + 2の近似解を求める「はさみうち法」をCで作りたいんですが、
なかなかうまく行きません…
とりあえず、初期値は1.5と2.5くらいでやってみたんですが。
かなり途中で全然できてませんが、とりあえずここまでしかできませんでした。

#include <stdio.h>
#define NUM = 21
double a0 = 2.0, a1 = -3.0, a2 = 1.0;
double f( double x );
double slope( double x1, double x2);
void main (void)
{  double q[NUM], m[NUM];
  int i;q[0] = 1.5;q[1] = 2.5;
/*ここれへんから意味不明*/
  if ( f( q[1] )*f( q[2] ) < 0 ){
    for ( i = 0; i <NUM; i++){
       m[i] = slope( q[i], q[i+1] );
       q[3] = -f( q[1] )/m + q[1];
}
  printf("q3 = %12.4le\n",q[3]);
}
0812811NGNG
double f( double x )
{
   double y;
   y = a0 + a1*x + a2*x*x;
   return y;
}
double slope( double x1, double x2)
{
   double m;
   m = (f( x2 )-f( x1 ))/(x2 - x1);
   return m;
}

0813デフォルトの名無しさんNGNG
K&R
http://jpg.fetish.pornparks.com/assfisting1/man/banal00005.jpg
0814デフォルトの名無しさんNGNG
log(x)の近似値を計算する関数mylog(x,n)を作成しなさい。
0815デフォルトの名無しさんNGNG
嫌
0816デフォルトの名無しさんNGNG
double mylog(x){return log(x)}
0817デフォルトの名無しさんNGNG
>>816
近似値なんだから...
double mylog(double x, int n)
{
 return log(x) * (1 + 0.001 * rand());
}
ぐらいがいいかと...、ところで mylog(x,n) の n ってなんだ ? > >>814
0818デフォルトの名無しさんNGNG
>>817
そりゃおめー決まってるだろ。それはな(以下略
0819デフォルトの名無しさんNGNG
double mylog(double x,int n){reutrn log(x)/log((double)n);}

まあ、真の値なんて少数展開できないわけで・・・>>817
0820hiloshi ◆W2li6n5Xa6 NGNG
今宿題スレに行き、即爆破しました。

fgetsってどう使うんですか?
実引数が3つありますよね?
fgets(A,B,C)ってので、
それぞれどういう意味なんですか?

あと上記だとCのところにstdinとあるやつも
意味不明ですた
0821デフォルトの名無しさんNGNG
char *fgets(char *s, int n, FILE *stream);
文字列、文字数、ファイルポインタ
0822忠告NGNG
>>820
マルチはするな
0823デフォルトの名無しさんNGNG
>>819
math.hの算術関数使用不可なんです
fn(x)はマクローリン展開をn次でうちきったものでそれがnです
0824hiloshi ◆W2li6n5Xa6 NGNG
>>822
マルチってなんですか?
0825デフォルトの名無しさんNGNG
マルチスレッド
0826Zetton ◆Rp2WIrE1u2 NGNG
>>820
スレッド C言語ならアタシに聞きなさい
http://pc3.2ch.net/test/read.cgi/tech/1035211039/567
0827hiloshi ◆W2li6n5Xa6 NGNG
ああすいません。
こっちのを読んでて、間違えてレスしちゃったんで
いつもの方にも書いてしまいました。
ごめんなさい。
0828Maclaurin展開NGNG
納n=0〜∞]{f^(n)(0)}(x^n)/(n!)
0829Zetton ◆Rp2WIrE1u2 NGNG
<<827
sageって知ってます?
0830デフォルトの名無しさんNGNG
>>823
double my_log(double x)
{
__asm fldln2
__asm fld QWORD PTR x
__asm fyl2x
__asm fstp QWORD PTR x
return x;
}
0831powNGNG
おおばかですいません。
配列(x[4]とy[4])を関数に渡してそのなかで処理、その後結果を√(x^2+y^2)のかたちで出したいんです
関数は間違ってないのですが、うまくいかないんです。
解のprintfで出力のしかたもおしえてください
おねがいします
0832デフォルトの名無しさんNGNG
関数内で
printf
0833デフォルトの名無しさんNGNG
今あるソートで最高の性能とされてるソートの
具体的な実装が見たい。
0834デフォルトの名無しさんNGNG
>>831
> 関数は間違ってないのですが、うまくいかないんです。
関数が間違ってるんじゃないの?
0835デフォルトの名無しさんNGNG
>>833
宿題は自分でやれ。
0836デフォルトの名無しさんNGNG
関数見せ〜い
0837デフォルトの名無しさんNGNG
>>831
#include <math.h> を忘れてるとか?
0838デフォルトの名無しさんNGNG
>>831
「うまくいかない」 はやめろ。
どのようにするつもりで、どうコーディングしたが、どうなってしまった
のかを書け。
あと 「関数は間違ってない」 のはどうしてわかった?
それと処理結果は何のデータ型でどういう風に格納されているか書いてくれないと
printf() に関するアドバイスはできん。
最後に、コンパイラのヘルプ/リファレンス、参考書等で printf() の使い方は
調べたのか?
0839デフォルトの名無しさんNGNG
>>835
このスレでそれを言っても始まらないだろう。
0840デフォルトの名無しさんNGNG
printf("%f"pow(pow(x,2)+pow(y,2),0.5));
0841powNGNG
これです、教科書にあったので
/***FFT***/
void fft(x,y,l,f)
double *x,*y;
int l,f;
{
int i,j,j1,j2,l1,l2,l3,l4,l5,n,k;
double s,c,s1,t,tx,ty,arg,M_PI;
M_PI=3.141592;

n=(int)pow (2.0,(double)l);
l1=n;s1=2*M_PI/(double)n;

for(l5=0;l5<1;l5++)
{
0842powNGNG
l2=l1-1;l1/=2;
arg=0.0;
for(l3=0;l3<l1;l3++)
{
c=cos(arg);s=sin(f*arg);arg+=s1;
for(l4=l2;l4<n;l4+=(l2+1))
{
j1=l4-l2+l3; j2=j1+l1;
tx=x[j1]-x[j2];ty=y[j1]-y[j2];
x[j1]=x[j1]+x[j2];y[j1]=y[j1]+y[j2];
x[j2]=c*tx+s*ty;y[j2]=c*ty-s*tx;
}
}
s1*=2.0;
0843powNGNG
}
if(f<0)
{
for (i=0;i<n;i++)
{
x[i]/=(double)n;y[i]/=(double)n;
}
}

/***ビットリバーサル***/
j=0;
for(i=0;i<n-1;i++)
{
if(i<=j)
{
t=x[i];x[i]=x[j];x[j]=t;
t=y[i];y[i]=y[j];y[j]=t;
}
k=n/2;
while(k<=j)
{
j-=k;k/=2;
}
j+=k;
}

}
これでぜんぶです
0844デフォルトの名無しさんNGNG
>>833
イントロソート。STLportのヘッダファイル読むといいです
0845ミンウNGNG
今年専門学校を卒業し派遣会社に就職したものです。
就職できたのはいいのですが、僕はまだ一度も出先に出ていません。
今まで●●A●Cという会社が、毎年うちの会社の新人を使ってくれて
いたらしいのですが、今年は新入社員5人中3人しか採ってくれずあまったのが私です。
現在は上司からコCOBOLを勉強するように言われており、社内システムを作っているのですが
はっきり言って、何もさせておかないのはかわいそうだからやらせているという感じが見え見え
でもう耐えられません。
派遣先に派遣されるにはどうすれば良いのでしょうか。
アドバイスお願いします。
0846デフォルトの名無しさんNGNG
for(l5=0;l5<1;l5++)
1まで? l1まで?

j1=l4-l2+l3; j2=j1+l1;
〜 -l2-l3;???
0847デフォルトの名無しさんNGNG
>>845
一億光年スレ違い。
0848838NGNG
あ〜あ。
言い出したのあなたなんだから責任持って回答してあげてね。>>836
0849デフォルトの名無しさんNGNG
>>845
マ板に逝った方がいいぞ。
0850デフォルトの名無しさんNGNG
>イントロソート。STLportのヘッダファイル読むといいです
ヘッダに書いてあるわきゃねーだろ

log(x)の作り方も知らないバカが大勢いるスレってか?
0851デフォルトの名無しさんNGNG
>>850
>>830 で終了。
0852デフォルトの名無しさんNGNG
>>850
書いてあるんだよalgorithm.hに。お前STL知らないだろ。
0853デフォルトの名無しさんNGNG
>>845
                                  です。
          今年専門      し派遣会
               学校を卒業  社に就  いので だ一度も出   職したもの  てくれて
          就職で  きたのはい  ●Cとい  すが、僕  はま  先に出て  いません。
        今ま  で●  ●A   う会  社が、毎  年うち  の会社  の新  人を使っ
          いたらし  すが、  今年は新  人中3人しか  採ってく  ったのが  私です。
             いので         入社員5        よう      れずあま
          現在は  上司からコ  Lを勉強する    に言われて  システムを  作って
                    COBO        かないの   おり、社内    いるのです
         はっき  何もさせてお  はか  わ    やら  せてい  るという         が
                  り言って、          いそうだ  から  感じが見
          でもう  耐え  られ  はどうす  ません  。             え見え
             派遣先  に派遣  されるに      ば良  いので
                    アドバイ  スお      れ          しょう
                              願いしま        か。

          彡                            す。 
             彡
                  彡

(,,ノ゚д゚)ノ
0854デフォルトの名無しさんNGNG
そりゃ、読んだ事ない奴は知らないだろ。
それともSTL使う奴の常識?
で、クイックソートとかマージソートとどこが違うわけ?
それを知らなきゃ、コードがどこに書かれてるか
知ってても何の意味もないよな。

>>851
それで終了だと思ってるんなら
お前の人生が終了だよ。
アセンブラを披露してる時点で痛いヤシだろうけど。
チープなCPUを使った組み込み系以外は、
アセンブラなんて覚えても、
使わない難しい漢字と同じだよ。
0855デフォルトの名無しさんNGNG
>>854
(´,_ゝ`) クスクス
0856デフォルトの名無しさんNGNG
>>854
( ´,_ゝ`)プッ
0857デフォルトの名無しさんNGNG
痛い人が一人いるスレはここですか?
0858デフォルトの名無しさんNGNG
               そり
                ゃ、読ん  だ事な  い奴は知  らないだ  ろ。
           それ  ともST  L使
                で、クイ  ックソ う奴  の常識?
              それ  を知らなき ートとか  マージソートとどこが違うわけ?
                知って  て  も何の ゃ、  コ  ードが
                     意味もないよ どこ  に書かれ  てるか
          > >85    1             な。
                それで終  了  だと        
              お前の  人  生が  終 思って  る  んな 
             ア  セン  ブラ  を披 了だよ。   ら
                チープなC  PUを  露し  てる  時点 
           アセン  ブラなん 使っ  た組み  込 で痛いヤシだろうけど。
              使わない  難しい て覚え  ても、 み系以  外は、
         彡            漢字と  同じだ 
            彡                    よ。
                彡            

(,,ノ゚д゚)ノ
0859デフォルトの名無しさんNGNG
>>854
  _、_
( ,_ノ` )y━・~~~読むか読まないかじゃなく、C++知らないんだね。素直になろうよ。


0860デフォルトの名無しさんNGNG
つーか 830 はアセンブラなんか披露しとらん。
0861デフォルトの名無しさんNGNG
淫乱アセンブラはアセンブラじゃないと?
0862デフォルトの名無しさんNGNG
アセンブラはアセンブリ言語をアセンブルするプログラムのことであって
マシン語を表すニーモニックではないと言いたいとか
0863デフォルトの名無しさんNGNG
> それともSTL使う奴の常識?
常識というか、templateを使った事があれば説明不要な事柄でつ
0864デフォルトの名無しさんNGNG
STLのsortって無理やりテンプレートにしてるから
あれは特殊な使い方だと思われ。
0865デフォルトの名無しさんNGNG
mnemonic
0866デフォルトの名無しさんNGNG
むにゅー(^ω^ もにー(^ー^
0867デフォルトの名無しさんNGNG
遅レススマソ
>>808-810
gtk_widget_show(window2);
は、
pixmap2=gdk_pixmap_new(window2->window,width,height,depth);
の前に置いてください。あと、
for(i=0;i<height;i++){
for(j=0;j<width;j++){
gdk_image_put_pixel(tmpmask2,i,j,RGB);
j++;
}
i++;
}
の所は i と j が逆じゃないでしょうか?
0868デフォルトの名無しさんNGNG
for(i=0;i<height;i++){
for(j=0;j<width;j++){///////inc.
gdk_image_put_pixel(tmpmask2,i,j,RGB);
j++;///////inc.2ヶ所でinc.してッけど委員ダベか?
}
i++;
}
0869521NGNG
>867-868
指摘ありがとうございます^^
ということは、

gtk_widget_show(window2);
pixmap2=gdk_pixmap_new(window2->window,width,height,depth);
tmpmask2=gdk_image_get(pixmap2,0,0,width,height);
for(i=0;i<height;i++){
for(j=0;j<width;j++){
gdk_image_put_pixel(tmpmask2,i,j,RGB);
}
}

と修正すればよいわけですね。
明日試してみたいと思います^^
0870デフォルトの名無しさんNGNG
>>869
gdk_image_put_pixel(tmpmask2,j,i,RGB);
ね。分かってるだろうと思うけど念のため
0871デフォルトの名無しさんNGNG
RGB:ラグビー
0872デフォルトの名無しさんNGNG
RGB:ラガービール
0873デフォルトの名無しさんNGNG
画像処理の勉強をしていて今、Bmp形式の画像を扱っています。
うまく画像を読み込んだり書き込んだりできません。
なんとかしてもらえませんか?
0874よろしくお願いしますNGNG
/*1秒ごとに0〜99までの数値を画面に表示するプログラムを作成する。
数値は9ごとに改行し各数字の間隔は48ドット空けること*/



このプログラムに手を加えて(手直し)作ってください。お願いします

case WM_CREATE:
{
SetTimer(hWnd,1000,1000,NULL );
}
break;

case WM_TIMER:
{
HDC hdc;
char string[8];
wsprintf(string,"%d",suti);
TextOut(hdc,0,48,string,strlen(string) );
}
break;
0875すみませんNGNG
#include<stdio.h>
#include<stdib.h>
#define juand() ((double)rand()/(32767.0+1.0))
void main()
{
double z;
int i;
srand(2);
printf("自分の名前の入力\n");
for(i=1;i<10;i++){
z=jurand();
printf("%4d番目の乱数は%10.7lf\n",i,z);

これを利用して、乱数10個の平均をディスプレイに
出力するプログラムを作りたいんですが、
どなたか教えてください。
0876デフォルトの名無しさんNGNG
>>875
マルチハケーン
http://pc3.2ch.net/test/read.cgi/tech/1035729526/299
0877 NGNG
ちょっと教えてほしいんですけど
char a[512];
fgets(a,sizeof(a),stdin);
sscanf(a,"%d",&y);
とかやってるんですけど、fgetsを二回目三回目と
使っていくとどうもうまくいかないんですが。
getsにかえるとすんなりいくのですが。
なぜでしょうか。
0878877NGNG
まちがえました。
scanfに変えるとうまくいくんです。
0879デフォルトの名無しさんNGNG
>>877
どういうデータを入力したの?
0880877NGNG
数字一文字です。
6とか8とか
まあスキャンエフでうごくんですけど一応危険ということなので
変えてみたらだめでした。
0881デフォルトの名無しさんNGNG
>>875
そのコード、なんで途中で切れてるの?
0882デフォルトの名無しさんNGNG
どういうデータを入力したかを聞いたのは、
改行周りで差があるからなんだけど、大丈夫?
0883デフォルトの名無しさんNGNG
visual c++6.0 のcl.exeを使っています。
iostreamをincludeすると
string.h や math.hの関数が使えるのはなぜですか?
0884デフォルトの名無しさんNGNG
>>883
iostream が string.h や math.h を include してるからじゃない?
0885デフォルトの名無しさんNGNG
>>883 俺のは使えないぞ?
0886デフォルトの名無しさんNGNG
iostreamはc++を認識するんじゃ無いの?
0887 ◆i.HARPeeuc NGNG
>>883
int 型を返すデフォルト関数として認識するとか何とか警告出てないか?
0888デフォルトの名無しさんNGNG
>>883
VC6 では、string.h が以下のパスで呼ばれています。
<iostream> → <istream> → <ostream> → <ios> → <streambuf> → <xlocnum>
→ <xiosbase> → <xlocale> → <cstring> → <string.h>

(いいのか?)

しかし、math.h はちっとも呼ばれていないし、使おうとするとコンパイルエラーが
出るはずですが、どうして使えると思ったのですか?
他のヘッダーはインクルードしてませんか?

というか、これぐらい自分でヘッダーファイルたどって調べられませんか?
0889デフォルトの名無しさんNGNG
講義でこんな問題出ました

4個の整数集合{a,b,c,d}と{e,f,g,h}が与えられたとき
2集合の全要素の組み合わせでかつ同一でない演算をする(+,−,×,÷,論理和,論理積)
※集合の要素値の与え方は自由
 組み合わせとはa+eのような2要素からなるものとする

記号16通り×6で96通りの計算をすればいいとおもうのですがC言語まったくわからないので
さっぱりです。

#include <stdio.h>
までしかわかりません
0890デフォルトの名無しさんNGNG
行列(配列?)の問題ではないだろうかと考えています。
0891デフォルトの名無しさんNGNG
>>889
問題がいまいち分からないんだけど、こんな感じ?
----
int i, j;
int a[] = {1,2,3,4}; /* 集合1 */
int b[] = {100,101,102,104}; /* 集合2 */

for (i = 0; i < 4; ++i) {
for (j = 0; j < 4; ++j) {
printf("%d + %d = %d\n", a[i], b[j], a[i] + b[j]);
printf("%d - %d = %d\n", a[i], b[j], a[i] - b[j]);
printf("%d * %d = %d\n", a[i], b[j], a[i] * b[j]);
printf("%d / %d = %d\n", a[i], b[j], a[i] / b[j]);
printf("%d & %d = %d\n", a[i], b[j], a[i] & b[j]);
printf("%d | %d = %d\n", a[i], b[j], a[i] | b[j]);
}
}

0892デフォルトの名無しさんNGNG
-と/の二つは32通りではなくて?
0893yumikoNGNG
#include <stdlib.h>
#include <stdio.h>
int main(
int argc,
char * argv[ ]
)
{
if (argc !=3)
printf("wrong no. of arguments\n");
else
{
printf("Sum: %d\n", atoi(argv[1]) + atoi(argv[2]));
}
return 0;
}
このプログラムを改良して。引数より少ない正整数で割りきれるものをすべて列記する。
プログラムを開発せよ。

例
a.out22なら

22は11で割りきれる

22は2で割りきれる

22は1で割りきれる

だれかお願いします。



0894デフォルトの名無しさんNGNG
>>888
> というか、これぐらい自分でヘッダーファイルたどって調べられませんか?
というか普通/FDオプションを使いませんか?
http://www.microsoft.com/japan/developer/library/vccore/_core_Compiler_Reference.htm
0895yumikoNGNG
ごめん上は間違いました。
放置してください
0896デフォルトの名無しさんNGNG
例えば+ならa+e〜d+hまで16通りあるということです。
それが+や-等計算の仕方が6通りあるので16×6で96通りあるということです。
0897yumikoNGNG
#include <stdlib.h>
#include <stdio.h>
int main(
int argc,
char * argv[ ]
)
{
if (argc !=3)
printf("wrong no. of arguments\n");
else
{
printf("Sum: %d\n", atoi(argv[1]) + atoi(argv[2]));
}
return 0;
}
これを改良して2つの引数を加算乗除するプログラムをつくれ

a.out 2 4 なら
sum: 6 2+4
dift: -2 2-4
prod: 8 2*4
わりきれません
おねがいします
0898yumikoNGNG
.out22なら

22は11で割りきれる

22は2で割りきれる

22は1で割りきれる

だれかお願いします。
つまり
引数より少ない正整数で割りきれるものをすべて列記する。
プログラムを開発せよ。

これもおねがいします。

0899デフォルトの名無しさんNGNG
>>897
ここの決まりを知らないようだから教えてあげるけど、
女性はまず質問する前に写真をUPしなきゃならないんだよ。
0900デフォルトの名無しさんNGNG
結局>889の答えは>891でいいんでしょうか?
これだと96通りの答えが出ないような・・・
a〜hの数値は任意でいいので適当に割り振っちゃってください
0901デフォルトの名無しさんNGNG
>>894
教えてくれ。
それやっても .bsc ファイルができあがるだけなんだが、その後どうするんだ?
ソースブラウザで辿っても要領を得ないし。
つーか元々これで最初に <xlocale> で呼ばれる事がわかって、逆順に辿ったんだ
が・・・。
これで、ファイルインクルードのツリーが見れるのか?
わからない漏れがヴァカなのか?
0902デフォルトの名無しさんNGNG
printf("%d + %d = %d\n", a[i], b[j], a[i] + b[j]);
printf("%d - %d = %d\n", a[i], b[j], a[i] - b[j]);
printf("%d - %d = %d\n", b[i], a[j], b[i] - a[j]);
printf("%d * %d = %d\n", a[i], b[j], a[i] * b[j]);
printf("%d / %d = %d\n", a[i], b[j], a[i] / b[j]);
printf("%d / %d = %d\n", b[i], a[j], b[i] / a[j]);
printf("%d & %d = %d\n", a[i], b[j], a[i] & b[j]);
printf("%d | %d = %d\n", a[i], b[j], a[i] | b[j]);
少し変えてみたけど、これでいいんない?
0903デフォルトの名無しさんNGNG
>>897
aがbで割りきれるかどうかの判定(型はint)
if (a % abs(b) == 0) {
/* 割りきれる */
} else {
/* 割りきれない */
}
0904デフォルトの名無しさんNGNG
>902
ありがとうございます
いったんこれで提出してみます
0905デフォルトの名無しさんNGNG
>>902
それだと4*4*8で128行表示されるんじゃない?
0906デフォルトの名無しさんNGNG
>>898
> 引数より少ない正整数で割りきれるものをすべて列記する。
「素因数分解」でgoogleしてみたのか?
0907デフォルトの名無しさんNGNG
だって-と/は交換法則効かないよ?>>905
というか設問の意味がよく分からないんだけど(藁
0908デフォルトの名無しさんNGNG
>>907
二重ループでまわしてるから、結局全部の組み合わせをやるのでは?
0909デフォルトの名無しさんNGNG
>907
例えば+を計算するならa+e,a+f,a+g,a+h〜d+e,d+f,d+g,d+hの16通り計算するということです。
そしてそれと同様−、×、÷、論理和、論理積の計算もするという問題だと思います。

言われてみれば-と/は計算が増えそうですね
同一でない計算ってのがミソですか
0910デフォルトの名無しさんNGNG
>>891
intじゃなくdoubleでやれば891のでOKじゃない?
0911デフォルトの名無しさんNGNG
doubleでも交換法則は成り立たないんじゃ?
0912デフォルトの名無しさんNGNG
commutative laws
0913デフォルトの名無しさんNGNG
結局どれが答えなんだぁ!
doubleにして>902で完璧ってことすか?
0914デフォルトの名無しさんNGNG
>>913
問題に「整数集合」ってあるけど、doubleでいいの?
0915デフォルトの名無しさんNGNG
>>913
だからぁー891をdoubleにすればprintfは4つでいいんじゃない?

でも最初から配列を定義するんじゃなく、後から定義する形がいい
0916デフォルトの名無しさんNGNG
a〜hは整数で任意を値を与えるってことでは?
答えが整数じゃない場合もあるからdoubleでいいのでは?
0917デフォルトの名無しさんNGNG
全部doubleにすると論理積論理和が困る罠
0918デフォルトの名無しさんNGNG
じゃあintで>902が無難ってことかねぇ
0919デフォルトの名無しさんNGNG
902だと数字を最初に定義するから色々不便では?
かといって漏れには書き直す力なし、ほかの方お願いしまつ
0920&rlo;NGNG
test
0921YAHOOONGNG
http://yahooo.s2.x-beat.com/
0922デフォルトの名無しさんNGNG
>>893

同じ学科ですね・・・(笑

すまん誰か俺にも教えてくれ。
0923デフォルトの名無しさんNGNG
>>897>>898

なかなかむずいな。さっぱりわからん
0924デフォルトの名無しさんNGNG
>>922
動作確認してないから、バグってるかもしれんけど、
そのときは自分で直しなよ。

#include <stdlib.h>
#include <stdio.h>
int main(
int argc,
char * argv[ ]
)
{
int i, n;
if (argc !=2)
printf("wrong no. of arguments\n");
else
{
n = atoi(argv[1]);
for (i = n - 1; i > 0; --i) {
if (n % i == 0) {
printf("%dは%dで割り切れる\n", n, i);
}
}
}
return 0;
}
0925922NGNG
>>924

すげーな。こんなに早くできるとは・・・。感謝します。
明日あたりPCで試してみるわ。
0926デフォルトの名無しさんNGNG
>>924

>>893事態間違いなんだから、YUMIKO氏はこれでは宿題できないんじゃないか?

>>897>>898は誰かできないの?かなりムズイな・・・。


0927デフォルトの名無しさんNGNG
>>926
2ちゃんねらーには難しすぎます。
だれもできません。
だからもう訊かないでください。
sage
0928デフォルトの名無しさんNGNG
つーか、わからないやつはいちいちそのことをレスすんな。
だまってろ
0929デフォルトの名無しさんNGNG
>>928



     君 は わ か る ん で す か ? 



0930デフォルトの名無しさんNGNG
なんだこいつら、と思ってソース見たけど
簡単すぎてつまらんしめんどいし
自作自演で煽ってるようなやつら感謝しなさそうだからヤメ
0931デフォルトの名無しさんNGNG
>>930
できないならできないといいなさい。(ぷっ
0932ゆみ~NGNG
>>924さん

うまくいきました。ありがとうございます
0933デフォルトの名無しさんNGNG
32 23 43
2 32 4
3 90 78
こういうのを
32 23 43
2 32 4
3 90 78
みたいにそろえて表示するやり方教えて〜
0934デフォルトの名無しさんNGNG
>>933
何も変わってないように見える。
0935デフォルトの名無しさんNGNG
%2d とか そんなことか?
0936デフォルトの名無しさんNGNG
ハンカクスペースが消えてるみたいね。
>>933の後半は %2dってことじゃない?

printf("%dと%5dのちがい。",100, 100 );
0937デフォルトの名無しさんNGNG
[& n b s p ;]の[]内の半角スペースを取り除いた物を
ここに入力すると半角スペース約1個分になるよ。
0938デフォルトの名無しさんNGNG
>>937
それじゃポップアップしたときに美しくない
あ、2chブラウザ使ってたときね
0939デフォルトの名無しさんNGNG
じゃあとりあえず、&nbsp; を使う方向で。
0940デフォルトの名無しさんNGNG
>>897
mainの引数のインデントには脱帽。
0941デフォルトの名無しさんNGNG
>>940
( ´,_ゝ`)フーン
0942デフォルトの名無しさんNGNG
897 の main() の引数のどこにインデントがあるのかと小一時間・・・
0943デフォルトの名無しさんNGNG
>>942
ブラウザからだと見えないだけで、インデントはしてる。
半角スペースだから縮退してる。
0944942NGNG
ああ、了解。
でもそんなに変か?
0945教えて厨NGNG
x^2+y^2=z^2
1<={x,y,x}<64
を満足する整数の組み合わせ{x,y,z}を全て求めよ。
ただし、{x',y',z'}=整数×{x,y,z}となる組合せ
(例:{6,8,10}=2×{3,4,5})は不要

Cで組んでください ねらーのみなさま、おながいします
0946デフォルトの名無しさんNGNG
何度目だ ピタゴラス
0947デフォルトの名無しさんNGNG
またお前か、ブルータス。
0948デフォルトの名無しさんNGNG
int a[255][255][255][255]
0949また貴様か!&rlo;!ろり懲はし少 &lro;NGNG
              ヽ \
             / \ \
       ∧_∧/
      (;´Д`)     i i i
      /    ヽ _   i i i--、
     ./| |   | |   ̄ ̄ ̄ |:::::|.
    / \ヽ/| |       ノ__ノ..
   /   \\| |
   / /⌒\ し(メ    .i i i . .
 / /    > ) \  ノノノ
/ /     / /    .\_  ザックザック
し'     (_つ   /:::::/::...   /ヽ
          ; "ノ・ ./∴: / )i iヽ-、_へ    ,ヘ
          '',, : :―― / / i i i iヽ . ̄ ゙― ノ /
    n_    _/;    i  .ノ / /ノ-' ̄ ゙ ― 、__ノ
  _ノ 二二二、_( _Д_ ;)-ヽ_ノ-'>>945
  ゙ー ''~      ∨ ̄∨
0950デフォルトの名無しさんNGNG
プログラム勉強しはじめて3ヶ月。
素朴な疑問です。
>>897-898さんの難しいとか、よくわからんとかレスしていますが、
そのプログラムを作ってどう役立つのだろう?
最近学校からでる宿題もなんの役に立つかさっぱりわかりません(;´Д`A
0951デフォルトの名無しさんNGNG
その疑問は宿題を出した教師にぶつけろ。
0952デフォルトの名無しさんNGNG
>>950
次スレよろしく。

練習用プログラムは、確かに役に立たないものが多いよ。
でも、プログラミング上で必要になる考え方というものが学べる。
独習である程度できるようになってしまった人には退屈かも知れないけど、
浮かれていると落とし穴にはまる事があるから気をつけろ。
0953デフォルトの名無しさんNGNG
>>950
役に立って、しかも初心者でもかける簡単なプログラムって
考えるのは難しいんじゃないの?
教えるほうも。
0954950NGNG
次スレ
http://pc3.2ch.net/test/read.cgi/tech/1036572120/

まじレスさんくすです。
>>951
言いましたが、がんばれ。と返されたよ(・_・;
>>952さん>>953さん。
ふむ。忠告&アドバイスありがとう。精進するためにがんばってきます
0955お願いします。NGNG
#include<stdio.h>

main()
{
int hoge[]={10,11,12,13};
int* piyo;

piyo=hoge;
/*piyo=&hoge[0]*/

printf("*(&hoge).....%d\n\n",*(&hoge));
/*なぜErrorにならないのか?*/

printf("*(&piyo[3])..%d\n",&piyo[1]);
/*piyoには添え字はないのに、なぜアクセスできるのか?*/
}
0956デフォルトの名無しさんNGNG
>>955
「配列はポインタ演算をした時、最初の要素へのポインタと成り下がる」
以上。
0957デフォルトの名無しさんNGNG
>>955
gccならフォーマット文字列の中身まで見て警告してくれる。
しかし、一般的にprintfのフォーマット文字列以外のパラメータを
コンパイラは型チェックできない。

printfのプロトタイプは
int printf(const char *format, ...);
だから、formatの型はチェックできる。しかしそれ以降は、
チェックできない。formatの中身を見ればできないこともないが、
普通単なるconst char*としてしかコンパイラは見ない。

関数のパラメータで「...」というのは型チェックしないというのはCの規約だ。
しないというより、できない。

gccはprintfを特別扱いして、文字列リテラルがprintfに与えられたとき
続くパラメータをチェックしてくれている。
0958デフォルトの名無しさんNGNG
>>957
・・・ネタ?
0959デフォルトの名無しさんNGNG
>>958
なんか間違ったこと言ってる?
0960デフォルトの名無しさんNGNG
>>959
いや、957 そのものはすんごく正しいんだけど、955 へのレスとして全然妥当
でないような。
んだから、955 に適当教えてセンセイにあぼーんさせるネタかと思ったの。
0961デフォルトの名無しさんNGNG
はさみうち法の問題なんですが、以下のプログラム書いたんですが、
凡用的にする改良や、使いやすくするための改良などを考えたいんですが、
どうしたら良いでしょうか?

マクロとか、グローバル変数、乗算などの減少などくらいでしょうか…

#include <stdio.h>
double m = 4.0, n = 8.0, mn = m*n,a0 = ((1 - n*n)*mn),a1 = (3*mn*n - m),
a2 = (-3*mn),a3 = m;
double f( double x );

void main (void)
{
double q0, q1, q2;
int k, i;
k = 31;
q0 = n - 0.5;
q1 = n + 0.5;

if ( f( q0 )*f( q1 ) < 0 ){
for ( i = 1; i <= k; i++ ){
q2 = ( f( q1 )*q0 - f( q0 )*q1 )/( f( q1 ) - f( q0 ) );
printf( "k =%3d x = %12.4le\n", i, q2 );
if ( f( q2 )*f( q1 ) > 0 ){
q0 = q2;
}
0962つづきNGNG
else
q1 = q2;
if ( q2/8.0 >= 0.99 ){
break;
}
}
printf( "真の解との誤差1%%以下を得るのに必要な回数は%dです。\n",i );
}
else
printf( "初期値エラー\n" );
}
double f( double x )
{
double y;
y = a3*x*x*x + a2*x*x + a1*x + a0;
return y;
}

0963デフォルトの名無しさんNGNG
まずすべき事は、次スレにそれを書くことだ。

つーか凡用って何?
0964961NGNG
>>963
分かりました。ご忠告どうも。
凡用は汎用の間違いです。すみません…
0965デフォルトの名無しさんNGNG
凡庸=ぼんよう
異常以上
0966:NGNG
int main (int argc, char *argv[])

ってどういういみですか?
0967デフォルトの名無しさんNGNG
int型と、char型へのポインタ型へのポインタ型を引数に取り
int型を返す、mainと言う名の関数です。
0968:NGNG
x[20]を定義し、中の数字をscanfして20個使わなくても終われるものを組みたいんです
(x={1,3,4,2,0,0,0…0}みたいに)
たとえば"1,2,4,end"とやればx={1,2,4,0,0,0,0,…}
どうやればいいんですか?
0969デフォルトの名無しさんNGNG
x を初期化しておけばいい
0970デバグはしてないNGNG
/* stdinからint値を最大20個scanfする */
int x[20]={0}, i = 0;
do {
if(scanf("%d",&x[i])==0)break;
} while( ++i < 20 );
/* iは正しく入力された個数を示す */
0971:NGNG
入力させた値が偶数かどうか調べるやり方ありますか?
0972デフォルトの名無しさんNGNG
x%2
0973デフォルトの名無しさんNGNG
x & 1
0974ド素人NGNG
すみませんが質問です。

ある月の日数と、初日の曜日(日:1、月:2、…、土:7)を入力し、
その月と翌月のふた月分のカレンダーを以下の例のように横に並べて表
示するプログラム
ただし、ある月の日数が31日の場合は翌月の日数を30 日、ある月の日
数が30日の場合は翌月の日数を31日、として考え、一行ずつ配列に格納
し、表示する

例えば、日数:31、初日の曜日:3 の場合、以下のように表示せよ。

S M Tu W Th F S S M Tu W Th F S
1 2 3 4 5 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 29 30
というのを作らなければならないのですが、はっきりいってまったくわかりません。
できればおしえていただけないでしょうか?



0975デフォルトの名無しさんNGNG
次スレ
http://pc3.2ch.net/test/read.cgi/tech/1036572120/
0976ド素人NGNG
s m tu w th f s s m tu w th f s
1 2 3 4 5 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 29 30
です。すみません
0977ド素人NGNG
ようは二ヶ月分のカレンダーを横並びにだすプログラムです。
0978デフォルトの名無しさんNGNG
次スレ逝けっ釣ってんだろが。

一月分のカレンダーは出せるか?
0979ド素人NGNG
それはなんとかできました
0980デフォルトの名無しさんNGNG
翌月のカレンダーは?
0981デフォルトの名無しさんNGNG
☆ チン        ハラヘッタ〜
      ハラヘッタ〜
☆ チン  〃 Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ヽ ___\(\・∀・)<  C++の宿題まだ〜?
    \_/⊂ ⊂_)_ \____________
  / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
  |  ̄  ̄ ̄ ̄  ̄ ̄:| :|
  |            |
0982デフォルトの名無しさんNGNG
>>981
じゃ>974教えてやってくれ
0983ド素人NGNG
ある月の日数と、初日の曜日(日:1、月:2、…、土:7)を入力して一月分しか
表示するのしかできてないです
0984デフォルトの名無しさんNGNG
       ∧_∧      ∧_∧
     _( ´∀`)    (´∀` )
  三(⌒),    ノ⊃    (    )   ←ド素人
     ̄/ /)  )      | |  |
    . 〈_)\_)      (__(___)

          ∧_∧  .∧_∧
         (  ´∀) (´∀` )
       ≡≡三 三ニ⌒)    .)
        /  /)  )  ̄.| |  |
        〈__)__)  (__(___)

           ∧_∧  ,__ ∧_∧
          (    ´)ノ ):;:;)∀`)
          /    ̄,ノ''    )
         C   /~ / /   /
         /   / 〉 (__(__./
         \__)\)
                      ヽ l //
            ∧_∧(⌒) ―― ★ ―――
            (    ) /|l  // | ヽ
           (/     ノl|ll / / |  ヽ
            (O  ノ 彡''   /  .|
            /  ./ 〉
            \__)_)
            ̄ ̄ ̄ ̄ ̄
        逝ってよし!
0985デフォルトの名無しさんNGNG
一週目の余りの数。
最後の週の余りの数。
などに気を配る。
0986デフォルトの名無しさんNGNG
あと二週間もたせるスレ。
0987ド素人NGNG
#include <stdio.h>
main(){
int a,b,c;
printf("月の日数を入力してください。:");
scanf("%d;,&a");
printf("初日の曜日を入力してください。:");
scanf("%d",&b");
printf(" S M Tu W Th F S\n");
for(c=0;c<b-1;c++){
printf(" ");}
for(c=1;c<=a;c++){
printf("%3d",c);
if(c==8-b){
printf("\n");}
else if(c==15-b){
printf("\n");}
else if(c==22-b){
printf("\n");}
else if(c==29-b){
printf("\n");}
else if(c==36-b){
printf("\n");}
else if(c==a){
printf("\n");}}}
これで一月分のカレンダーは出せました。
これ以降ができないのです。
0988デフォルトの名無しさんNGNG
剰余っつーものを知らんのか。
0989デフォルトの名無しさんNGNG
ぜってー1000とってやる
0990デフォルトの名無しさんNGNG
1000
0991デフォルトの名無しさんNGNG
1000
0992デフォルトの名無しさんNGNG
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
0993デフォルトの名無しさんNGNG
やべ、まける!
0994デフォルトの名無しさんNGNG
1000
0995デフォルトの名無しさんNGNG
ほれ  
0996デフォルトの名無しさんNGNG
わーい
0997デフォルトの名無しさんNGNG
100???  
0998デフォルトの名無しさんNGNG
1000       
0999デフォルトの名無しさんNGNG
あ
1000デフォルトの名無しさんNGNG
どうだ?
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。