C言語初めてみたんですが、、

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
hiroshi
記事: 2
登録日時: 10年前

C言語初めてみたんですが、、

#1

投稿記事 by hiroshi » 10年前

初めましてC言語初めて勉強しているモノです。
この日記に質問書いて良いでしょうか??

参加して質問ってどうかなって思ったんですが、聞ける場所ないのでよろしくお願いします。。

参考書は柴田様の明解C言語入門編をやっており
以下サンプルコードで行き詰まっております。。

コード:

#include <stdio.h>

#define NUMBER  5

int main(void)
{
    int  i;
    int  snum  =  0;
    int  tensu[NUMBER];
    int  succs[NUMBER];

    puts("点数を入力してください。");
    for( i = 0; i < NUMBER; i++) {
        printf("%2d番 :",  i + 1);
        scanf("%d",  &tensu[i]);
        if (tensu[i] >= 60)
           succs[snum++] = i;
     }

    puts("合格者一覧");
    puts("--------------");
    for( i = 0; i < snum; i++)
        printf("%2d番 (%3d点) \n", succs[i] + 1, tensu[succs[i]]);

    return (0);
}
//この内容に対して以下が実行結果です。
; exit;
点数を入力してください。
1番 :95
2番 :55
3番 :85
4番 :63
5番 :41
合格者一覧
--------------
1番 ( 95点)
3番 ( 85点)
4番 ( 63点)
logout

[プロセスが完了しました]

質問としてましては、勉強不足で申し訳ありませんが、

⇒ succs[snum++] = i; //ここではsuccsの中にどういった代入がされているのでしょうか??
恥ずかしながら僕はこう思っているのですが、
succs[5]={1, ,3,4, }
それで、実行結果が
succs[0]+1=1番
succs[1]=???
succs[2]+1=3番
succs[3]+1=4番
succs[4]=???

こんな感じで思っているのですが、自分の頭の中でもこんがらがってしまってて
もし教えて頂けるならこの代入された流れ、もしくは中身を教えて頂けないでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: C言語初めてみたんですが、、

#2

投稿記事 by みけCAT » 10年前

hiroshi さんが書きました:この日記に質問書いて良いでしょうか??
「この日記」とは何でしょうか?
掲示板はあなた専用の日記ではありません。荒らしと見なされるような使い方はおやめください。
ここのサイトの日記で質問するのは非推奨です。「掲示板で聞いた方がいい」と言われることが多いようです。
この掲示板で質問するのは歓迎です!そのための場所ですので。ただし、荒らしと見なされるような使い方はおやめください。
hiroshi さんが書きました:succs[snum++] = i; //ここではsuccsの中にどういった代入がされているのでしょうか??

succsには代入されません。
succs[snum]にiの値が代入され、その後snumに1が加算されます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
usao
記事: 1887
登録日時: 11年前

Re: C言語初めてみたんですが、、

#3

投稿記事 by usao » 10年前

一行ずつ丁寧に追って行けばわかると思いますよ.

最初,
snum = 0
succs[5] = { 不定値, 不定値, 不定値, 不定値, 不定値 }
という状態.

forループの中で i=0 のときの処理を考えると,入力された95は60以上なので,
succs[ snum++ ] = i;
→今の変数値で書けば,ここは
succs[ 0 ] = 0;
snum=1; //(snum++)
ということですね.

i=1のとき…
i=2のとき…

…と,見ていけば,60点以上の値が入力されたのは,i=0,2,3 のときなので,
forループが終わったとき,
succs[5] = { 0, 2, 3, 不定値, 不定値 }
snum = 3
となっています.
オフトピック
「日記」に書いてるつもりで,うっかり質問掲示板側に書いてしまった のかな?

hiroshi
記事: 2
登録日時: 10年前

Re: C言語初めてみたんですが、、

#4

投稿記事 by hiroshi » 10年前

みけCAT さん
ご回答有り難う御座います!
「日記」×
「掲示板」の間違えでした(汗
大変失礼しました。
今後気をつけます。。


usao さん
succs[5] = { 0, 2, 3, 不定値, 不定値 }
これですっきりしました!
こういう風に代入されていたんですね。
有り難う御座います。

閉鎖

“C言語何でも質問掲示板” へ戻る