void insertionSort (int arrtosort[], int size)
{
int temp = arrtosort[0];
for(int i = 1; i < size; i++)
{
temp = arrtosort[i];
int j = 0;
for(j = i; j > 0; j--)
if(temp < arrtosort[j - 1])
arrtosort[j] = arrtosort[j - 1];
else break;
arrtosort[j-1] = temp;
}
}
我正在尝试使用此排序功能对案例内的 txt 文件进行排序。
我尝试的是
case 1:
insertionSort(fileid,SIZE);
ingrades.open("dataout.txt");
for (idx=0;idx<SIZE;idx++)
{
int id,n_grade;
string l_grade;
ingrades>>id>>n_grade>>l_grade;
for(int i=0;i<SIZE;i++)
{
if(fileid[i]==id)
{
out.open("data.txt");
out<<id<<" "<<n_grade<<" "<<l_grade<<endl;
out.close();
}
}
}
ingrades.close();
break;
我用这段代码尝试了不同的变体,不仅仅是写入 txt 文件,而是简单地在控制台中显示它
14731 4
15960 6
15517 8
16638 1
34974 6
32684 4
35157 2
33904 4
23132 7
37344 3
这些是我试图在我的程序中排序的数字字母等级在它遇到案例之前被写入它。我正在尝试做的是使用该功能对文件进行排序并将其写入 txt 文件,或者只是在控制台上显示所有帮助。
另一个问题是,当我使用该功能时,我似乎一遍又一遍地得到相同的数字,而不是所有的数字,就好像其余的被删除并被最大的数字代替