[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 06/01 04:20 / Filesize : 164 KB / Number-of Response : 702
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

スレを勃てるまでもないC/C++の質問はここで 20



1 名前:デフォルトの名無しさん [2011/09/15(木) 00:17:43.25 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
01 pc11.2ch.net/test/read.cgi/tech/1167476845/
02 pc11.2ch.net/test/read.cgi/tech/1178503366/
03 pc11.2ch.net/test/read.cgi/tech/1187521676/
04
pc11.2ch.net/test/read.cgi/tech/1221633708/
05 pc11.2ch.net/test/read.cgi/tech/1230516307/
06 pc11.2ch.net/test/read.cgi/tech/1231564903/
07 pc11.2ch.net/test/read.cgi/tech/1232983248/
08 pc12.2ch.net/test/read.cgi/tech/1235921779/
09 pc12.2ch.net/test/read.cgi/tech/1240022781/
10 pc12.2ch.net/test/read.cgi/tech/1242300936/
11 pc12.2ch.net/test/read.cgi/tech/1245059383/
12 pc12.2ch.net/test/read.cgi/tech/1248010352/
13 pc12.2ch.net/test/read.cgi/tech/1260842197/
14 pc12.2ch.net/test/read.cgi/tech/1269273471/
15 pc12.2ch.net/test/read.cgi/tech/1273368706/
16 hibari.2ch.net/test/read.cgi/tech/1279285647/
17 hibari.2ch.net/test/read.cgi/tech/1285115590/
18 hibari.2ch.net/test/read.cgi/tech/1291571263/
19
hibari.2ch.net/test/read.cgi/tech/1308106024/

52 名前:デフォルトの名無しさん mailto:sage [2011/09/28(水) 19:58:18.01 ]
煽りはレスしなくて結構です

53 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 00:38:50.35 ]
すでにある構造体(コンストラクタなしの型)のテンポラリオブジェクトを無駄なく構築するにはどうすればいい?
func(hoge(1, 2));
というふうな書き方ができないから
{ hoge h(1, 2); func(h); }
と書いてるんだけど、ダサすぎて困る

54 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 00:46:48.17 ]
>>53
C++ならコンストラクタを書く
CならC99のコンパウンドリテラルを使う
C89はどうしようもない

55 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 17:55:42.79 ]
printf("%s %d", "hoge", x);
な所が
printf("hoge", "hoge", x);
こうなるケースがあっても問題ない?

56 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 18:03:28.62 ]
初心者には意味不明な質問だな

57 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 18:36:14.12 ]
多いのは問題あるが少ないのは問題ない

58 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 19:08:08.85 ]
ファイルから文字列を読み込んで,その文字列を名前にもつ関数を呼び出す事ってC,もしくはC++で可能なんでしょうか
例えば func,100 とだけ書かれたファイルを読み込んで,func(100)という風に呼び出したいのです

59 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 19:19:48.85 ]
if(strcmp(str, "func") == 0)
{
  func(num);
}

60 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 19:38:38.90 ]
void hoge(void) { std::cout << "hoge" << std::endl; }
void fuga(void) { std::cout << "fuga" << std::endl; }

map<string, void (*)(void)> m;
m["hoge"] = hoge;
m["fuga"] = fuga;

string s;
cin >> s;

map<string, void (*)(void)>::iterator i(m.find(s));
if(i != m.end()) { (*i)(); }




61 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 19:42:25.38 ]
あらかじめ用意した関数しか呼び出せねえのかこの糞ゲーは

62 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 19:46:40.08 ]
用意してないものを利用できると思うほうがおかしい

63 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 20:00:11.71 ]
>>59
ありがとうございます
たぶん,これでもやろうとしてることは出来ないことはないんですが
全部の関数でそれをするのはちょっと辛いなあと思ってたんです
言葉足らずですいません

>>60
C++はまだ勉強中なのでよくわからないのですが,おそらくイメージしてたのはこれです
mapとか言うのを調べればよさそうな感じですね
勉強になりました

お二方,ありがとうございました

64 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 22:58:54.79 ]
以下のプログラムで実行結果を「ABC」にしたいのですが「ABCBCC」になってしまいます
どうすればいいですかね・・・

#include<stdio.h>
int main()
{
int i;
char c[100]={'A','B','C'};

for(i=0;i<3;i++)
printf("%s",&c[i]);

printf("\n");
}

65 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:02:34.67 ]
%sを%cにする?

66 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:05:19.91 ]
s->c

