参考答案看底部
-
基于链式存储结构的图书信息表的逆序存储
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息
表的创建,然后将读入的图书逆序存储,逐行输出逆序存储后每本图书的信息。
输入描述
输入
n+1 行,第一行是图书数目 n,后 n 行是 n 本图书的信息(书号、书名、价格),每本
图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。其中书号和书名为字
符串类型,价格为浮点数类型。
输出描述
总计
n 行,第 i 行是原有图书表中第 n-i+1 行的图书的信息(书号、书名、价格),每本图书
信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。
样例输入
6
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
样例输出
9787811234923 汇编语言程序设计教程 21.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787302203513 单片机原理与应用技术 26.00
9787302219972 单片机技术及应用 32.00
9787302164340 程序设计基础(第2版) 20.00
9787302257646 程序设计基础 25.00
提示
使用头插 -
基于链式存储结构的图书信息表的最贵图书的查找
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息
表的创建,然后查找价格最高的图书,输出相应图书的信息。
输入描述
总计输入
n+1 行,其中,第一行是图书数目 n,后 n 行是 n 本图书的信息(书号、书名、价格),
每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。其中书号
和书名为字符串类型,价格为浮点数类型。
输出描述
总计输出
m+1 行,其中,第一行是最贵图书数目(价格最高的图书可能有多本),后 m 行
是最贵图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格
分隔,其中价格输出保留两位小数。
样例输入
6
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811230710 C#程序设计易懂易会教程 32.00
样例输出
2
9787302219972 单片机技术及应用 32.00
9787811230710 C#程序设计易懂易会教程 32.00
-
基于链式存储结构的图书信息表的最爱图书的查找
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息
表的创建,然后根据指定的最爱图书的名字,查找最爱的图书,输出相应图书的信息。
输入描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息
总计n+m+2 行。首先输入 n+1 行,其中,第一行是图书数目 n,后 n 行是 n 本图书的信息
(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。其中书号和书名为字符串类型,价格为浮点数类型。然后输入
m+1 行,其中,第一行是一个整数
m,代表查找 m 次,后 m 行是每次待查找的最爱图书名字。
输出描述
若查找成功:
总计输出
m*(k+1)行,对于每一次查找,第一行是最爱图书数目(同一书名的图书可能有
多本),后
k 行是最爱图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、
价格用空格分隔,其中价格输出保留两位小数。
若查找失败:
只输出以下提示:抱歉,没有你的最爱!
样例输入
6
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
2
数据结构
程序设计基础
样例输出
抱歉,没有你的最爱!
1
9787302257646 程序设计基础 25.00 -
基于链式存储结构的图书信息表的最佳位置图书的查找
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息
表的创建,然后根据指定的最佳位置的序号,查找该位置上的图书,输出相应图书的信息。
输入描述
总计
n+m+2 行。首先输入 n+1 行,其中,第一行是图书数目 n,后 n 行是 n 本图书的信息
(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没
有空格。其中书号和书名为字符串类型,价格为浮点数类型。然后输入 m+1 行,其中,第
一行是一个整数 m,代表查找 m 次,后 m 行每行内容为一个整数,代表待查找的图书的位
置序号。
输出描述
输出
m 行
若查找成功:
输出内容为第 i 次查询的指定位置上的一本图书的信息(书号、书名、价格),书号、书名、
价格用空格分隔,其中价格输出保留两位小数。
若查找失败:
只输出以下提示:抱歉,最佳位置上的图书不存在!
样例输入
6
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
2
2
0
样例输出
9787302164340 程序设计基础(第2版) 20.00
抱歉,最佳位置上的图书不存在! -
基于链式存储结构的图书信息表的新图书的入库
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息
表的创建,然后根据指定的待入库的新图书的位置和图书的信息,将新图书插入到图书表中
指定的位置上,最后输出新图书入库后的所有图书的信息。
输入描述
总计n+3 行。首先输入 n+1 行,其中,第一行是图书数目 n,后 n 行是 n 本图书的信息(书
号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空
格。其中书号和书名为字符串类型,价格为浮点数类型。之后输入第 n+2 行,内容仅为一个
整数,代表待入库的新图书的位置序号。最后输入第 n+3 行,内容为新图书的信息,书号、
书名、价格用空格分隔。
输出描述
若插入成功:
输出新图书入库后所有图书的信息(书号、书名、价格),总计 n+1 行,每行是一本图书的
信息,书号、书名、价格用空格分隔。其中价格输出保留两位小数。
若插入失败:
只输出以下一行提示:抱歉,入库位置非法!
样例输入
6
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
2
9787302265436 计算机导论实验指导 18.00
样例输出
9787302257646 程序设计基础 25.00
9787302265436 计算机导论实验指导 18.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00 -
基于链式存储结构的图书信息表的旧图书的出库
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息
表的创建,然后根据指定的待出库的旧图书的位置,将该图书从图书表中删除,最后输出该
图书出库后的所有图书的信息。
输入描述
总计n+2 行。首先输入 n+1 行,其中,第一行是图书数目 n,后 n 行是 n 本图书的信息(书
号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空
格。其中书号和书名为字符串类型,价格为浮点数类型。之后输入第 n+2 行,内容仅为一个
整数,代表待删除的旧图书的位置序号。
输出描述
若删除成功:
输出旧图书出库后所有图书的信息(书号、书名、价格),总计 n-1 行,每行是一本图书的
信息,书号、书名、价格用空格分隔。其中价格输出保留两位小数。
若删除失败:
只输出以下一行提示:抱歉,出库位置非法!
样例输入
6
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
2
样例输出
9787302257646 程序设计基础 25.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00 -
基于链式存储结构的图书信息表的修改
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据完成图书信息表
的创建,然后计算所有图书的平均价格,将所有低于平均价格的图书价格提高
20%,所有高于或等于平均价格的图书价格提高 10%,最后逐行输出价格修改后的图书信息。
输入描述
输入 n+1 行,前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、
书名、价格用空格分隔,价格之后没有空格。
最后第n+1 行是输入结束标志:0 0 0(空格分隔的三个 0)。
其中书号和书名为字符串类型,价格为浮点数类型。
输出描述
总计
n+1 行,第 1 行是修改前所有图书的平均价格,后 n 行是价格修改后 n 本图书的信息,
每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。
样例输入
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
0 0 0
样例输出
25.50
9787302257646 程序设计基础 30.00
9787302164340 程序设计基础(第2版) 24.00
9787302219972 单片机技术及应用 35.20
9787302203513 单片机原理与应用技术 28.60
9787810827430 工业计算机控制技术——原理与应用 31.90
9787811234923 汇编语言程序设计教程 25.20 -
基于链式存储结构的图书信息表的排序
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据完成图书信息表
的创建,然后将图书按照价格降序排序,逐行输出排序后每本图书的信息。
输入描述
输入n+1 行,前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、
书名、价格用空格分隔,价格之后没有空格。最后第
n+1 行是输入结束标志:0 0 0(空格分隔的三个 0)。
其中书号和书名为字符串类型,价格为浮点数类型。
输出描述
总计
n 行,每行是一本图书的信息(书号、书名、价格),书号、书名、价格用空格分隔。
其中价格输出保留两位小数。
样例输入
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
0 0 0
样例输出
9787302219972 单片机技术及应用 32.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787302203513 单片机原理与应用技术 26.00
9787302257646 程序设计基础 25.00
9787811234923 汇编语言程序设计教程 21.00
9787302164340 程序设计基础(第2版) 20.00 -
基于链式存储结构的图书信息表的创建和输出
题目描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息
表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息。
输入描述
输入n+1 行,其中前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,
书号、书名、价格用空格分隔,价格之后没有空格。最后第
n+1 行是输入结束标志:0 0 0(空格分隔的三个 0)。
其中书号和书名为字符串类型,价格为浮点数类型。
输出描述
总计n+1 行,第 1 行是所创建的图书表中的图书个数,后 n 行是 n 本图书的信息(书号、
书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两
位小数。
样例输入
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
0 0 0
样例输出
6
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302203513 单片机原理与应用技术 26.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787811234923 汇编语言程序设计教程 21.00
提示
使用链式表达 -
基于链存储结构的图书信息表的图书去重
题目描述
出版社出版的任何一本图书的书号(ISBN)都是唯一的,即图书表中不允许包含书号重复的
图书。定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图
书信息表的创建(书号可能重复),然后进行图书的去重,即删除书号重复的图书(只保留
第一本),最后输出去重后所有图书的信息。
输入描述
总计输入
n+1 行,其中,第一行是图书数目 n,后 n 行是 n 本图书的信息(书号、书名、价
格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格(书号可能
重复)。其中书号和书名为字符串类型,价格为浮点数类型。
输出描述
总计输出
m+1 行(m≤n),其中,第一行是去重后的图书数目,后 m 行是去重后图书的信
息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,其中价格
输出保留两位小数。
样例输入
6
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787302257646 程序设计基础 25.00
9787810827430 工业计算机控制技术——原理与应用 29.00
9787302219972 单片机技术及应用 32.00
样例输出
4
9787302257646 程序设计基础 25.00
9787302164340 程序设计基础(第2版) 20.00
9787302219972 单片机技术及应用 32.00
9787810827430 工业计算机控制技术——原理与应用 29.00
提示
参考答案
- 基于链式存储结构的图书信息表的逆序存储
#include <iostream>
#include<iomanip>
using namespace std;
#define MAXSIZE 10000
typedef struct
{
string no;
string name;
double price;
}Book;
typedef struct LNode
{
Book data;
struct LNode *next;
}LNode,*LinkList;
void CreateList_H(LinkList &L)
{
LinkList r,p;int i=0;
L=new LNode;
L->next=NULL;
int n;
cin>>n;
while(1)
{
p=new LNode;
string a,b;
double c;
cin>>a>>b>>c;
p->data.no=a;
p->data.name=b;
p->data.price=c;
p->next=L->next;
L->next=p;
i++;
if(i==n) break;
}
return;
}
void Show(LinkList &L)
{
LinkList p=L->next;
while(p)
{
cout<<p->data.no<<" "<<p->data.name<<" ";
cout<<fixed<<setprecision(2)<<p->data.price<<endl;//保存小数点后两位
p=p->next;
}
}
int main()
{
LinkList L;
CreateList_H(L);
Show(L);
return 0;
}
- 基于链式存储结构的图书信息表的最贵图书的查找
#include<stdio.h>
#include<malloc.h>
typedef struct LNode{
char no[20];
char name[50];
double price;
struct LNode *next;
}LNode,*LinkList;
int main(){
int n;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
scanf("%d",&n);
for(int i=n;i>0;--i){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->no,&p->name,&p->price);
r->next=p;
r=p;
}
r->next=NULL;
LinkList a;
LinkList b;
a=L->next;
b=a->next;
int num=0;
while(b){
if(b->price>a->price){
a=b;
b=b->next;
num++;
}else if(b->price==a->price){
a->next=b;
b=b->next;
num++;
}else{
b=b->next;
}
}
a->next->next=NULL;
printf("%d\n",num);
while(a!=NULL){
printf("%s %s %.2lf\n",a->no,a->name,a->price);
a=a->next;
}
return 0;
}
- 基于链式存储结构的图书信息表的最爱图书的查找
#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef struct
{
char no[20];
char name[50];
double price;
}Book;
typedef struct LNode{
Book book;
struct LNode *next;
}LNode,*LinkList;
int main(){
int n,m,num=0;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
scanf("%d",&n);
for(int i=0;i<n;i++){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->book.no,&p->book.name,&p->book.price);
r->next=p;
r=p;
}
r->next=NULL;
LinkList a;
a=L->next;
scanf("%d",&m);
Book book2[20];
for(int j=0;j<m;j++){
scanf("%s",&book2[j].name);
}
for(int z=0,bo=0;z<m;z++){
while(a!=NULL){
int b=strcmp(book2[z].name,a->book.name);
if(!b){
num++;
book2[m+num]=a->book;
bo++;
}
a=a->next;
}
if(!bo){
printf("抱歉,没有你的最爱!\n");
}
a=L->next;
}
printf("%d\n",num);
for(int x=m+1;x<=m+num;x++){
printf("%s %s %.2lf\n",book2[x].no,book2[x].name,book2[x].price);
}
return 0;
}
- 基于链式存储结构的图书信息表的最佳位置图书的查找
#include<stdio.h>
#include<malloc.h>
typedef struct LNode{
char no[20];
char name[50];
double price;
struct LNode *next;
}LNode,*LinkList;
int main(){
int n,m;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
scanf("%d",&n);
for(int i=n;i>0;--i){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->no,&p->name,&p->price);
r->next=p;
r=p;
}
r->next=NULL;
int num[n];
scanf("%d",&m);
for(int j=0;j<m;j++){
scanf("%d",&num[j]);
}
LinkList a;
a=L;
for(int z=0;z<m;z++){
if(num[z]>0&&num[z]<=n){
while(a!=NULL&&num[z]){
a=a->next;
num[z]--;
}
printf("%s %s %.2lf\n",a->no,a->name,a->price);
a=L;
}else{
printf("抱歉,最佳位置上的图书不存在!");
}
}
return 0;
}
- 基于链式存储结构的图书信息表的新图书的入库
#include<stdio.h>
#include<malloc.h>
typedef struct LNode{
char no[20];
char name[50];
double price;
struct LNode *next;
}LNode,*LinkList;
int main(){
int n,m;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
scanf("%d",&n);
for(int i=n;i>0;--i){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->no,&p->name,&p->price);
r->next=p;
r=p;
}
r->next=NULL;
scanf("%d",&m);
LinkList a,b;
a=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&a->no,&a->name,&a->price);
if(m<1||m>n){
printf("抱歉,入库位置非法!");
return 0;
}
b=L;
for(int j=0;j<m-1;j++){
b=b->next;
}
a->next=b->next;
b->next=a;
// printf("%d\n",n);
L=L->next;
while(L!=NULL){
printf("%s %s %.2lf\n",L->no,L->name,L->price);
L=L->next;
}
return 0;
}
- 基于链式存储结构的图书信息表的旧图书的出库
#include<stdio.h>
#include<malloc.h>
typedef struct LNode{
char no[20];
char name[50];
double price;
struct LNode *next;
}LNode,*LinkList;
int main(){
int n,m;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
scanf("%d",&n);
for(int i=n;i>0;--i){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->no,&p->name,&p->price);
r->next=p;
r=p;
}
r->next=NULL;
scanf("%d",&m);
if(m<1||m>n){
printf("抱歉,出库位置非法!");
return 0;
}
LinkList a;
a=L;
for(int j=0;j<m-1;j++){
a=a->next;
}
a->next=a->next->next;
// printf("%d\n",n);
L=L->next;
while(L!=NULL){
printf("%s %s %.2lf\n",L->no,L->name,L->price);
L=L->next;
}
return 0;
}
- 基于链式存储结构的图书信息表的修改
#include<stdio.h>
#include<malloc.h>
typedef struct LNode{
char no[20];
char name[50];
double price;
struct LNode *next;
}LNode,*LinkList;
int main(){
double n,m;
double num=0;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
for(int i=0;;i++){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->no,&p->name,&p->price);
if(p->no[0]=='0'&&p->name[0]=='0'&&p->price==0){
n=i;
break;
}
r->next=p;
r=p;
}
r->next=NULL;
LinkList a,b;
a=L->next;
b=L->next;
while(a!=NULL){
num+=a->price;
a=a->next;
}
num=num/n;
while(b!=NULL){
if(b->price<num){
b->price=b->price*1.2;
}else{
b->price=b->price*1.1;
}
b=b->next;
}
printf("%.2lf\n",num);
L=L->next;
while(L!=NULL){
printf("%s %s %.2lf\n",L->no,L->name,L->price);
L=L->next;
}
return 0;
}
- 基于链式存储结构的图书信息表的排序
#include<stdio.h>
#include<malloc.h>
typedef struct
{
char no[20];
char name[50];
double price;
}Book;
typedef struct LNode{
Book book;
struct LNode *next;
}LNode,*LinkList;
int main(){
int n;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
for(int i=0;;i++){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->book.no,&p->book.name,&p->book.price);
if(p->book.no[0]=='0'&&p->book.name[0]=='0'&&p->book.price==0){
n=i;
break;
}
r->next=p;
r=p;
}
r->next=NULL;
for(int j=0;j<n-1;j++){
LinkList a=L->next;
for(int z=0;z<n-j-1;z++){
if(a->book.price<a->next->book.price){
Book bo=a->book;
a->book=a->next->book;
a->next->book=bo;
}
a=a->next;
}
}
L=L->next;
while(L!=NULL){
printf("%s %s %.2lf\n",L->book.no,L->book.name,L->book.price);
L=L->next;
}
return 0;
}
- 基于链式存储结构的图书信息表的创建和输出
#include<stdio.h>
#include<malloc.h>
typedef struct LNode{
char no[20];
char name[50];
double price;
struct LNode *next;
}LNode,*LinkList;
int main(){
int n;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
for(int i=0;;i++){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->no,&p->name,&p->price);
if(p->no[0]=='0'&&p->name[0]=='0'&&p->price==0){
n=i;
break;
}
r->next=p;
r=p;
}
r->next=NULL;
printf("%d\n",n);
L=L->next;
while(L!=NULL){
printf("%s %s %.2lf\n",L->no,L->name,L->price);
L=L->next;
}
return 0;
}
- 基于链存储结构的图书信息表的图书去重
#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef struct
{
char no[20];
char name[50];
double price;
}Book;
typedef struct LNode{
Book book;
struct LNode *next;
}LNode,*LinkList;
int main(){
int n;
LinkList L,r;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
scanf("%d",&n);
for(int i=0;i<n;i++){
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
scanf("%s %s %lf",&p->book.no,&p->book.name,&p->book.price);
r->next=p;
r=p;
}
r->next=NULL;
LinkList a,lat,pre;
pre=a=L->next;
while(a->next){
pre=a;
lat=pre->next;
while(lat){
int bo=strcmp(lat->book.no,a->book.no);
if(!bo)
{
pre->next=lat->next;
lat=pre->next;
n--;
}else{
pre=lat;
lat=lat->next;
}
}
a=a->next;
}
printf("%d\n",n);
L=L->next;
while(L!=NULL){
printf("%s %s %.2lf\n",L->book.no,L->book.name,L->book.price);
L=L->next;
}
return 0;
}