C言語なら俺に聞け(入門篇) Part 40at TECH
C言語なら俺に聞け(入門篇) Part 40 - 暇つぶし2ch2:デフォルトの名無しさん
08/11/26 22:16:46

URLリンク(xy.yu.to) (ここは本来のサイトではないが)
この荒れまくりカオス絵チャのminiっていう部屋の
秘密スペース(枠外)への書き込みってどうやれば
できるようになるのか解析して教えろ。

あと、1人の防衛プログラマーのクリアツールが強すぎて、
荒しプログラマーがことごとく全員返り討ちになってるから
オマエラが面白くしてみろ。

ゲハハハごめんね

3:デフォルトの名無しさん
08/11/27 00:47:51
コマンドライン引数の使い方がいまいちよくわかりません。
int main(int argc, int *argv[])
とした時、プログラムを実行して何かを入力するにはどうすればよいですか。

4:デフォルトの名無しさん
08/11/27 01:03:54
5 の倍数であり、かつ100 の倍数でない。
どう表記すればいいですか?

5:デフォルトの名無しさん
08/11/27 01:09:11
(a%5==0 && a%100!=0)

6:デフォルトの名無しさん
08/11/27 01:11:42
>>5 THX

7:デフォルトの名無しさん
08/11/27 01:23:26
ごめん もう一つ
・5の倍数であり、かつ100 の倍数でない。
・500 の倍数である。

8:デフォルトの名無しさん
08/11/27 01:26:03
>>7
その二つをどうつなげて一つにすればいいの?

9:デフォルトの名無しさん
08/11/27 01:27:26
>>8 一つの式にしてくらはい

10:デフォルトの名無しさん
08/11/27 01:31:10
>>9
だから、どういう条件で引っ付けるのさ?

11:デフォルトの名無しさん
08/11/27 01:35:22
if(a[i] % 5 == 0 && a[i] % 100 != 0)
この式に500 の倍数を追加するの


12:デフォルトの名無しさん
08/11/27 01:37:24
>・5の倍数であり、かつ100 の倍数でない。
或いは
>・500 の倍数である。
なにか % 5 == 0 && なにか % 100 != 0 || なにか % 500 == 0

20世紀と21世紀の閏年判定なら、
year > 1900 && year < 2100 && year % 4 == 0

13:デフォルトの名無しさん
08/11/27 01:39:36
>>12ありがと

14:デフォルトの名無しさん
08/11/27 02:19:44
>>3
一般的な例を挙げれば、コマンドラインから
% exename param1 param2
のように入力して実行ファイルexenameを呼び出したら、
argcは3で、argv[0]、argv[1]、argv[2]はそれぞれ
"exename"、"param1"、"param2"という文字列を指す
(ただしexenameはもしかしたら存在しないかもしれない)

一応言っておくとこれはプログラムを実行するときにコマンドを与えるだけで
実行してから入力しているわけではない

与えたコマンドをどう解釈して何をやるかはプログラムの用途による
まずは何をやりたいのかを決めること

15:デフォルトの名無しさん
08/11/27 02:37:37
>12
そういう甘やかしかたはいくない

16:デフォルトの名無しさん
08/11/27 08:24:06
こっちで粘着されたら困るからちゃんと宿題スレに誘導しないと

17:デフォルトの名無しさん
08/11/27 13:32:31
質問です
#include <stdio.h>
int main()
{
char s;
printf("入力=?"); scanf("%c", &s); /*①*/
}

上記の①の後に、ある条件②~④を与えて
結果が④になるまで①に戻る、と言うプログラムを作成したいのですが、
①の後にはどのように続ければよいのでしょうか?
簡単に流れを教えていただければうれしいです。

18:デフォルトの名無しさん
08/11/27 13:41:48
do{



}while(④が成立しない場合繰り返す);

19:デフォルトの名無しさん
08/11/27 15:56:07
②と③も条件だと書いてあるが④との関係(AND/ORなど)が書かれていないので答えようがない

条件②と条件③を評価だけ行って結果を無視し、条件④の結果だけで判定するなら
do {
①;
} while(②, ③, !(④));

20:デフォルトの名無しさん
08/11/27 16:00:41
>>19
> ②と③も条件だと書いて
ないよ。与えて、だよ?whileで繰り返すかどうかを決定付けるのは
④が成立するかどうか。