67 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:11:29.79 ]
>>65
%cにしたら出力が「???」になりました

68 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:14:04.75 ]
printf("%c",c[i]);

69 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:15:41.95 ]
プリントは&いらん

70 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:16:03.02 ]
>>67
申し訳ない
>>68が正解だな



71 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:17:43.86 ]
>>68-69
できました!ありがとうございます
&はscanfと混同してました・・・初歩的なミスでしたね^^;

72 名前:デフォルトの名無しさん [2011/10/04(火) 18:16:34.85 ]
Boost pythonを使用しようとして
d.hatena.ne.jp/moriyoshi/20091214/1260779899
を参考にしているのですが、vector<int>からpythonのリストへの変換例のコードの意味がわかりません。
参考URL中の

.def("__getitem__", (int const&(foo::int_vector::*)(foo::int_vector::size_type) const)&foo::int_vector::at)

の中で(int const&以下が何をやっているのでしょうか。さっぱり理解できません。

73 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 19:56:17.57 ]
>>72
foo::int_vector::at へのメンバ関数ポインタを取得するために、
返却値型 int const & で引数は一つで型は foo::int_vector::size_type で const 修飾されてる foo::int_vector のメンバ関数の
メンバ関数ポインタ型へ明示的なキャストをしてる。

74 名前:デフォルトの名無しさん [2011/10/04(火) 20:22:34.44 ]
>>73
ありがとうございます。
関数キャストは
(返却値型 (ポインタ型)(引数リスト) )
の形式で行うということですね。

75 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 21:16:27.46 ]
なんか正しくわかってないような?
・メンバ関数ポインタ
・オーバーロードされてる(メンバ)関数への(メンバ)関数ポインタの取得
についてわかってるならそれでいいよ

76 名前:デフォルトの名無しさん [2011/10/06(木) 01:12:52.40 ]
vectorの各要素を<algorithm>を使って3乗するとして、

案1
class MyPow {
pulic:
  double operator() (double value){return pow(value, a_)
  MyPow(double a):a_(a)
private:
  double a_;
}

transform(vec.begin(), vec.end(), vec.begin(), MyPow(3.0));


案2
class MyPow: public binary_func<double, double, double> {
  double operator() (double value, double a) {return pow(value,a);}
}

transform(vec.begin(), vec.end(), vec,begin(), bind2nd(MyPow(), 3.0))

どちらの方が好ましいのでしょうか。どちらでもOK?

77 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 01:15:48.59 ]
>>76
どちらも単なる関数オブジェクトだから大差ないんじゃね?
強いて言えば案1の方が3.0を内部状態として持つのでそれだけ引数の
受け渡しが減る

78 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 01:48:04.60 ]
const int n = 10;

int main()
{
std::vector<double> vec;

for (int i = 0; i < n; i++)
vec.push_back(std::rand() % 100);

std::copy(vec.begin(), vec.end(), std::ostream_iterator<double>(std::cout, " "));
std::cout << std::endl;

std::transform(vec.begin(), vec.end(), vec.begin(), [](double& x) { return std::pow(x, 3.0); });

std::copy(vec.begin(), vec.end(), std::ostream_iterator<double>(std::cout, " "));
std::cout << std::endl;
}

79 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 02:04:54.23 ]
やっぱりラムダ入ったのは大きいよなぁ

80 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 02:19:35.41 ]
mem_fun_ref(笑)



81 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 02:23:32.07 ]
-> を使えば一発

82 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 09:00:52.21 ]
やはりここはptr_funの出番d・・・
transform(vec.begin(), vec.end(), vec.begin(), bind2nd(ptr_fun<double, double, double>(pow), 3.0));

83 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 21:10:35.55 ]
もっとクールな方法でパブリックメンバ変数を外から見たらconstに中から見たら非constにできる?
struct hoge
{
int const x;
hoge(void) : x(0) { }
hoge(int x) : x(x) { }
hoge & operator = (hoge const & h) { const_cast<int &>(x) = h.x; return *this; }
void inc(void) { const_cast<int &>(x) += 1; }
void dec(void) { const_cast<int &>(x) -= 1; }
};


84 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 22:12:54.93 ]
publicなメンバ変数という設計を捨てる

85 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 01:07:01.67 ]
void君と名付けよう

86 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 09:26:21.88 ]
ファイルを適当な変数の配列にファイルサイズ分一気に読み込みたいんですが、
どうすればできますか?
今はこんな風にして凌いでるけど、どう考えても馬鹿らしすぎる


