-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
46번 tmp질문드립니다
20.12.16 18:57 작성 조회수 146
0
tmp값을 저기(★)에 쓰면 왜 출력값이 다르게 나오는지 궁금합니다
#include <stdio.h>
#include<math.h>
int arr[2][7];
int main() {
int i,j,n,k,s,y,tmp=0;
double sum=0;
scanf("%d %d",&n,&k);
for(i=0;i<n;i++){
scanf("%d %d",&s,&y);
arr[s][y]++;}
for(i=0;i<=1;i++){
for(j=1;j<=2;j++){
tmp=tmp+arr[i][j];}
}
sum=sum+ceil(tmp/(double)k);
tmp=0; ★
for(i=0;i<=1;i++){
for(j=3;j<=5;j=j+2){
tmp=tmp+arr[i][j];
tmp=tmp+arr[i][j+1];
sum=sum+ceil(tmp/(double)k);}
}
printf("%d\n",(int)sum);
return 0;
}
답변을 작성해보세요.
1
김태원
지식공유자2020.12.17
안녕하세요^^
3학년부터 6학년까지는 남학생끼리만, 여학생끼리만 방을 배정해야 하고, 또한 3, 4학년 끼리만, 5, 6학년끼리만 구분해서 방을 배정합니다. 즉 각 구분을 따로 인원수를 카운팅해야 하는데 tmp을 별위치에서 0으로 초기화하고 이중for문 안에서 초기화하지 않으면 이런 구분을 하지 않고 다 더해버리는 것입니다.
0
eagle1129
질문자2020.12.18
이중for문 안에 tmp=0을 대입해야지 3,4학년 값을 구하고 tmp를 다시 0으로 초기화 하고 다시 또 5,6학년 값을 구하는군요,만약 ★위치에 tmp=0을 대입 해버리면 3,4,5,6학년값 모두 tmp값에 축적돼서 구분이 안가게되는거구요.. 이해했습니다 답변 감사합니다
답변 2