描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据完成图书信息表的创建,然后计算所有图书的平均价格,将所有低于平均价格的图书价格提高20%,所有高于或等于平均价格的图书价格提高10%,最后逐行输出价格修改后的图书信息。
输入
输入n+1行,前n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第n+1行是输入结束标志:0 0 0(空格分隔的三个0)。其中书号和书名为字符串类型,价格为浮点数类型。
输出
总计n+1行,第1行是修改前所有图书的平均价格,后n行是价格修改后n本图书的信息,每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。
输入样例 1
9787302257646 Data-Structure 35.00 9787302164340 Operating-System 50.00 9787302219972 Software-Engineer 32.00 9787302203513 Database-Principles 36.00 9787810827430 Discrete-Mathematics 36.00 9787302257800 Data-Structure 62.00 9787811234923 Compiler-Principles 62.00 9787822234110 The-C-Programming-Language 38.00 0 0 0
输出样例 1
43.88 9787302257646 Data-Structure 42.00 9787302164340 Operating-System 55.00 9787302219972 Software-Engineer 38.40 9787302203513 Database-Principles 43.20 9787810827430 Discrete-Mathematics 43.20 9787302257800 Data-Structure 68.20 9787811234923 Compiler-Principles 68.20 9787822234110 The-C-Programming-Language 45.60
#include<bits/stdc++.h>
using namespace std;
#define Max 1000
struct Book{
char id[50];
char name[50];
float price;
Book* next;
};
int main(){
Book *head=NULL,*tail=NULL,*temp=NULL;
int count=0;
float sum=0;
while(1){
char id[50];
char name[50];
float price;
cin>>id>>name>>price;
if(strcmp(id,"0")==0&&strcmp(name,"0")==0&&price==0)
{
break;
}
// 分配新内存给temp
temp = new Book;
strcpy(temp->id,id);
strcpy(temp->name,name);
temp->price=price;
sum+=price;
count++;
if(head==NULL&&tail==NULL){
head=temp;
tail=temp;
}
else{
tail->next=temp;
tail=tail->next;
}
}
sum=sum/count;
cout<<fixed<<setprecision(2)<<sum<<endl;
temp=head;
for(int i=0;i<count;i++){
if(temp->price>=sum){
temp->price+=temp->price*0.1;
}
else{
temp->price+=temp->price*0.2;
}
temp=temp->next;
}
temp=head;
for(int i=0;i<count;i++){
cout<<temp->id<<" "<<temp->name<<" "<<fixed<<setprecision(2)<<temp->price<<endl;
temp=temp->next;
}
// 释放内存
while (head != NULL) {
temp = head;
head = head->next;
delete temp;
}
}
标签:216,存储,name,temp,price,head,tail,链式,图书
From: https://blog.csdn.net/weixin_70149739/article/details/145292950