std::string buf;
std::string DataStr;
while(FileStream&&getline(FileStream,buf))DataStr+=buf;
char *src=new char [DataStr.size()];
memcpy((void *)src,DataStr.c_str(),DataStr.size());

87 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 10:18:33.83 ]
std::ifstream ifs("test.txt", std::ios::in|std::ios::binary);
ifs.seekg(0, std::ios::end );
size_t size = ifs.tellg();
ifs.seekg(0, std::ios::beg );
char *buff = new char[size+1];
ifs.read(buff, size);
buff[size] = '\0';
// ...
delete[] buff;

88 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 10:54:32.05 ]
#include <exception>
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
template <class A> void readAllAtOnce(char const * path, std::vector<char, A> & data) {
std::fstream file;
file.exceptions(std::ios::badbit | std::ios::eofbit | std::ios::failbit);
file.open(path, std::ios::in | std::ios::binary);
file.seekg(0, std::ios::end);
std::ios::pos_type end(file.tellg());
file.seekg(0, std::ios::beg);
std::ios::pos_type beg(file.tellg());
std::ios::off_type off(end - beg);
if(data.max_size() < off) throw std::exception();
data.resize(off);
file.read(&data[0], off);
file.close(); }
int main(void) {
try {
std::vector<char> buf;
readAllAtOnce("test.txt", buf);
std::string str(buf.begin(), buf.end());
std::cout << str << std::endl; }
catch(...) { std::cout << "err" << std::endl; }
return 0; }

89 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 23:12:40.33 ]
窓板の質問スレでたずねたんだけど、返答がないようなのでこっちでも聞かせてください。

C++でWinXPでネットワーク接続を表示したときに表示される「LANおよび高速インターネット」を
表示するexeを作成したいですが、ネットワーク名なんかはレジストリから取得できました。
しかし、切断したネットワーク名まで表示される状態で上記の内容とはずれてしまっています。
レジストリに保管されているネットワークから現在接続されているネットワークだけ表示したいんですけど、
何をフラグとしてしているのかがわかりません。

どなたかご教授お願いします。

90 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 01:12:36.92 ]
blogs.msdn.com/b/jpwdkblog/archive/2009/09/29/9900575.aspx
devcon status =net
でdisabled/runningの判別がつくけど他にいい方法があるかもしれん



91 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 01:19:16.35 ]
>>87-88
ありがとう、seekgを使うのがポイントなのね

92 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 03:43:03.15 ]
イテレータってインクリメントやデクリメントだけでなく、+1や-1でも前後の要素にアクセスできる?

93 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 09:19:56.59 ]
自分で試したほうが早かった。できた

94 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 09:38:55.18 ]
浮動小数点数をバイナリで保存するにはどうすれば?

95 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 10:44:11.90 ]
fwrite
ofstream::write

96 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 11:18:44.56 ]
>>90
ありがとう。
devconは知らなかった。試してみる。

97 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:31:47.94 ]
ローベルのC++入門講座をお持ちの方にお聞きしたいのですが、
P308の演算子オーバーロードの流れがよくわかりません。

> delete[] m_array;
> m_array = array;
deleteしたにも関わらず直後にdeleteしたものを使っていて混乱しています。

98 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:35:20.40 ]
ロベールの翻訳は分かりやすい

99 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:36:11.26 ]
その2行だと。
deleteしたのは、m_arrayのポインタが指す領域。
m_arrayはまだ残っている。
そこに、arrayのエリアのポインタを再設定しただけ。

100 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:37:57.79 ]
×そこに、arrayのエリアのポインタを再設定しただけ。
○そこに、arrayの中にあるポインタを再設定しただけ。





101 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:40:21.83 ]
m_array→[a][a][a][a][a][a]
array→[b][b][b][b][b][b][b][b][b][b]

↓delete [] m_array

m_array→???
array→[b][b][b][b][b][b][b][b][b][b]

↓m_array=array

m_array--↓
 array→[b][b][b][b][b][b][b][b][b][b]


102 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:52:41.43 ]
>>99-101
よくわかりました。ありがとうございます!

103 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 05:52:14.38 ]
あるクラスのポインタ型の代入演算を定義したいと思っています。
つまり、
Hoge *a,*b;
a=new Hoge;
b=new Hoge;
a=b;<-この部分

この部分の代入演算子を定義するために以下のように書きましたが
チェック用の文字列が出力されません。(コンパイルは通ります)
class Hoge{
public:
Hoge(){}
Hoge* operator=(Hoge& *hoge){cout<<"Check!"<<endl;return this;}
};

