【发布时间】:2015-03-26 06:22:36
【问题描述】:
我在插入排序时遇到了一些问题,从结构中传递数据。 它返回错误:|98|无法在赋值中将 'store' 转换为 'int'。
struct store{
char tag[5];
int cost;
long int volume;
};
void costSort(store storedEntries[], int count);
void volumeSort(store storedEntries[], int count);
int main(){
store record[100];
ifstream fin;
char choice;
int count = 0;
fin.open("stockdata.txt");
//file read in
if(fin.good())
{
while(!fin.eof())
{
fin >> record[count].tag;
fin >> record[count].cost;
fin >> record[count].volume;
count++;
}
count--;
}
cout << "Main Menu:" << endl;
cout << "c: sort data by Cost\nv: sort data by trade Volume\nq: Quit\nEnter Choice: ";
cin >> choice;
switch(choice)
{
case 'C':
case 'c': //costSort(record, count);
break;
case 'V':
case 'v': volumeSort(record, count);
break;
case 'q':
case 'Q': return 0;
break;
}
return 0;
}
void volumeSort(store record[], int count)
{
int p = 0, item = 0;
for(int i=1; i<count; i++){
cout << "test";
item = record[i];
p = (i - 1);
while(p>=0 && item < record[p]){
record[p+1] = record[p];
p--;
}
record[p+1] = item;
cout << record[i].tag << " " << record[i].volume << endl;
}
}
插入排序在函数 void volumeSort() 中。 任何建议将不胜感激,到目前为止我还没有遇到任何问题:S
【问题讨论】:
-
欢迎来到这里,请将检测到错误的代码贴出来。
-
感谢您的提醒,对插入排序有什么建议吗? @philant,检测到错误的代码在函数volumeSort中。行“项目=记录[i];”
-
item = record[i]肯定是错的;item是int,record[i]是store。item < record[p]也是如此。而record[p+1] = item,同样错误。
标签: c++ struct insertion-sort