ページ 11

選択ソートについての質問です。

Posted: 2017年7月22日(土) 22:59
by しき
C言語は初心者レベルですがどうぞよろしくお願いします。
「学生の出席番号と試験の成績が入力として与えられるときに試験の成績 の順に成績と出席番号を出力するプログラムを作成せよ」
この選択ソート問題のソースコードを書いていたのですがどうにもエラーが消えません・・。
解決策を教えてください!
また重ねて質問なのですがこのソースコードに出席番号を入力させるとしたらどこに入れるのが適切でしょうか?

コード:

#include <stdio.h>
#define NUMOFDATA 100
int main()
{
  int d[NUMOFDATA];
  int X;
  int i, j, k;
  int tmp;

  printf("今回集計する人数を入力="); scanf("%d",&X);
  for (i = 0; i < X; i++){
    printf("試験の成績を入力してください。\n");
    printf("%d 人目:",i+1);
    scanf("%d", &d[i]);
  }
  printf("今回の試験順位(昇順)\n");
  for(i=0,i < X-1; i++){

      j=i;
      for(k=i+1; k < X, k++){
        if(d[j]<d[k]){ j = k; }
      }
      tmp = d[j];
      d[j] = d[i];
      d[i] = tmp;
  }
  for (i = 0; i < X; i++) {
    printf("%d\n", d[i]);
  }
}

Re: 選択ソートについての質問です。

Posted: 2017年7月22日(土) 23:46
by YuO
しき さんが書きました:この選択ソート問題のソースコードを書いていたのですがどうにもエラーが消えません・・。
解決策を教えてください!
エラーがコンパイル時やリンク時のエラーであるならば:
  • エラーについて,マニュアル等をとにかく調べる。
  • 原因を特定する。
  • プログラムを修正する。
エラーが実行時のエラーであるならば
  • エラーについて,マニュアル等をとにかく調べる。
  • デバッガ等を使って,エラーの箇所を絞り込む。
  • デバッガ等を使って,原因を特定する。
  • プログラムを修正する。
解決「方法」です。1回で解決できなければ複数回行えばいいだけです。
オフトピック
汎用の解決方法です。このサイズのプログラムなら机上で追えばだいたい問題点はわかりますし,修正できるでしょう。
ただ,それができるのは極小規模なプログラムだけです。
しき さんが書きました:また重ねて質問なのですがこのソースコードに出席番号を入力させるとしたらどこに入れるのが適切でしょうか?
決定権のある人 (個人開発ならあなた) が適切だと思う場所に入れればよいです。

Re: 選択ソートについての質問です。

Posted: 2017年7月23日(日) 00:05
by みけCAT
とりあえず、for文の中に間違って存在するコンマ2個をセミコロンにすれば、コンパイルは通りますね。

Re: 選択ソートについての質問です。

Posted: 2017年7月23日(日) 01:53
by box
みけCAT さんが書きました:とりあえず、for文の中に間違って存在するコンマ2個をセミコロンにすれば、コンパイルは通りますね。
21行目と22行目にある } のどっちかがいらない気がする。

Re: 選択ソートについての質問です。

Posted: 2017年7月23日(日) 02:00
by みけCAT
box さんが書きました:
みけCAT さんが書きました:とりあえず、for文の中に間違って存在するコンマ2個をセミコロンにすれば、コンパイルは通りますね。
21行目と22行目にある } のどっちかがいらない気がする。
両方いらないですね。ただし、消す場合は対応する{も一緒に消さないといけません。
また、コンマ2個の修正のみでコンパイルが通ることは確認しています。

Re: 選択ソートについての質問です。

Posted: 2017年7月23日(日) 08:07
by しき
みなさんありがとうございます。
修正してみます

Re: 選択ソートについての質問です。

Posted: 2017年7月23日(日) 14:49
by asd
以下のトピックで継続している模様です。
http://dixq.net/forum/viewtopic.php?f=3&t=19425