我在C++类中遇到了这个问题: 老师创建了一个名字,名字和测试成绩的平行数组。数组被排列成每个数组的第n个元素包含相关信息。编写一个程序,用学生姓氏排序(使用选择排序)数组,以便每个数组的第n项仍包含与正确人员相关的数据。 例如原始阵列数据如下:从文本文件读取信息到文本文件中的3个不同的数组(012)c + +
Ratte Ismella 66
布朗汤姆88
Dyrt菲尔94
登特斯图100
排序后:
Brown Tom 88
Dent Stu 100
Dyrt菲尔·94
Ratte Ismella 66
程序必须连续工作达30名学生。数据必须从数据文件中读取。数据文件的每一行都将包含姓氏,空格,名字,空格和整数分数。程序必须在排序前后显示数据。
我知道我应该包括一个选择排序和交换功能,但我不知道该怎么做。这里是我迄今为止它不是很好
#include "stdafx.h"
#include <iomanip>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void selsort(int a[], int size)
void swap(string, &s1,string &s2)
void swap (int &i1, int &i2)
int main()
{
int counter=0;
ifstream inputFile;
string inputFileName;
cout<<"Enter the path and filename.";
getline(cin, inputFileName);
inputFile.open (inputFileName.c_str());
string LINE;
while (!inputFile.eof())
{
getline (inputFile, LINE)
cout<<LINE<<endl;
}
我知道我应该读取文件作为字行不,我不知道如何把它们变成阵列基于姓氏名字,和得分,我的selsort和swap声明中使用的变量都是错误的,最后我应该只使用1维数组。
我认为如果OP使用单个数组而不是3,则实现起来可能更容易。 – Pepe 2011-04-25 16:44:50
@ P.R。阅读问题标题。 – 2011-04-25 16:45:34
嗯,是的,不幸的是它确实要求3个并行阵列:/ – Pepe 2011-04-25 16:47:56