글
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct {
char name[10];
double s[3];
} data;
double average(data);
void best(data *,int);
void nameprinting(data,int);
void score(char*,double);
void namesearch(data*,char*);
int rank(data *,int);
int main(int argc, char **argv){
FILE *inputdata;
inputdata=fopen(argv[1],"r");
data a[10];
int i;char temp[20];
for(i=0;i<10;i++){
fscanf(inputdata,"%s\n%lf,%lf,%lf\n",a[i].name,&a[i].s[0],&a[i].s[1],&a[i].s[2]);
}
if(atoi(argv[2])==1){
char n[10];strcpy(n,argv[3]);
namesearch(a,n);
}
else if(atoi(argv[2])==2){
best(a,atoi(argv[3]));
}
else{
printf("error!\n");
}
return 0;
}
void namesearch(data *a, char *n){
int i;
for(i=0;i<10;i++){
if(strcmp(a[i].name,n)==0){
nameprinting(a[i],rank(a,i));
}
}
}
void nameprinting(data a,int ranking){
int f;
char a1[2],a2[2],a3[2];
score(a1,a.s[0]);
score(a2,a.s[1]);
score(a3,a.s[2]);
printf("%s : %lf %s\t%lf %s\t%lf %s\t%lf\t%d\n",a.name,a.s[0],a1,a.s[1],a2,a.s[2],a3,average(a),ranking);
}
void score(char *sco,double a){
if(a<60.0){
strcpy(sco,"F");
return;
}
else if(a<70.0){
strcpy(sco,"D");
return;
}
else if(a<80.0){
strcpy(sco,"C");
return;
}
else if(a<90.0){
strcpy(sco,"B");
return;
}
else {
strcpy(sco,"A");
}
return;
}
double average(data a){
return (a.s[0]+a.s[1]+a.s[2])/3.0;
}
int rank(data *a,int i){
int ranking=1;
int j;
for(j=0;j<10;j++){
if(average(a[j])>average(a[i])){
ranking++;
}
}
return ranking;
}
void best(data *a,int i){
int j;
data temp=a[0];
for(j=1;j<10;j++){
if(a[j].s[i]>temp.s[i]){
temp=a[j];
}
}
nameprinting(temp,1);
}
#include<stdlib.h>
#include<string.h>
typedef struct {
char name[10];
double s[3];
} data;
double average(data);
void best(data *,int);
void nameprinting(data,int);
void score(char*,double);
void namesearch(data*,char*);
int rank(data *,int);
int main(int argc, char **argv){
FILE *inputdata;
inputdata=fopen(argv[1],"r");
data a[10];
int i;char temp[20];
for(i=0;i<10;i++){
fscanf(inputdata,"%s\n%lf,%lf,%lf\n",a[i].name,&a[i].s[0],&a[i].s[1],&a[i].s[2]);
}
if(atoi(argv[2])==1){
char n[10];strcpy(n,argv[3]);
namesearch(a,n);
}
else if(atoi(argv[2])==2){
best(a,atoi(argv[3]));
}
else{
printf("error!\n");
}
return 0;
}
void namesearch(data *a, char *n){
int i;
for(i=0;i<10;i++){
if(strcmp(a[i].name,n)==0){
nameprinting(a[i],rank(a,i));
}
}
}
void nameprinting(data a,int ranking){
int f;
char a1[2],a2[2],a3[2];
score(a1,a.s[0]);
score(a2,a.s[1]);
score(a3,a.s[2]);
printf("%s : %lf %s\t%lf %s\t%lf %s\t%lf\t%d\n",a.name,a.s[0],a1,a.s[1],a2,a.s[2],a3,average(a),ranking);
}
void score(char *sco,double a){
if(a<60.0){
strcpy(sco,"F");
return;
}
else if(a<70.0){
strcpy(sco,"D");
return;
}
else if(a<80.0){
strcpy(sco,"C");
return;
}
else if(a<90.0){
strcpy(sco,"B");
return;
}
else {
strcpy(sco,"A");
}
return;
}
double average(data a){
return (a.s[0]+a.s[1]+a.s[2])/3.0;
}
int rank(data *a,int i){
int ranking=1;
int j;
for(j=0;j<10;j++){
if(average(a[j])>average(a[i])){
ranking++;
}
}
return ranking;
}
void best(data *a,int i){
int j;
data temp=a[0];
for(j=1;j<10;j++){
if(a[j].s[i]>temp.s[i]){
temp=a[j];
}
}
nameprinting(temp,1);
}
RECENT COMMENT