どなたか申し訳ないのですがご教示願えないでしょうか。

104 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 07:28:56.83 ]
>>103

その代入演算子は、
Hoge a;
Hoge b;
...
a = &b;
としたとき、&a を返す演算子だから呼ばれてない。

105 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 07:36:40.08 ]
>>103
これをやろうとすると、ポインタ型のグローバルな代入演算子をオーバーロードすることになるけれど、
C++では、その操作は許されていない。つまり、できない。
どうしてもというなら、copy()メソッドのようなものを作るしかない。


106 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 10:46:38.24 ]
template<typename T>struct ptrh{T*const operator=(T*p){return h=p;}ptrh(T*p):h(p){}T*h;};
template<typename T>ptrh<T> ptrh_cast(T*a){return ptrh<T>(a);}

ptrh_cast<hoge>(a)=b;


107 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 10:53:41.09 ]
それ挙動確認して無いだろ
参照つけないとダメだな

108 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 13:51:34.26 ]
STLのコンテナやイテレーターが満たさないといけない要件をわかりやすくまとめたサイトや書籍は有りますか?

109 名前:デフォルトの名無しさん [2011/10/11(火) 16:22:01.56 ]
久々に実行したら

Setting Default Parameters...
Parsing Configfile encoder.cfgCannot open configuration file encoder.cfg.
続行するには何かキーを押してください . . .

ってでて動きません。
環境変数とかはいじってないはずなんですけど・・・
解決方法がわかる人がいれば教えてください!

110 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 01:16:57.92 ]
struct CUSTOMVERTEX2
{
FLOAT x, y, z,h;
DWORD color;
float u,v;
};

CUSTOMVERTEX2* vertices;
vertices=new CUSTOMVERTEX2[kakuKosu*2+2];

verticesを静的に初期化したらうまくいったのですが、
newを使って初期化したら何も表示されなくなりました。
newの書き方が変なのでしょうか。



111 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 01:35:29.79 ]
あなたの求める挙動による

112 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 01:55:27.49 ]
>>111
CUSTOMVERTEX2* vertices;
vertices=new CUSTOMVERTEX2[20];

CUSTOMVERTEX2 vertices[20];
で挙動の違いがあるんですか?

ちなみに
VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )
return;
memcpy( pVertices, vertices, sizeof(vertices) );
g_pVB->Unlock();

verticesの中身は上記のような感じでバッファーに渡しています。

113 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 02:06:05.32 ]
そもそもそれじゃ静的な初期化にもなってないが、
上と下でsizeofが何を返してくるかprintfで確かめたら直ぐに原因は分かる

114 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 02:07:00.46 ]
>>112
sizeofの結果が変わってくる
sizeof(vertices[0])*20にすればおk

115 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 10:28:00.33 ]
>>113-114
ありがとうございます。
できました。

116 名前:デフォルトの名無しさん [2011/10/13(木) 00:09:58.48 ]
初歩的な質問なのですが、エラー処理のあたりがよくわかりません。

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

int main(void)
{
 char *str;
 int num, i;

 printf("表示するaの個数を入力\n");
 scanf("%d", &num);

 str = (char *) malloc (sizeof (char) * (num +1));
 if(!str){                  ←【Q1.この!strの意味は何でしょう?】
  printf("メモリが確保できませんでした。\n");
  return 1;                ←【Q2.return 0;ではないのは何故ですか?】
 }
 for (i=0; i<num; i++){
  *(str+i) = 'a';
 }
 *(str+num) = '\0';
 printf("%s\n", str);
 return 0;
}

117 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 00:30:21.08 ]
> if(!str){                  ←【Q1.この!strの意味は何でしょう?】
メモリー確保ができなかった場合rtn=0になる。その確認
>  return 1;                ←【Q2.return 0;ではないのは何故ですか?】
プログラムが終了したとこのコードを1(エラー)として0(正常)特別している。

118 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 00:31:51.37 ]
×特別している。
○と区別している。

119 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 01:07:29.45 ]
A1.malloc()は必要なメモリの確保に失敗するとNULLを返すのでそれをチェックしている
A2.普通main()は成功時に0、失敗時に非0を返す。そのためのマクロEXIT_SUCCESSと
EXIT_FAILUREも定義されている

120 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 03:12:37.85 ]
>>117>>118>>119
ありがとうございます。理解できました。
論理演算子とNULL値をよく理解していませんでした。



