이 필요합니다 : 변수, 데이터 유형, 수치 사업자 기본 입/출력 논리를 (문, 문을 전환하는 경우) 루프 (대한 수행-잠시 동안) 배열팬케이크 대식가 프로그램. (C++)
프로그램을 작성 사용자는 10 명의 다른 사람들 (사람 1, 사람 2, ..., 사람 10)이 아침에 먹은 팬케이크의 수를 입력하도록 요청합니다. 데이터가 입력되면 프로그램은 데이터를 분석하고 어떤 사람이 대부분의 팬케이크는 아침 식사입니다.
★ 아침 식사로 팬케이크를 먹은 사람이 가장 적은 사람을 출력하도록 프로그램을 수정하십시오.
★★★★ 10 명 모두 먹은 팬케이크의 순으로 목록을 출력하도록 프로그램을 수정하십시오. 즉 사람 4 : 7 팬케이크 사람 8 먹었다 : 10 팬케이크 사람 3 먹은 http://codepad.org/QHnt11CT
#include <iostream>
#include <string>
void bubbleSort(int arr[], int n) {
bool swapped = true;
int j = 0;
int tmp;
while (swapped) {
swapped = false;
j++;
for (int i = 0; i < n - j; i++) {
if (arr[i] > arr[i + 1]) {
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
swapped = true;
}
}
}
}
int main()
{
int pancakeAmount[10];
std::string consumers[10];
for (int i = 0, j = 1; i < 10; i++, j++) {
std::cout << "Please enter an amount of pancakes eaten by consumer"\
" number " << j << "." << std::endl;
std::cin >> pancakeAmount[i];
std::cout << "Please enter the name of the person who ate that amount"\
" of pancakes." << std::endl;
getline(std::cin, consumers[i]);
}
std::cout << "The results from least amount eaten to the greatest amount"\
" eaten are as follows:" << std::endl;
bubbleSort(pancakeAmount, 10);
for (int k = 0; k < 10; k++) {
std::cout << pancakeAmount[k] << std::endl;
}
return 0;
}
: 0 팬케이크
내가 쓴
현재 버전을 먹었다 : 4 팬케이크 ... 사람 5 먹었다
이것이 내가 현재 작업하고있는 문제입니다. 현재이 문제의 처음 두 가지 목표는 주목할만한 문제없이 해결되었습니다.
그러나 세 번째 목표는 조금 더 어려워졌습니다. 적절한 라벨을 사용하여 정렬 된 목록을 디자인/구현하는 데 어려움을 겪고 있습니다. 47 행에서 해당 금액을 줄 이름이나 라벨을 얻으려고합니다.
콘솔에 할당 할 금액을 받아들이지 만 getline() 함수 호출을 완전히 무시하고 다른 금액을 물어 보는 문제가 발생합니다. "std :: cin >> pancakeAmount [i]"가 호출되기 전에 getline() 함수가 호출되면 첫 번째 루프에서 입력을 줄 수 있지만 연속 루프는 getline() 함수가 발생했을 때 발생한 오류를 생성합니다. 코드에서 원래 위치입니다.
부적절한 방식으로 문자열 배열을 사용하려고합니까, 아니면 getline() 함수가 제대로 사용되지 않습니까?
인가? –
★★★★★ 귀하의 "진짜"질문에 새로운 라인을 추가하십시오. 대답을 기대한다면 주문을하지 말고 질문에 약간의 노력을 기울이십시오. – ereOn
왜 다른 줄에 입력해야합니까? 당신의 의견대로 "name #"을 가질만큼 쉬울 것입니다. 대안 구현으로 각 "팬케이크 레코드"를 클래스 또는 구조체로 저장할 수 있습니다. 그런 다음 해당 유형의 배열을 만듭니다. 목록을 탐색 할 때 전체 레코드를 이동할 수 있습니다 (포인터를 움직이는 것이 더 효율적이지만 작은 크기의 세트로 전체 복사본을 얻을 수 있음). 정렬이 끝나면 전체 구현을 위해 목록을 이동하고 최단 횟수의 팬케이크를 기록합니다. – ccozad