基于顺序存储结构的图书信息表的逆序存储
题目描述
定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后将读入的图书信息逆序存储,逐行输出逆序存储后每本图书的信息。
输入描述
输入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
/**
* main函数返回值不能为void,否则会汇编出错,请使用int main(),并在最后return 0。
* 虽然VC等windows下的编译器支持,但C/C++标准中不允许使用void main()!
*/
#include<stdio.h>
#include<stdlib.h>
typedef struct Book
{
long long int num;
char name[50];
double price;
} Book;
int main()
{
int i,j,n;
scanf("%d",&n);
Book *L = (Book *)malloc(n*sizeof(Book));
for(i=n-1; i>=0 ; i--)
{
scanf("%lld",&L[i].num);
scanf("%s",L[i].name);
scanf("%lf",&L[i].price);
}
for(i=0; i<n; i++)
{
printf("%lld %s %.2f\n",L[i].num,L[i].name,L[i].price);
}
return 0;
}