所以我正在做运动,我必须要求用户输入10个人吃的煎饼数量,打印出谁吃了最多的煎饼,然后组织从最大到最小的列表,基本上我必须打印出来:< / p>
第3个人:吃了10个煎饼,第5个人:吃了9个煎饼,第8个人:吃了8个煎饼
然而,在使用冒泡排序后,我无法匹配具有正确值的人,因为冒泡排序交换它们!有谁知道有任何方法来解决这个问题?例如,是否有另一种方法来组织数组中的值而不使用冒泡排序?
void getPancakes()
{
int x = 0;
int temp;
for(int y = 0; y < 10; y++)
{
++x;
cout << "How many pancakes did person " << x << " eat?" << endl;
cin >> pancakes[y];
}
}
void displayArray(int theArray[],int sizeOfArray)
{
int temp;
int i,j;
int q = 10;
for(i = 0; i <= sizeOfArray - 1 ; i++)
{
for(j = i+1 ; j < sizeOfArray ; j++)
{
if(theArray[i] < theArray[j])
{
temp = theArray[i];
theArray[i] = theArray[j];
theArray[j] = temp;
}
}
}
cout << endl;
for(i = 0; i < 10; i++)
cout << "Person " << i+1 << " ate " << theArray[i] << " pancakes" << endl;
}
答案 0 :(得分:2)
struct
,这是一个只有公共数据成员的类。这是一个例子:
struct person{
int id;
int pancakes;
};
int main(){
const int totalPeople = 10;
person personArray[totalPeople];
for (int i = 0; i < totalPeople; ++i){
cout << "How many pancakes did person " << i << " eat? ";
personArray[i].id = i;
cin >> personArray[i].pancakes;
}
for (int i = 0; i < totalPeople; ++i){
cout << "id: " << personArray[i].id << "\t" << "Pancakes eaten: " << personArray[i].pancakes << endl;
}
return 0;
}
然后,您可以遍历数组并查看每个人使用'.'
进入该属性时吃过的煎饼数量。
编辑:冒泡排序可以正常使用。