컴퓨터프로그래밍Ⅱ[JW0004-3]

Post Reply
s201421709
Posts: 1
Joined: Fri Oct 07, 2016 10:00 pm

컴퓨터프로그래밍Ⅱ[JW0004-3]

Post by s201421709 »

경고 C4473 'printf': 서식 문자열에 대한 인수가 충분하게 전달되지 않았습니다. 42
식에 개체 포인터 형식이 있어야 합니다.42
오류 C2109 첨자는 배열 또는 포인터 형식을 사용해야 합니다.42
이런식에 오류와 경고 목록이 생성되는데..어떻게 해결해야하나요?
14.2포인터 배열 실전 예제 3번 문제 질문드립니다.

Code: Select all

#include <stdio.h>

int avground(double avg); //반올림 함수 avg+round

int main(void)
{
	int x, y, temp;
	int sum;

	int arrsale[4][7] = {   //지점 4곳,1~6월평균
		{70,45,100,92,150,81},
		{88,92,77,30,52,55},
		{50,90,88,75,77,49},
		{120,92,80,150,130,105}
	};
	char arrstr[4][10] = { "관악점","강남점","명동점","대림점" };
	int sort[4] = { 0,1,2,3 };  //평균 순위 구하기위한 배열

	for (x = 0; x < 4; x++) {
		sum = 0;
		for (y = 0; y < 6; y++) {
			sum += arrsale[x][y];
		}
		arrsale[x][y] = avground(sum / 6.0);
	}
	for (x = 0; x < 4 - 1; x++) {
		for (y = x + 1; y < 4; y++) {
			if (arrsale[x][6] < arrsale[y][6]) {  //만약 뒤가 높으면 앞과 교환
				temp = sort[x];
				sort[x] = sort[y];
				sort[y] = temp;
			}
		}
	}
	printf("실적별 출력...\n");
	printf("지점  1월\t2월\t3월\t4월\t5월\t6월\t평균\n");
	
	for (x = 0; x < 4; x++) {
		printf("%s", arrstr[sort[x]]);
		for (y = 0; y < 7; y++) {
			printf("%3d\t", arrsale[sort[x][y]]);
		}
		printf("\n");
	}
	printf("지점별 출력...\n");
	printf("지점  1월\t2월\t3월\t4월\t5월\t6월\t평균\n");

	for (x = 0; x < 4; x++) {
		printf("%s", arrstr[x]);
		for (y = 0; y < 7; y++) {
			printf("%3d\t", arrstr[x][y]);
		}
		printf("\n");
	}
	system("pause");
}

int avground(double avg)  //반올림 계산 함수
{
	int a;
	double b;
	int round;
	
	a = (int)avg;  //버림 값을 a 저장
	b = avg - a; //소수점 값을 b 저장

	if (b >= 0.5) {
		round = a + 1;
	}
	else {
		round = a;
	}
	
	return round;
}

sungbum
Posts: 12
Joined: Sun Jan 04, 2015 10:06 pm

Re: 컴퓨터프로그래밍Ⅱ[JW0004-3]

Post by sungbum »

경고 C4473 'printf': 서식 문자열에 대한 인수가 충분하게 전달되지 않았습니다. 42
식에 개체 포인터 형식이 있어야 합니다.42
오류 C2109 첨자는 배열 또는 포인터 형식을 사용해야 합니다.42
이런식에 오류와 경고 목록이 생성되는데..어떻게 해결해야하나요?

-------

올린 에러에 대한 답이 있습니다.
연구실 서버에서 코드를 컴파일해보니, 41번째 줄 printf("%3d\t", arrsale[sort[x][y]]); 이 에러인데,
sort라는 배열은 일차원으로 선언하고, 출력문에서는 sort를 이차원 배열로 출력하도록 되어있어서 에러가 발생하네요.

에러를 자세히 보면 에러를 다 잡을수 있어요. :D

그리고 윈도우 환경에서 코딩을 하고 있는거 같은데, 불편하더라도 꾸준히 리눅스 환경에서 작업을 하는것을 추천해요.

마지막으로 글 제목은 컴퓨터프로그래밍Ⅱ[JW0004-3] 이 아니라 [JW0004-3]컴퓨터프로그래밍Ⅱ 으로 작성하시면 더 보기 좋을거 같습니다. ;)

Post Reply