21:デフォルトの名無しさん
08/11/27 16:03:38
>>17
条件2と3は処理の流れに影響するのか?

22:デフォルトの名無しさん
08/11/27 16:04:34
>>20
少なくとも条件②は文中にあるぞ
つーか、おまえ本人なら人のせいにしないで訂正しろよ

23:デフォルトの名無しさん
08/11/27 16:11:18
最初の質問文があいまいなんだよ

24:17
08/11/27 16:15:22
>>18
ありがとうございます。早速試してみたいと思います
>>19
①に何か文字を打って、②or③を評価をするプログラムにしたいのですが、
「②or③ならば①に戻り、④になったらループを終了する」
と言う感じで作成したいと思っています。
②ならば正解
③ならば不正解
④に合致した時にループを終了させると言う感じです

初心者なので、何言ってるか分からないかもしれませんが、何かアドバイスがあればお願いします。

25:デフォルトの名無しさん
08/11/27 16:19:22
do{

if(②||③)continue;
while(!④);


26:デフォルトの名無しさん
08/11/27 16:20:31
おっとwhileの前の}が抜けた

27:デフォルトの名無しさん
08/11/27 16:21:44
do{
 ①;
 if(②)printf("正解");
 else if(③)printf("不正解");
}while(!④);

28:デフォルトの名無しさん
08/11/27 16:24:47
>>24
処理の流れ+どういう時に何をやるかは整理をつけるクセをとけよう
漠然と提示されると答えようがないしね

>①に何か文字を打って、②or③を評価をするプログラムにしたいのですが、
>「②or③ならば①に戻り、④になったらループを終了する」
>と言う感じ

こう書いてもらえると、こちらも答えやすいし
そちらも思考の何処で詰まっているかが限定しやすいし

29:デフォルトの名無しさん
08/11/27 16:28:36
>>24
> 「②or③ならば①に戻り、④になったらループを終了する」

言い換えると「②or③ならば①に戻り、④でなければ①に戻る」だな?

30:17
08/11/27 16:42:58
>>28
ご指摘ありがとうございます。以後気をつけます。
>>29
その通りです。未熟で申し訳ありませんでした…

31:デフォルトの名無しさん
08/11/27 18:21:12
RedHatLinux9にGCCがインストール出来ない件です。

インストールが出来なかったです。
エラーが出てしまいます。
内容を以下にコピペします。

[root@ RPMS]# rpm -ivh gcc-3.2.2-5.i386.rpm
警告: gcc-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
エラー: Failed dependencies:
binutils >= 2.12.90.0.7-1 is needed by gcc-3.2.2-5
glibc-devel >= 2.2.90-12 is needed by gcc-3.2.2-5
[root@ RPMS]#

これは何を警告しているのでしょうか?

32: 
08/11/27 18:24:37
binutilsのバージョン2.12.90.0.7-1以上が必要
glibc-develも同じく2.2.90-12以上が必要

"needed by"くらい厨房でも理解できるだろ

33:314、31
08/11/27 18:55:37
>>32アドバイス有難うございます。2つのファイルを探してみます。

34:デフォルトの名無しさん
08/11/27 19:53:40
>>33
道のりかなり険しそう。
ここで iso 落としたほうが早いんじゃない?
fURLリンク(ftp.riken.go.jp)

35:デフォルトの名無しさん
08/11/27 20:10:16
ホントにgccないのかな?
 updatedb
を実行し(少し時間かかる)、
 locate gcc | less
でそれっぽいのないか探してみたら?
もしくは
find / -name gcc -print
でも可。


36:デフォルトの名無しさん
08/11/27 20:12:58
RHLだから事実だろう

37:デフォルトの名無しさん
08/11/27 20:44:10
URLリンク(ftp.kddilabs.jp)
URLリンク(ftp.kddilabs.jp)

