2007A
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[07年度-ACM-ICPC国内予選]]
***2007A [#i0a53608]
-''Blue Screenの解答''&br;
回答者:[[ゆん]]&br;
所要時間:19分&br;
予選時:クリア
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <conio.h>
int main()
{
//ファイル処理-----------------
char FileName[256];
printf("ファイル名を入れて〜");
scanf("%256s", FileName);
FILE* fpIn = fopen(FileName, "r");
FILE* fpOut = fopen("output.txt", "w");
//-----------------------------
int A;
while(1){
int sum = 0, max = 0, min = 1000, n, s;
fscanf(fpIn, "%d", &n);
if(n == 0) break;
for (int j = 0; j < n; ++j){
fscanf(fpIn, "%d", &s);
max = max > s? max : s;
min = min < s? min : s;
sum += s;
}
sum -= max;
sum -= min;
fprintf(fpOut, "%d\n", sum / (n - 2));
printf("%d\n", sum / (n - 2));
}
printf("終了!");
//終了処理---------------------
fclose(fpOut);
getch();
return 0;
}
-''include studioの解答''&br;
回答者:[[ほへい]]&br;
所要時間:たぶん10分くらい&br;
予選時:クリア&br;
ゆん先輩のコードと大筋は一緒です。&br;
#include <stdio.h>
int num_sinpan, max, min;
int points[100];
int answer;
FILE *fp_in, *fp_out;
static char *f_source = "A_in.txt";
static char *f_answer = "A_out.txt";
int main(void)
{
fp_in = fopen(f_source, "r");
fp_out = fopen(f_answer, "w");
while(1) {
int i;
fscanf(fp_in, "%d", &num_sinpan);
if(num_sinpan == 0) break;
answer = 0;
max = 0;
min = 1000;
for(i = 0; i < num_sinpan; i++) {
fscanf(fp_in, "%d", &points[i]);
answer += points[i];
max = (max > points[i]) ? max : points[i];
min = (min > points[i]) ? points[i] : min;
}
answer -= (min + max);
answer /= (num_sinpan - 2);
fprintf(fp_out, "%d\n", answer);
}
fclose(fp_in);
fclose(fp_out);
return 0;
}
終了行:
[[07年度-ACM-ICPC国内予選]]
***2007A [#i0a53608]
-''Blue Screenの解答''&br;
回答者:[[ゆん]]&br;
所要時間:19分&br;
予選時:クリア
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <conio.h>
int main()
{
//ファイル処理-----------------
char FileName[256];
printf("ファイル名を入れて〜");
scanf("%256s", FileName);
FILE* fpIn = fopen(FileName, "r");
FILE* fpOut = fopen("output.txt", "w");
//-----------------------------
int A;
while(1){
int sum = 0, max = 0, min = 1000, n, s;
fscanf(fpIn, "%d", &n);
if(n == 0) break;
for (int j = 0; j < n; ++j){
fscanf(fpIn, "%d", &s);
max = max > s? max : s;
min = min < s? min : s;
sum += s;
}
sum -= max;
sum -= min;
fprintf(fpOut, "%d\n", sum / (n - 2));
printf("%d\n", sum / (n - 2));
}
printf("終了!");
//終了処理---------------------
fclose(fpOut);
getch();
return 0;
}
-''include studioの解答''&br;
回答者:[[ほへい]]&br;
所要時間:たぶん10分くらい&br;
予選時:クリア&br;
ゆん先輩のコードと大筋は一緒です。&br;
#include <stdio.h>
int num_sinpan, max, min;
int points[100];
int answer;
FILE *fp_in, *fp_out;
static char *f_source = "A_in.txt";
static char *f_answer = "A_out.txt";
int main(void)
{
fp_in = fopen(f_source, "r");
fp_out = fopen(f_answer, "w");
while(1) {
int i;
fscanf(fp_in, "%d", &num_sinpan);
if(num_sinpan == 0) break;
answer = 0;
max = 0;
min = 1000;
for(i = 0; i < num_sinpan; i++) {
fscanf(fp_in, "%d", &points[i]);
answer += points[i];
max = (max > points[i]) ? max : points[i];
min = (min > points[i]) ? points[i] : min;
}
answer -= (min + max);
answer /= (num_sinpan - 2);
fprintf(fp_out, "%d\n", answer);
}
fclose(fp_in);
fclose(fp_out);
return 0;
}
ページ名: