質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • C++

    3430questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • ソート

    67questions

    複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

C++のソートで、フフフフフと出てしまい困っています。

解決済

回答 1

投稿

  • 評価
  • クリップ 2
  • VIEW 237

C++の、成績を管理するコンソールアプリです。

int down[50], num[50], tmp, p, q;
for (p = 1; p <= n; p++){
down[p] = Student[p].eng;
num[p] = p;
}
for (p = 1; p < n; p++){
for (q = p + 1; q < n + 1; q++){
if (down[p] < down[q]){
tmp = down[p];
down[p] = down[q];
down[q] = tmp;
tmp = num[p];
num[p] = num[q];
num[q] = tmp;
}
}
}
printf("-------成績一覧-------\n");
printf("登録者数%d人\n", n);
printf("英語の成績\n");
for (p = 1; p <= n; p++){
printf("%s  %d点\n", Student[num[p]].name, Student[num[p]].eng);
}

Studentは学生の名前とその人の英語の点数が入っている構造体で、nは登録した成績情報の順番を示す大域変数です。

英語の点数を降順でソートしたいのですが、実行するとフフフフフと大量に出てきます。検索したら終端文字が云々ということはわかったのですが、具体的にどう直せばよいのか見当が付きません。初めての質問なので情報が足りないかもしれませんが、よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • segavvy

    2018/04/30 03:21

    仮にn=3だった場合、学生の情報が格納されているのは Student[0]〜Student[2]でしょうか?それともStudent[1]〜Student[3]でしょうか?

    キャンセル

回答 1

check解決した方法

0

すみません、自己解決しました。成績情報の入力の際にn++としていたのを忘れていたのが原因でした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/30 09:05

    配列の先頭要素を使わないスタイル(例えばdown[0]やnum[0]などが使われていない)になっていますが、あまり一般的ではありません。特別な事情がなければ先頭要素から使う形がオススメです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    javascriptの再帰が分かっていなかった模様です

    こんにちは 前に再帰について質問したのですが曖昧で分かったつもりになっていたようです。ネットで調べるとwhileで書かれたものとそれが解説サイト載っていたのですが、考えてもわかりま

  • 解決済

    for()に続く波括弧の意味

    分かりやすい説明で申し訳ありません。 for(a;b;c){printf }とあってaが評価され、Bが評価されiが+されたらこの時点でiは1ですよね。 その後にprintfが来てi

  • 受付中

    点数別分布グラフ

    点数分布のグラフですが、少し長いように感じました。もう少し短くすることはできますか? またこのコードに対して何かご意見がありましたらお願いします。 #inc

  • 解決済

    javaでの、CSVファイルで読み込んだデータを整理して、別のCSVファイルに出力したい

    test.csvから成績データを読み取って、 seiseki.csvに出力します。 (test.csvの例) 出席番号    氏名    数学    英語    国語  

  • 解決済

    c

    10人分の点数をscanfを使って読み込んだ後で、点数の低い方から順に出力するプログラムを作成せよ。(並べ替え) 点数は0〜100とし,それ以外の点数の場合は強制終了させること。

  • 解決済

    エラーメッセージの意味が分からない

    発生している問題・エラーメッセージ 文字列配列を辞書順にソートしてから表示するプログラムです。エラーメッセージは恐らく、無効な引数(型がint) のような内容が書いてあると思うの

  • 解決済

    準備された入力ファイルをもとに、合計、平均、偏差値を表示(合計点降順)させたプログラム作成

    レポート課題でわからない問題があります。 問題:入力ファイルmotofile.datを事前に用意し、出力ファイルresult.datを生成するC言語ソースプログラムファイルhen

  • 解決済

    二分探索でわからないこと

    実行したら見つけてはくれるのですがSasaki以外名前が表示されません。 どうしてですか? 教えてください。 #include <stdio.h> #define MAX 10

同じタグがついた質問を見る

  • C++

    3430questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • ソート

    67questions

    複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。