게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++ 하는데.. scanf를 하는데 이상해요..
게시물ID : programmer_14404짧은주소 복사하기
작성자 : 복전곰탱이
추천 : 0
조회수 : 454회
댓글수 : 4개
등록시간 : 2015/11/13 03:36:45
일단 소스는 이렇습니다.. 

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main() {
int number;
printf("가고 싶은 경유지의 숫자를 입력해주세요.\n 경유지의 수 : ");
scanf("%d", &number);
char* tour = (char*)malloc(sizeof(char)*(number));
printf("경유지를 입력해주세요.\n");
for(int i = 0; i < number; i++) {
printf("경유지 : ");
scanf("%c", &tour[i]);
}
char f = 'A';
int temp[24];
int count = 0; // tourBus를 만들기 위한 변수
ifstream infile;
infile.open("input.txt");
char** tourBus = (char**)calloc(30,sizeof(char*));
for(int i = 0; i < 30; i++) {
for(int j = 0; j < 24; j++) {
infile >> temp[j];
if(temp[j] == 1) {
count++;
}
}
tourBus[i] = (char*)calloc(count,sizeof(char));
for(int j = 0; j < 24; j++) {
if(temp[j] == 1) {
tourBus[i][j] = 'A'+ j;
}
}
count = 0;
}
int index = 0;
int** place = (int**)calloc(number, sizeof(int*));
for(int i = 0; i < number; i++) {
for(int j = 0; j < 30; j++) {
for(int k = 0; k < sizeof(tourBus[j]); k++) {
if(tour[i] == tourBus[j][k])
count++;
break;
}
}
place[i] = (int*)calloc(count, sizeof(int));
count = 0;
for(int j = 0; j < 30; j++) {
for(int k = 0; k < sizeof(tourBus[j]); k++) {
if(tour[i] == tourBus[j][k]) {
place[i][index] = k;
index++;
break;
}
}
}
index = 0;
}
for(int i = 0; i < number; i++) {
for(int j = 0; j < sizeof(tourBus[i]); j++)
printf("%d ", tourBus[i][j]);
printf("\n");
}
}

빨간색으로 색칠한 부분이..
원래 의도하는거는 number가 3일 때,
경유지 : (입력)
경유지 : (입력)
경유지 : (입력) 이런식인데으로 의도하는데..

경유지 : 경유지 : (입력)
경유지 : (입력)
이렇게 됩니다..

왜 이러는거고 어떻게 고쳐야하나요..?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호