本文采用C語言求解
【問題描述】
定義一個包含圖書信息(書號、書名、價格)的順序表,讀入相應(yīng)的圖書數(shù)據(jù)來完成圖書信息表的創(chuàng)建。然后,查找價格最高的圖書,輸出相應(yīng)圖書的信息。
【輸入形式】
總計輸入n+1行。其中,第一行是圖書數(shù)目n,后n行是n本圖書的信息(書號、書名、價格),每本圖書信息占一行,書號、書名、價格用空格分隔,價格之后沒有空格。其中,書號和書名為字符串類型,價格為浮點數(shù)類型。
【輸出形式】
總計輸出m+1行,其中,第一行是最貴圖書的數(shù)目(價格最高的圖書可能有多本),后m行是m本最貴圖書的信息(書號、書名、價格),每本圖書信息占一行,書號、書名、價格用空格分隔。其中,價格輸出保留兩位小數(shù)。
【樣例輸入】
6
9787302257646 程序設(shè)計基礎(chǔ) 25.00
9787302164340 程序設(shè)計基礎(chǔ)(第2版) 20.00
9787302219972 單片機技術(shù)及應(yīng)用 32.00
9787302203513 單片機原理及應(yīng)用技術(shù) 26.00
9787810827430 工業(yè)計算機控制技術(shù)——原理與應(yīng)用 29.00
9787811234923 匯編語言程序設(shè)計教程 32.00
【樣例輸出】
2
9787302219972 單片機技術(shù)及應(yīng)用 32.00
9787811234923 匯編語言程序設(shè)計教程 32.00
【樣例說明】
【評分標準】
完整代碼如下:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10000
struct Book
{
char BookNumber[MAXSIZE];
char BookName[MAXSIZE];
double BookPrice;
}book[MAXSIZE];
int main()
{
int n, m = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%s", book[i].BookNumber);
scanf("%s", book[i].BookName);
scanf("%lf", &book[i].BookPrice);
}
double MaxPrice = book[0].BookPrice;
int maxnumber[MAXSIZE];
for (int i = 0; i < n; i++)
{
if (book[i].BookPrice > MaxPrice)
{
MaxPrice = book[i].BookPrice;
}
}
for (int i = 0; i < n; i++)
{
if (book[i].BookPrice == MaxPrice)
{
maxnumber[m] = i;
m = m + 1;
}
}
printf("%d\n", m);
for (int i = 0; i < m; i++)
{
printf("%s", book[maxnumber[i]].BookNumber);
printf(" %s", book[maxnumber[i]].BookName);
printf(" %0.2lf\n", book[maxnumber[i]].BookPrice);
}
return 0;
}

越努力,越幸運
end~~~