inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

문제로 배우는 C언어

성적표

질문입니다.

217

TAEJEONG KIM

작성한 질문수 1

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문을 돌리는게 더 깔끔한 방법인건지 궁금합니다. 

돌아는 가는데 보기좋지 않고 비효율적인 코드인걸까 궁금해요..!

c

답변 1

0

김태원

안녕하세요^^

입력은 아무렇게 받아도 상관없습니다.

원래는 입력받으면서 바로 구하는 위에 코드가 더 좋은 코드입니다.

기초단계의 강좌이다보니 제가 입력단계와 처리단계를 구분해서 설명하려고 그랬던게 아닌가 싶습니다.

음료수 자판기 출력이 이상하게 나옵니다

0

141

2

i 값 초기화 질문

0

70

2

recipe for targe 'AA.exe' failed

0

62

1

30과 10의 xor

0

191

1

커리큘럼 문의 드립니다

0

232

1

for문에서 sum 관련 질문

0

179

1

이렇게 풀어도 맞는걸까요?

0

253

2

이렇게 풀어도 맞는 풀이일까요?

0

302

1

20페이지 홀,짝,제로 문제에서 이 코드로 짜도 괜찮을까요?

0

257

1

24. 최솟값 구하기

0

332

1

질문 있습니다.

0

324

1

배열을 전역변수로 설정하는 이유

1

665

1

41. A를 #으로에서 질문 있습니다.

0

291

1

20번 소수 판별하기에서 질문 있습니다.

0

422

1

42번 bus error;;;

0

612

1

정수형 배열에서 배열 크기

0

395

1

38. 자리찾기 커지는 방향으로..

0

303

1

37. 배열의 회전에서 ...

0

280

1

1차원 배열에서

0

270

1

지수연산에서

0

300

1

7.연필 개수 문제

0

379

1

a=(int)a 에서 왜 괄호를 붙이나요 a=int a 는 왜안되나요

0

844

1

섹션 6. 소수

0

320

1

왜 2중for문을 두개 쓴건가요?

0

238

1