我在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