38:デフォルトの名無しさん
08/11/27 21:53:12
下の宣言に対してコンパイルで警告が出るんですが
「`a[0]' の初期化は不完全です」
「初期化子のまわりのブレースを欠いています」
この警告文どうすれば消えるのでしょうか?

int a[5][5]={
8,4,3,6,6,
1,6,5,8,4,
5,4,9,1,2,
6,9,6,1,8,
7,4,1,3,5,
};

39:デフォルトの名無しさん
08/11/27 22:14:17
int a[5][5]={
8,4,3,6,6,
1,6,5,8,4,
5,4,9,1,2,
6,9,6,1,8,
7,4,1,3,5,
};

40:デフォルトの名無しさん
08/11/27 22:14:55
int a[5][5]={
{8,4,3,6,6},
{1,6,5,8,4},
{5,4,9,1,2},
{6,9,6,1,8},
{7,4,1,3,5}};



41:デフォルトの名無しさん
08/11/27 22:36:20
>>40
上手くいきました
回答、ありがとうございました。

42:デフォルトの名無しさん
08/11/27 22:46:55
3行3列の行列を1オリジンにしてそいつを表示させたいんだけど、まったくうまくいかない
誰か教えてください

43:デフォルトの名無しさん
08/11/27 22:49:32
1オリジンてなんですか?

44:デフォルトの名無しさん
08/11/27 22:52:51
>43
ぐぐれ

まあ>42の言ってることは意味わからんが

45:デフォルトの名無しさん
08/11/27 22:53:30
>>42
うまくいかないソースくらい貼れ

46:デフォルトの名無しさん
08/11/27 22:53:49
a[3]って配列を宣言した時普通ならa[0], a[1], a[2]ってなるのが0オリジン
数学とかで使う普通の配列が1オリジンでa[1], a[2], a[3]ってなるやつです

47:デフォルトの名無しさん
08/11/27 22:53:57
  1 2 3
1 9 3 1
2 6 4 8
3 1 5 5

こんな感じだとエスパーしてみた。

48:デフォルトの名無しさん
08/11/27 22:55:18
>>45
#include <stdio.h>
int main(void)
{
float a[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0},{7.0,8.0,9.0}};
int i, j;
float *mp;
mp = &a[0]-1;
for(i=1; i<=3; i++){
for(j=1; j<=3; j++){
printf("mp[%d][%d]=%d ", i, j, mp[i][j]);
}
printf("\n");
}
return 0;
}

あと行を1オリジンにするだけだと思うのだけど……まったくわからない

49:デフォルトの名無しさん
08/11/27 22:57:52
>>48
#define ORIGIN1(matrix, row, col) matrix[row-1][col-1]

50:デフォルトの名無しさん
08/11/27 22:58:30
floatを%dで吐くな

51:デフォルトの名無しさん
08/11/27 22:59:46
mpの型が違う。それと、得る物が少ないからお勧めしない。
Cだとサイズを変えられないし、C++ならなんでもありだからね。

52:デフォルトの名無しさん
08/11/27 23:00:03
>>46
根本的に勘違いしているようだが、Cは0オリジンであって、1オリジンの添字を使うことはできない。

単に表示を1オリジンにしたいだけなら添字に1加えること。

53:デフォルトの名無しさん
08/11/27 23:02:17
>>48
言語には言語の流儀ってものがあるからバカなこと考えずに0オリジンでやれ

54:デフォルトの名無しさん
08/11/27 23:05:33
1オリジンと言うと Numerical Recipes in C を思い出すな。
FORTRAN 用の本を C 用にしたものだから
1オリジンで強引にやってた気がする。
しかもいくつかバグが・・・。

まあ内部的に0オリジンで扱って、
表示する時は必要に応じて1オリジンで表示する、
ってのがC的だな。

55:デフォルトの名無しさん
08/11/27 23:08:05
恣意的

56:初心者
08/11/27 23:14:42
C++初心者です。
現在、独習C++で勉強しています。
中級者向けの本、お勧めの本などありましたら
教えていただければ幸いです。

57:デフォルトの名無しさん
08/11/27 23:16:53
>>56
スレ違いです。つーか、マルチすんな。

58:デフォルトの名無しさん
08/11/27 23:17:46
>>49
加減算より優先順位の低い演算子等が入ってくるとおかしくなるぞ。
((matrix)[(row)-1][(col)-1])
にしとけ。

59:デフォルトの名無しさん
08/11/28 00:38:01
C言語を利用してモデリングの勉強したいのでつが
何かいい本ないですかね?8月に出たロボコンの本とかどうなのかな?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch