scanf 및 두 개의 문자열에 문제가 있습니다.C : scanf 및 문자열
char city1[11], city2[11];
for(int i = 0; i < (m + k); i++) {
scanf("%s %s", city1, city2);
}
(m + k) thimes 두 문자열 - citites의 이름을 읽어야합니다. 문제는 내가 어떤 문자열을 쓸 때 언론은 아무것도 입력하지 않는다는 것이다. 포인터가 화면에 있지만 아무 것도 할 수 없습니다. scanf 후에 printf로 무엇인가 쓰려고했지만 작동하지 않습니다. :/
더 코드 :
코드에서 당신이 m 또는 시간을 참조하지 않기 때문에 나는 숫자 10 (m의 + h를) 대체했다int n, m, k;
do {
scanf("%d %d %d", &n, &m, &k);
} while(n < 2 || n > 10001 || -1 < m || m > 100001 || -1 < k || k > 100001);
city* cities = (city*)malloc(n*sizeof(city));
path* paths = (path*)malloc((m + k)*sizeof(path));
int addCities = 0;
char city1[11], city2[11];
for(int i = 0; i < (m + k); i++) {
scanf("%s %s", city1, city2);
printf("ok");
if(addCities < n && !isListed(cities, n, city1)) { // if city1 is not into cities
// add it
strcpy(cities[addCities].name, city1);
cities[addCities].prev = NO_PARENT;
addCities++;
}
paths[i].i = getCityNumber(cities, n, city1); // number of city1
if(addCities < n && !isListed(cities, n, city2)) { // if city2 is not into cities
// add it
strcpy(cities[addCities].name, city2);
cities[addCities].prev = NO_PARENT;
addCities++;
}
paths[i].j = getCityNumber(cities, n, city1); // number of city2
if(i >= m)
scanf("%d", &paths[i].price);
}
완전한 예를 보여주십시오. –
이 코드 스 니펫은 'C'와 같습니다. 태그를 수정하십시오 –
전체 코드를 알려주시겠습니까? 어디서 m 정의되지 않았는가? – zmo