혹시 여기 C언어 황 있으신가요
게시글 주소: https://dev.orbi.kr/00030312853

21번째 줄 avg변수값이 계속 정수로 저장되는지
22번째 줄 출력이 0.0으로 출력됩니당
무엇이 문제인가요 도와주세욧....
모든 변수가 double이라서 자료형 관련된건 하나도 걱정 안했거든요
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
여기는 어딜까요??? 42 107
와이프 건강검진을 따라왔는데 계속 안나오네요ㅠㅠ 더 이상은 기다릴수 없어서...ㅎㅎㅎ
저거 코드 ㄷ댓글로 복붙좀
C언어 청정수로서 얘기하자면 printf 저거 중괄호 밖에 써야 하는 거 아닌가요
#include
void get_points(double(*point)[2], double row)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < row; j++)
{
printf("학번 %d, 시험 %d : ", i + 1, j + 1);
scanf("%f", &point[i][j]);
}
}
}
void calculate_average(double(*point)[2], double row)
{
double avg = 0;
for (int i = 0; i < 3; i++)
{
avg = (point[i][0] + point[i][1]) / 2;
printf("학번%d 평균 : %.1f\n", i + 1, avg);
}
}
int main()
{
double exam_points[3][2] = { 0, };
get_points(exam_points, 2);
printf("\n");
calculate_average(exam_points, 2);
return 0;
}
들여쓰기가 안되네요
/ 2 말고 / 2.0 해보실래요?
해봤는데 그래도 마찬가지...0.0출력되요...
입력에 문제가있는거같은데여
scanf문제인가요;;
일단 사소한거 부터 고처봐요
%f 를 %lf로
lf문제였네요... 아 내 과제점수 20%
감사합니다ㅠㅠㅠㅠ
다행이네여
비쥬얼스튜디오는 %f로 해도 먹히는줄 알았는데 아니었나봐요 scanf라 그런가
그런거 같아요 scanf라서 어쨋든 감사합니당
흠 입력 쪽 보고 있는데 뭐지
lf문제인거 같아요 윗분말대로 lf바꿧더니 해결되는데....왜 그런지도 의문
avg 변수의 자료형이 double형이라서 포맷을 %lf로 해줘야 정상적으로 출력되요
%f는 float형 출력할 때 자료형
근데 교수님들도 출력할때 %f쓰셔서 그냥 따로 안보고 그런가보다 했는데 정확하게 공부 안한게 이럴때 타격이 크네요...
물론 이렇게 컴파일러 설정에 따라서 %f로 써도 출력되게 할 수는 있지만..
문법상으론 %lf가 맞으니 편의성에 맞게 쓰되 정확히 알고 계시면 될거 같네요
그럼 scanf함수에서는 임의로 상위 자료형에 하위 자료형이라도 쓸 수 없다고 이해하면 될까요??
double형 변수에 %d, %f로 값을 넣는 것을 말씀하시는거라면 쓸 수 없습니다
수학에서 정수는 실수의 부분집합이지만, 컴퓨터에서는 아예 정의되는 방식이 달라서요..
ㅋㅋㅋㅋ원래 c가 format string 이해하는 게 거지같죠 컴퓨터구조를 알아야 납득이 가기 때문에
부동 소수점 표현 방식을 공부해보세영
도움이 될겁니다.