-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
질문입니다.
21.03.17 11:07 작성 조회수 160
0
#include<stdio.h>
struct grade {
int num, math, eng, cLang;
};
int main(){
int n, i, tOrd, temp = 0;
scanf("%d", &n);
grade arr[n];
for(i=0; i<n; i++){
scanf("%d %d %d %d", &arr[i].num, &arr[i].math, &arr[i].eng, &arr[i].cLang);
if(temp < arr[i].math){
temp = arr[i].math;
tOrd = i;
}
}
printf("%d", arr[tOrd].cLang);
return 0;
}
번호와 성적은 한 줄에 입력받는데 왜 저렇게 따로 한줄한줄 scanf를 적어주는 건가요?
scanf("%d %d %d %d", &arr[i].num, &arr[i].math, &arr[i].eng, &arr[i].cLang);
이런식으로 적어도 문제는 없는지, 혹시 보통은 한줄씩 적는걸 선호하는건지 궁금합니다.
그리고 for문을 다시 돌리지 않고 입력받고 나서 바로 수학점수를 비교한 다음
i 변수를 임시로 tOrd 변수에 담아 출력하는 형식으로 짰는데요,
원래 따로 for문을 돌리는게 더 깔끔한 방법인건지 궁금합니다.
돌아는 가는데 보기좋지 않고 비효율적인 코드인걸까 궁금해요..!
답변을 작성해보세요.
0
김태원
지식공유자2021.03.18
안녕하세요^^
입력은 아무렇게 받아도 상관없습니다.
원래는 입력받으면서 바로 구하는 위에 코드가 더 좋은 코드입니다.
기초단계의 강좌이다보니 제가 입력단계와 처리단계를 구분해서 설명하려고 그랬던게 아닌가 싶습니다.
답변 1