←検索窓の楽しみ方
  ショッピングモール  掲示板ランキング


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.4756

はじめまして
投稿者---mei(2005/10/18 23:41:19)


すみませんが、誰かご指導お願いします。
下記のようなプログラムを作ったんですが、どうしても番号と合計を同時に動かす方法がわかりません。
具体的に実行結果が

1 210
2 160
3 260
4 240
5 190


3 260
4 240
1 210
5 190
2 160
のようにしたいのです。どなたかご指摘お願いします。


#include<stdio.h>

void main(void)
{

/*変数宣言と配列の初期値設定*/
int i,j;
int N=5,jmax,totalmax;
int total[5]={ 210, 160, 260, 240, 190};
int no[5]={ 1, 2, 3, 4, 5};

/*並び替え前の合計点の表示 */
printf("--------------------------\n");
printf("原データ\n");
printf("--------------------------\n");
printf(" 番号 合計\n");
for(i=0;i<N;i++){

printf("%8d %8d\n",no[i], total[i]);

}

for(i=0;i<N-1;i++){


totalmax=total[i];
jmax=i;

/* 最大値を求める*/
for(j=i+1; j<N; j++){

if(total[j] > totalmax){

jmax=j;
totalmax=total[j];

}

}

/* 最大値(jmax番目)のデータとi番目のデータを交換*/
total[jmax]=total[i];
total[i]=totalmax;


}

/*並ぎ替え後の合計点の表示 */
printf("--------------------------\n");
printf("並び替えデータ\n");
printf("--------------------------\n");
printf(" 番号 合計\n");
for(j=0;j<N;j++){

printf("%8d %8d\n",no[j], total[j]);

}

}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:はじめまして 4757 まきじ 2005/10/19 00:20:37


No.4757

Re:はじめまして
投稿者---まきじ(2005/10/19 00:20:37)


>int total[5]={ 210, 160, 260, 240, 190};
>int no[5]={ 1, 2, 3, 4, 5};

変数 maxno などを用意して totalmax と jmax が
変更される時に no[jmax] を代入すれば良いのでは?


この投稿にコメントする

削除パスワード

No.4758

Re:はじめまして
投稿者---mei(2005/10/19 00:42:22)


>>int total[5]={ 210, 160, 260, 240, 190};
>>int no[5]={ 1, 2, 3, 4, 5};
>
>変数 maxno などを用意して totalmax と jmax が
>変更される時に no[jmax] を代入すれば良いのでは?

まきじさんありがとうございます。でも、残念ながら授業でまだmaxnoの取り扱いを習ってないんです。どなたか、maxnoの取り扱いの仕方か、説明のあるようなサイトを教えてもらえないでしょうか?


この投稿にコメントする

削除パスワード

No.4759

Re:はじめまして
投稿者---まきじ(2005/10/19 00:49:36)


>残念ながら授業でまだmaxnoの取り扱いを習ってないんです。

単なる変数です。
最大値を totalmax に代入して、その添え字を jmax に代入していますよね?
その際、no[jmax] が最大値の no ですよね?
だから、no[jmax] を新たに変数(例:maxno)用意して代入すれば良い。

入れ替えも total[i] と total[j] を入れ替えたら
no[i] と no[j] も入れ替えを行う。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity