정보올림피아드 문제중 한개를 써봤는데 안뜨네요 ㅠ;
하린
질문 제목 : 정보올림피아드 문제중 한개를 써봤는데 안뜨네요 ㅠ;질문 내용 : n명의 학생들이 모인 초등학교 반에서 학급회장 선거를 하려고 한다. 그 중 3명이 회장후보로 나왔고, 이들에 대한 선호도를 n명의 학생들 각각에게 적어내도록 하였다. 세 명의 후보는 후보 1번, 후보 2번, 후보 3번이라 한다.
모든 학생은 3명의 후보 중에서 가장 선호하는 후보에게는 3점, 두 번째로 선호하는 후보에게는 2점, 가장 선호하지 않는 후보에게는 1점을 주어야 한다. 3명의 후보에 대한 한 학생의 선호 점수는 모두 다르며, 1점, 2점, 3점이 정확히 한 번씩 나타나야 한다.
후보의 최종 점수는 학생들로부터 받은 자신의 선호도 점수를 모두 더한 값이 된다. 그러면 3명의 후보 중 가장 큰 점수를 받은 후보가 회장으로 결정된다. 단, 점수가 가장 큰 후보가 여러 명인 경우에는 3점을 더 많이 받은 후보를 회장으로 결정하고, 3점을 받은 횟수가 같은 경우에는 2점을 더 많이 받은 후보를 회장으로 결정한다. 그러나 3점과 2점을 받은 횟수가 모두 동일하면, 1점을 받은 횟수도 같을 수밖에 없어 회장을 결정하지 못하게 된다.
여러분은 선호도 투표를 통해 얻은 세 후보의 점수를 계산한 후, 유일하게 회장이 결정되는 경우에는 회장으로 결정된 후보의 번호(1, 2, 3 중 한 번호)와 최고 점수를 출력하고, 회장을 결정하지 못하는 경우에는 번호 0과 최고 점수를 출력하는 프로그램을 작성하시오.
입력 파일의 첫째 줄에는 반의 학생들의 수 n(3≤n≤1,000)이 주어진다. 다음 n개의 각 줄에는 각 학생이 제출한 회장후보 3명에 대한 선호 점수가 주어지는 데, 첫 번째 점수는 후보 1번에 대한 점수이고 두 번째 점수는 후보 2번에 대한 점수이고 세 번째 점수는 후보 3번에 대한 점수이다. 이 세 점수는 서로 다르며, 1, 2, 3이 정확히 한 번씩 나타난다.
학생들의 선호도 투표 결과로부터, 회장이 유일하게 결정되는 경우에는 회장으로 결정된 후보의 번호와 최고 점수를 출력하고, 유일하게 결정할 수 없는 경우에는 0과 최고 점수를 출력한다.
ex) 입력 ex) 출력
6 1 13
2
2 3 1
3 1 2
1 2 3
3 1 2
1 2 3
이렇게 되야 하는데 제가 이렇게 짜봤거든요
#includestdio.h
#define m 1001
int sum1[m];
int sum2[m];
int sum3[m];
int su1[4];
int su2[4];
int su3[4];
int main(void)
{
int m;
int i;
int n1, n2, n3;
int total1, total2, total3;
file *fp=fopen(input.txt, r);
file *fl=fopen(output.txt, w);
if(fp==null){
puts(파일 오픈 실패!);
return 0;
}
fscanf(fp,%d, &m);
for(i=1;i=m;i++)
{
fscanf(fl,%d %d %d, &n1, &n2, &n3);
sum1[i]=n1;
sum2[i]=n2;
sum3[i]=n3;
if(n1==1){
su1[1]++;}
else if(n1==2){
su1[2]++;}
else if(n1==3){
su1[3]++;}
if(n2==1){
su2[1]++;}
else if(n2==2){
su2[2]++;}
else if(n2==3){
su2[3]++;}
if(n3==1){
su3[1]++;}
else if(n3==2){
su3[2]++;}
else if(n3==3){
su3[3]++;}
}
total1=su1[1]+(2*su1[2])+(su1[3]*3);
total2=su2[1]+(2*su2[2])+(su2[3]*3);
total3=su3[1]+(2*su3[2])+(su3[3]*3);
if(total1total2 && total1total3){
fprintf(fl,1 %d, su1[1]+(su1[2]*2)+(su1[3]*3));
return;
}
else if(total2total1 && total2total3){
fprintf(fl,2 %d, su2[1]+(su2[2]*2)+(su3[3]*3));
return;
}
else if(total3total2 && total3total1){
fprintf(fl,3 %d, su3[1]+(su2[2]*2)+(su3[3]*3));
return ;
}
for(i=m-1;i=0;i--)
{
if(su1[i]su2[i]&&su1[i]su3[i])
{
fprintf(fl,1 %d, su1[1]+(su1[2]*2)+(su1[3]*3));
return 0;
}
else if(su2[i]su1[i] && su2[i]su3[i])
{
fprintf(fl,2 %d, su2[1]+(su2[2]*2)+(su3[3]*3));
return 0;
}
else if(su3[i]su2[i] && su3[i]su1[i])
{
&nbnbsp;fprintf(fl,3 %d, su3[1]+(su2[2]*2)+(su3[3]*3));
return 0;
}
}
fprintf(fl,0 %d, su3[1]+(su3[2]*2)+(su3[3]*3));
fclose(fp);
fclose(fl);
}
여기서 문제가 출력이 계속 0 0 나와서 ㅠㅠ 어떻게 해야 할지 모르겠어여 ㅠ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700562 | 함수포인터에서요 (7) | 소심한여자 | 2025-07-06 |
2700530 | 전처리문 질문입니다. (1) | 아놀드 | 2025-07-05 |
2700510 | c언어를 어케하면 잘할수 있을까요.. | 연연두 | 2025-07-05 |
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
2700287 | 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) | 아련나래 | 2025-07-03 |
2700264 | 문자와 숫자 동시에 입력??? | 글고운 | 2025-07-03 |
2700236 | txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) | 미국녀 | 2025-07-03 |
2700211 | 전위 연산자 (2) | 어른처럼 | 2025-07-02 |
2700183 | C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; | 피스케스 | 2025-07-02 |
2700150 | 꼭좀 도와주세요ㅠㅠㅠ | 호습다 | 2025-07-02 |
2700095 | 연산문제...질문... | 오빤테앵겨 | 2025-07-01 |
2700070 | while문 , 3의배수 출력하는 프로그램좀 짜주세욤. | 횃불 | 2025-07-01 |
2700041 | 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? | 헛장사 | 2025-07-01 |
2700012 | 배열// (1) | 전갈자리 | 2025-07-01 |
2699895 | 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) | 선아 | 2025-06-30 |