08/01/18 11:52:28
>>909
たとえそうでも、元の質問者の意図通りじゃないだろう
911:デフォルトの名無しさん
08/01/18 11:53:53
標準関数は1970年以降しか扱えない時点で
グレゴリウス暦の定義を利用しているともしていないともいえない。
912:902
08/01/18 20:21:50
とりあえずこんな感じの問題です
西暦1年1月は月曜日
1年は通常365日、閏年は366日
4で割り切れる年は閏年
400で割り切れる年は閏年
100で割り切れる年は閏年ではない
変数名関数名を作成
goto文は使用しない
関数途中でのreturnプログラム途中のexitはしない
外部関数は使用しない
913:デフォルトの名無しさん
08/01/18 20:29:48
>西暦1年1月は月曜日
意味不明。
914:デフォルトの名無しさん
08/01/18 20:29:51
>>912
丸投げするならこちらへどうぞ
C/C++の宿題を片付けます 101
スレリンク(tech板)
これは現行スレじゃないがな
915:デフォルトの名無しさん
08/01/19 00:09:54
西暦1年とかまで考えようとしたら、
途中暦を正すために何日かすっとばしたのも考慮に入れるのけ?
916:デフォルトの名無しさん
08/01/19 01:14:29
>>913
そうなんですか?
問題にはそう書いてあるのですが・・・
>>914
ありがとうございます
そっちでやってみます
917:デフォルトの名無しさん
08/01/19 17:16:00
質問させていただきます。
URLリンク(www.geekpage.jp)
このページで紹介されている様なUDP受信プログラムから、
受信したパケットの送信元IPアドレス(192…)を調べるにはどうすればよいでしょうか?
918:デフォルトの名無しさん
08/01/19 17:21:22
>>917
recvfrom
スレリンク(tech板)
919:デフォルトの名無しさん
08/01/19 18:11:04
>>918
おかげさまで解決できました。どうもありがとうございました。
920:デフォルトの名無しさん
08/01/20 18:03:14
C#厨です。C始めました。
#define A 1
#define B 2
int main(){
int i = A + B;
int j = A + B;
int hoge[i][j];
}
で
新規テキスト ドキュメント.c
新規テキスト ドキュメント.c(7) : error C2057: 定数式が必要です。
新規テキスト ドキュメント.c(7) : error C2466: サイズが 0 の配列を割り当てまたは
宣言しようとしました。
新規テキスト ドキュメント.c(7) : error C2057: 定数式が必要です。
新規テキスト ドキュメント.c(7) : error C2466: サイズが 0 の配列を割り当てまたは
宣言しようとしました。
新規テキスト ドキュメント.c(7) : error C2087: 'hoge' : 添字がありません。
新規テキスト ドキュメント.c(7) : error C2133: 'hoge' : サイズが不明です。
です。どうしたらいいでしょうか?
921:デフォルトの名無しさん
08/01/20 18:11:44
C言語は変数を用いて配列の宣言はできひんのよ
922:デフォルトの名無しさん
08/01/20 18:17:43
1. C++コンパイラの力を借りる。
拡張子cppにして、こういう風に書く
const int i = A + B;
const int j = A + B;
int hoge[i][j];
2. プリプロセッサの力を借りる。
#define i (A + B)
#define j (A + B)
本当に実行時まで変数の値がわからない時の話はまた今度。
お前の見ている本やWebサイトを読み進めていれば、その内出てくるだろうし。
923:デフォルトの名無しさん
08/01/20 18:17:55
>>921
なぬぅ!なんて使えない糞言語!
ユーザーの入力.etcによって必要なだけ配列を確保するにはどしたらいいん?
ポインタはいいとして(C#にもあるし)、プロトタイプ宣言とか、変数の宣言はブロックの先頭とか、
面倒な決まりが多いぜ…orz
924:デフォルトの名無しさん
08/01/20 18:19:04
その例で無理矢理実現するなら。
#define A 1
#define B 2
#define i (A+B)
#define j (A+B)
int main(){
int hoge[i][j];
}
925:デフォルトの名無しさん
08/01/20 18:19:11
>>923
mallocとか使え
926:デフォルトの名無しさん
08/01/20 18:19:52
C++ の std::vector 使った方が
927:デフォルトの名無しさん
08/01/20 18:20:23
まさに高級言語により生まれたゆとり世代。
928:デフォルトの名無しさん
08/01/20 18:20:45
>>926
つ[スレタイ]
929:デフォルトの名無しさん
08/01/20 18:22:06
>>922
いあ、C#で書いた迷路の生成プログラムを移植してて、
コマンドライン引数で指定した迷路のサイズによって
2次元配列のサイズを変えたいのね。
コンパイラはVC++EEのコマンドライン使ってるのでC++のコードもおkだけど
出来ればCの範囲でやりたいでふ。
930:デフォルトの名無しさん
08/01/20 18:23:10
>>925
麻呂?首ググって来る
931:デフォルトの名無しさん
08/01/20 18:23:12
malloc 一択。
演算子のオーバーロードとかないから、
何かアクセス関数作っとけ。
932:925
08/01/20 18:23:14
(´・ω・`)
933:デフォルトの名無しさん
08/01/20 18:25:02
あらかじめ最大サイズを決めておくという手もなくはない。
エレガントではないが。
934:デフォルトの名無しさん
08/01/20 18:27:32
gccで-std=c99使えばいいよ。
後の規格改定で、変数宣言の位置の縛りもなくなったし、
配列の要素数に変数が使えるようにもなった。
が、しかし、需要がなくてVisual C++は対応していない。
935:920
08/01/20 18:33:38
URLリンク(www9.plala.or.jp)
この麻呂でいけそう。超thx!
これってフリー忘れるとプログラム終わってもメモリ使えないままなの?
だとしたら怖い。
C#は案セーフじゃなければ何やってもプログラムが落ちるだけだから何でも試せたのに。
>>934
それって、今のANSI?の規格なら出来るけどVCは遅れてる子だから駄目ってこと?
ならVC2階の窓から捨てる。
936:デフォルトの名無しさん
08/01/20 18:36:31
>>935
フリーを忘れないようには
どうするといいかってのを
考えながらくむのも
おもしろいもんだよ
937:デフォルトの名無しさん
08/01/20 18:37:57
>>935
プログラムが終了すればおk
C#のunsafeとほぼ一緒だと思うけど
938:920
08/01/20 19:09:27
>>936
{書いたら直ぐに
}書いて、その間にコードを書くみたいに
麻呂したら直ぐにフリーして間にコード書いちゃ駄目?
>>937
よかた。ちゃっちゃいプログラムなら大事にはならなさそうね。
939:デフォルトの名無しさん
08/01/20 19:10:38
いやいやいやいや、
終了すれば大丈夫だからって
放置する癖は付けない方がいいぞ
940:920
08/01/20 19:22:43
>>939
それはだいぢょぶ。
ただ、びくびくしながら書いてたら上達しにくい気がするから心配だっただけ。
もひとつ質問していいかな。
int main(){
int hoge[10][10];
hoge[10][10] = 100;
poke(hoge);
return 0;
}
int poke(int *moge){
return *moge[10][10];
}
って平気?一次元だと出来たんだけど。
試してもいいかなぁ?
941:デフォルトの名無しさん
08/01/20 20:06:48
mallocを麻呂って書くヤツはカス。
942:デフォルトの名無しさん
08/01/20 20:17:08
>>935
大丈夫。VC++みたいなのが世の中の多数派。使う人間、誰もいないし。
たとえ解放し忘れても、プログラムが終了すればWindowsが丸ごと解放する。
あと、マネージドなプログラムで何やってもプログラムが落ちるだけというなら、
アンマネージドなCのプログラムだって、
何やってもプログラムが落っこちるだけで済むと言える。
9xのWindowsでもない限り。
943:デフォルトの名無しさん
08/01/20 21:26:32
>>940
そもそもhoge[10][10]の参照はまずくないか
944:デフォルトの名無しさん
08/01/20 21:29:30
mallocってなんて読むの?
えむあろっく かと思ってるんだけど
945:デフォルトの名無しさん
08/01/20 21:31:57
>>944
宗教論争みたいになっちゃうけど人間関係に問題が起きない範囲で好きに読めばいいと思う。
俺は普段はまろっくって読んでる
946:デフォルトの名無しさん
08/01/20 21:40:08
ネイティブはマロックって言うらしい
ソースは俺
947:デフォルトの名無しさん
08/01/20 21:40:51
まろっくって読んでるけど個人でやってるから口に出した事ないな
プログラマだと口に出して言うことあるのか?
948:デフォルトの名無しさん
08/01/20 21:43:23
動的確保!って叫んでる
949:デフォルトの名無しさん
08/01/20 21:43:26
普段はC++だから口に出して言ったことは無いな
950:デフォルトの名無しさん
08/01/20 21:46:54
【char】変な読み方するな その2【ちゃー】
スレリンク(prog板)
マジレスするとカタカナ表記でGoogle検索して多い方を使っておけばノープロブレム。
951:デフォルトの名無しさん
08/01/20 21:48:41
ちゃーだと最近のクソ芸人のギャグまでひっかかる
952:デフォルトの名無しさん
08/01/20 22:45:34
>>940
平気じゃない。
2次元配列を1次元配列にマップしたときのインデックスを計算汁。
953:デフォルトの名無しさん
08/01/20 22:50:46
int hoge[10][10];
配列の最後は
hoge[9][9];
よってオタワ
954:デフォルトの名無しさん
08/01/20 22:53:56
int poke(int (*moge)[10]){
return moge[9][9];
}
こういうのならいいんでしょうか・・?
955:デフォルトの名無しさん
08/01/20 23:08:57
int poke(int moge[][]){
}
って感じにできなかったっけか?
956:デフォルトの名無しさん
08/01/20 23:10:32
>>955
それはない
957:920
08/01/20 23:16:34
>>952
でけた。THX
でも、こんなの読めないよ…。
hoge[2番目の長さ * 1番目の添え字 + 2番目の添え字]
が
hoge[1番目の添え字][2番目の添え字]
と同じだなんて気付きようがないぬ
もっと可読性が高い書き方はないかにょ…。
958:デフォルトの名無しさん
08/01/20 23:24:05
>>955
最低でも int poke(int moge[][N]) の N が必要
959:デフォルトの名無しさん
08/01/20 23:36:12
>>957
関数にすればいいじゃん
960:デフォルトの名無しさん
08/01/20 23:41:59
>>957
>>954
の方法は?
961:デフォルトの名無しさん
08/01/20 23:45:25
>>960
2番目の長さが固定になるだろ・・・
962:デフォルトの名無しさん
08/01/21 00:49:55
Cプログラマ必須テキストです!
URLリンク(mori.eco.to)
963:デフォルトの名無しさん
08/01/21 01:21:37
マルチ乙としかいいようがないな
964:デフォルトの名無しさん
08/01/21 01:23:42
ざっと見てみたけど自意識過剰サイトでわろた
しかもテキストごときに8000円とか誰もひっかからんだろwww
965:デフォルトの名無しさん
08/01/21 01:40:05
在学中に情報系の国家試験である、基本情報処理技術者、ソフトウエア開発を取得
極普通じゃねーかwwwww
966:デフォルトの名無しさん
08/01/21 01:45:21
ばかじゃねーの
8800円あったら専門書買うわーバーカ
967:デフォルトの名無しさん
08/01/21 02:05:24
構造体の初期化で教えてください。
(1)
struct Type x = {.var = NULL};
(2)
struct Type *x;
x = (struct Type *) malloc(sizeof(struct Type));
x->var = NULL;
(3)
struct Type *x;
x->var = NULL;
とあって、(1), (2) だと問題ないのですが、
(3) だと segmentation fault になってしまいます。
どういう理屈からでしょうか?
また、構造体を 「*変数名」で宣言したときは、最初に値を設定するときに、
必ず malloc をしてからでないといけないのでしょうか?
よろしくお願いします。
968:デフォルトの名無しさん
08/01/21 02:07:49
ポインタってのはどこかの実態をポイントしてなきゃアクセスできるわけがねぇ
969:デフォルトの名無しさん
08/01/21 02:08:12
xはその構造体の型へのポインタだから
970:デフォルトの名無しさん
08/01/21 02:10:05
>>967
ポインタがなんなのかまったく理解できてない
struct Type *x;
で用意されるのは構造体struct Type がどこにあるかを表す変数だけ
構造体の本体はない
mallocでそれを用意してやってる
971:デフォルトの名無しさん
08/01/21 02:26:02
long と long int は何が違うんでしょうか
972:デフォルトの名無しさん
08/01/21 02:33:25
いっしょです
973:デフォルトの名無しさん
08/01/21 02:33:43
タイプ数
974:デフォルトの名無しさん
08/01/21 10:20:07
音声を出力するにはどうすればいいのかな?
975:デフォルトの名無しさん
08/01/21 10:20:44
環境書け
976:デフォルトの名無しさん
08/01/21 10:31:16
センサーがあるのでそれで感知をした時に
音声を出力するプログラムを作るにはどうすればいいですか?
977:デフォルトの名無しさん
08/01/21 10:34:52
センサーの入力を監視する部分と、音声を出力する部分を作ればいける
978:デフォルトの名無しさん
08/01/21 10:36:40
音声の出力する部分を作るには
どうすればどのようなプログラミングを作ればいいですか?
979:デフォルトの名無しさん
08/01/21 10:40:22
Cの標準機能じゃ無理だからOSとかコンパイラとかを書かないと答えようがない
980:デフォルトの名無しさん
08/01/21 14:33:40
>>978
putchar('\a');
981:デフォルトの名無しさん
08/01/21 14:44:54
>>978
「プログラミング」は作れません。
982:デフォルトの名無しさん
08/01/21 14:54:47
>>978
音声合成とか勉強すれば...
983:デフォルトの名無しさん
08/01/21 14:56:35
センサーって、組み込み?
それなら、周辺回路によるけどどこかのポートをパタパタ。
984:デフォルトの名無しさん
08/01/21 19:47:42
>>978
window.hをインクルードしてBeep関数使えば鳴らせるよ