승무원이 "s"값의 전체 공간을 파고 값 "T"로 변경하고 매번 for 루프를 사용하는 대신지도 구조 인쇄 기능을 만드는 데 도움이 될 수 있다면 출력이 이렇게 출력되어야합니다 우리는 크게 너무! : 당신이 승무원 일을 보내려고 2 차원 배열 구조의 값을 다른 값으로 대체하고 C의 2 차원 배열 구조에 대한 함수를 어떻게 인쇄합니까?
Crew Dig Carry
1 3 1
2 2 5
3 4 1
4 1 3
4s 1s 3s
1s 2s 3s
1s 5s 1s
1 3
은이 섹션에서 모든 모래를 제거했습니다!
승무원 2를 어디로 보내시겠습니까?
4s 1s 1T
1s 2s 3s
1s 5s 1s
2
내가 지금까지 가지고 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUMCREW 4
#define MAXHOUR 8
#define MINHOUR 1
#define ROW 3
#define COL 3
struct pirate {
int dig;
int carry;
};
struct map {
int sand;
int treasure;
};
void printcrew(struct pirate * pirate_data);
void print(struct map * map_data);
int main() {
char filename[20];
int hour=8;
int crew=0;
int i, j, x, y;
int space;
struct map map_data[ROW][COL];
struct pirate pirate_data[NUMCREW];
FILE * ifp;
printf("You have arrived at Treasure Island!\n");
printf("What is the name of your map?\n");
scanf("%s", filename);
ifp = fopen(filename, "r");
for (i=0; i<ROW; i++){
for (j=0; j<COL; j++) {
fscanf(ifp, "%d %d", &map_data[i][j].sand, &map_data[i][j].treasure);
}
}
for (i=0; i<NUMCREW; i++) {
fscanf(ifp, "%d", &pirate_data[i].dig);
fscanf(ifp, "%d", &pirate_data[i].carry);
}
fclose(ifp);
for (hour=8; hour >= MINHOUR; hour--) {
printf("\nYou have %d hours left to dig up the treasure.\n", hour);
printcrew(pirate_data);
printf("\n");
for (crew=0; crew<NUMCREW; crew++){
printf("Where would you like to send crew member %d?\n", crew+1);
for(i=0; i<ROW; i++) {
for (j=0; j<COL; j++) {
printf("%ds\t", map_data[i][j].sand);
if (map_data[i][j].sand == 0) {
printf("%dT\t", map_data[i][j].treasure);
}
}
printf("\n");
}
scanf("%d %d", &x, &y);
map_data[x-1][y-1].sand = map_data[x-1][y-1].sand - pirate_data[crew].dig;
}
}
return 0;
}
void printcrew(struct pirate * pirate_data) {
int i;`
printf("Crew \t Dig \t Carry \n");
for (i=0; i<NUMCREW; i++)
printf("%d \t %d \t %d \n", i+1, pirate_data[i].dig, pirate_data[i].carry);
return;
}
void print(struct map * map_data) {
int i, j;
for(i=0; i<ROW; i++) {
for (j=0; j<COL; j++) {
printf("%ds\t", map_data[i][j].sand);
}
printf("\n");
}
return;
}
내 결과물이 나오고 계속 :
승무원 1을 어디로 보내시겠습니까?
4s 1s 3s
1s 2s 3s
1s 5s 1s
어디에서 승무원 2를 보내시겠습니까?
4s 1s 0s 1T
1s 2s 3s
1s 5s 1s
어디에서 승무원 3을 보내시겠습니까? 기능 '인쇄'에서
: (가) 나는 다음과 같은 오류가 계속 구조체지도 기능을 인쇄로
4s 1s 0s 1T
1s 0s 1T 3s
1s 5s 1s
|
오류 : 첨자 값이 배열도 포인터도 벡터도 아닌 |