好久没发帖子了,今年准备考研就顺便记录一下学习记录吧。一直到今年考前一天。
使用C++,C 混合语法。C也快忘完了顺便复习、、[C++] 纯文本查看 复制代码 #include <iostream>
//需求:使用结构数组输入10本书的名称和单价,调用函数按照书名的字母顺序序进行排序,在主函数输出排序结果。
#include <string>
using namespace std;
typedef struct { // 不加Book 不能 struct Book 加上可以
string name;
float price;
}Book;
// 排序
void sort(Book* books[],int size){
int flag;
for(int i=0;i<size-1;i++){
flag = 1;
for(int j = 0; j<size-i-1;j++){
Book* tmp;
if(strcmp(books[j]->name.c_str(),books[j+1]->name.c_str())>0){//升序
tmp = books[j+1];
books[j+1] = books[j];
books[j] = tmp;
flag = 0;
}
}
if(flag)
//排序完成
break;
}
}
// 输出
void pin(Book* books[],int size){
int i = 0;
while(i<size){
cout<<books[i]->name<<" "<<books[i]->price<<endl;
i++;
}
}
int main(){
int i = 0,max=5;
Book* books[5];
while(i<max){
Book* book = new Book;//实例化结构体
cin>>book->name>>book->price;
books[i] = book;
i++;
}
cout<<"排序前"<<endl;
pin(books,max);
sort(books,max);
cout<<"排序后"<<endl;
pin(books,max);
return 0;
}
|