121 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 07:06:25.03 ]
C++を勉強しようと思ってるんだけど
練習問題がついた良いサイトありませんか?

www.geocities.jp/ky_webid/ProgrammingPlacePlus/c/index.html
こんなサイトのC++版があれば理想的なんだけど

122 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 08:52:06.18 ]
>>121
C++はCと違ってそのボリュームは生半可じゃないぞ
独習C++でも買え

123 名前:デフォルトの名無しさん [2011/10/13(木) 11:17:11.22 ]
Cの生みの親が死んじゃった・・・・・・


124 名前:デフォルトの名無しさん [2011/10/13(木) 14:14:16.82 ]
独学ですがC言語をマスターした後は何を勉強すればいいですか


125 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 14:39:55.46 ]
何がしたいのかによる。

126 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 14:56:23.02 ]
>>124
基本情報を取りましょう

127 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:57:00.56 ]

C言語の課題なんだが 、五つの数字足したあとに平均だす方法がわからん。
教えてください


128 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:11:34.53 ]
ans = ( a + b + c + d) / 5;

129 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:12:48.93 ]
ans = ( a + b + c + d + e) / 5; // 1こ足りんかった

130 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:18:31.86 ]
<<127
すまない、補足なんだがC++だ



131 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 15:16:10.61 ]
平均の出し方も分からない奴がプログラミングをやる時代か……

132 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 15:58:18.97 ]
平均の求め方をやるのは小6だ
あとはわかるな?

133 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 16:10:02.03 ]
最近の小学生はプログラミングなんかやってるのか

134 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 16:15:21.83 ]
まあ小6っつったらいろいろ背伸びしたくなる時期なんだろうな

135 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 16:19:22.80 ]
後で平均する数を増やすかもしれないのか、小数点以下をどうするのか、そもそも5つの値をどのように与え、どのように出力したいのか

136 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 16:24:40.12 ]
小学生とか
俺がお年玉でVB4.0を買った頃じゃないか
結局ろくなもん作れなかったけど

137 名前:片山博文MZ [2011/10/14(金) 17:10:05.90 ]
int *p = new int[0]; // OK or NG?

138 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 19:05:53.66 ]
>>137
OK
ついでに言うと自分でnewをオーバーロードするときもサイズ0に対応できるように書かなければならない



139 名前:デフォルトの名無しさん [2011/10/14(金) 21:12:05.51 ]
>>130

俺と同じ悩み持っててワロタ

#include <stdio.h>
int main()
{
int a, b, c, d, e;
int f=5;

puts("一つ目の数を入力");
scanf("%d", &a);
puts("二つ目の数を入力");
scanf("%d", &b);
puts("三つ目の数を入力");
scanf("%d", &c);
puts("四つ目の数を入力");
scanf("%d", &d);
puts("五つ目の数を入力");
scanf("%d", &e);

}

ここまでは出来るんだが、ここから合計と平均をprintfで出力する方法がわからない。
たぶん同じ事言ってるんだと思う

140 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 21:16:55.22 ]
printf(" 平均=%d",(a + b + c + d + e)/f); // 小数点以下切り捨ての場合



141 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 21:35:33.01 ]
ttp://codepad.org/JYRrwYAj

142 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 08:29:11.34 ]
>>139
C++らしさをどうしても出したいなら、cin と cout 使えば?


143 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 09:48:34.05 ]
>>142
その前にcstdioだろ

144 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 15:10:53.49 ]
0x年代でもscanfの人気は揺るぎなかった

145 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 16:56:04.82 ]
fgets(buf, sizeof(buf), stdin);
n = sscanf(buf, "%d %d", &a, &b);

146 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 00:22:43.73 ]
VISUALC++やってんだけど四捨五入どうやんの?

147 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 00:44:14.95 ]
四捨五入した値の用途次第

148 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 00:48:50.24 ]
>>146
お前の頭の中の四捨五入の手順を細かく分解してその一つ一つの段階をプログラムにするだけ

頭の中のもやもやした考えを分析・整理してプログラムで表現するのは
上手くプログラムを書くのに必須の能力だからそのつもりでやってみな

149 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 00:51:37.79 ]
>>146
boost::math::round<T>(X)

150 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 01:00:25.46 ]
>>146
#include <boost/math/special_functions.hpp>



151 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 13:49:05.02 ]
>>146
0.5をたしてきりすてる

152 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 21:13:14.45 ]
>>147
哀しいけどソレが現実なのよね






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<164KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef