[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
| |
test
1
:
名無しさん
:2009/07/01(水) 02:52:24
testスレ
2
:
名無しさん
:2009/07/01(水) 02:53:10
/*** インクルードファイル ***/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int Num = 10; /* データ人数 */
int* point_ptr; /* 得点を記録する領域のポインタ */
int* rank_ptr; /* 順位を記録する領域のポインタ */
int i; /* point_ptrのオフセットカウンタ */
int j; /* rank_ptrのオフセットカウンタ */
int* rank_sort; /* ソートした順位を記録する領域のポインタ */
int k; /* ちょっと入れとく用変数 */
int no[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; /* 番号に使う */
/*** 領域確保 ***/
point_ptr = (int*)calloc(Num,sizeof(int));
rank_ptr = (int*)calloc(Num,sizeof(int));
rank_sort = (int*)calloc(Num,sizeof(int));
/*** データの入力 ***/
i = 0;
while( i < Num ){
scanf("%d",(point_ptr + i));
i++;
}
/***
*** 順位付け
***/
/*** 最初の人から順番に自分の順位を調べる ***/
for (i = 0; i < Num; i++) {
/*** 順位を1に初期化 ***/
*(rank_ptr + i) = 1;
*(rank_sort + i) = 1;
/*** 自分と全員の得点を比べ自分より高い得点の人がいたら ***/
/*** 順位を1足していく ***/
for (j = 0; j < Num; j++) {
if( *( point_ptr + j ) > *( point_ptr + i ) ){
*( rank_ptr + i ) += 1;
}
}
}
/*** ソート ***/
for (i = 0; i < Num; i++) {
for (j = 0; j < Num; j++) {
if( *( rank_ptr + j ) > *( rank_ptr + i ) ){
k = *( rank_ptr + j );
*( rank_ptr + j ) = *( rank_ptr + i );
*( rank_ptr + i ) = k;
k = *(point_ptr + j);
*(point_ptr + j) = *(point_ptr + i);
*(point_ptr + i) = k;
k = no[j];
no[j] = no[i];
no[i] = k;
}
}
}
printf(" 番号 得点 順位\n");
/*** 結果出力 ***/
for (i = 0; i < Num; i++) {
printf("%6d%6d%6d\n",no[i],*(point_ptr + i),*(rank_ptr + i));
}
return(0);
}
3
:
名無しさん
:2009/07/01(水) 03:15:57
>>2
int* rank_sort; /* ソートした順位を記録する領域のポインタ */
の部分と、
領域確保のとこの
rank_sort = (int*)calloc(Num,sizeof(int));
と、
/*** 順位を1に初期化 ***/ の部分の
*(rank_sort + i) = 1;
はまったく必要なかった。ごめん。
4
:
名無しさん
:2009/07/01(水) 12:47:03
#include <stdio.h>
#include <stdlib.h>
int main()
{
int Num = 100; /* データ人数 */
int* number_ptr;/* 順位を記録する領域のポインタ */
int* point_ptr; /* 得点を記録する領域のポインタ */
int* rank_ptr; /* 順位を記録する領域のポインタ */
int i; /* point_ptrのオフセットカウンタ */
int j; /* rank_ptrのオフセットカウンタ */
int p, S;
/*** 領域確保 ***/
number_ptr = (int*)calloc(Num,sizeof(int));
point_ptr = (int*)calloc(Num,sizeof(int));
rank_ptr = (int*)calloc(Num,sizeof(int));
/*** データの入力 ***/
for (i = 0; i<100; i++) {
scanf("%d", (point_ptr + i));
if(*(point_ptr + i) == -1) break; /* 入力終わり */
*(number_ptr + i) = i+1;
}
Num = i; /* データ人数 */
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板