7-2 查找单价最高和最低的书籍 (10 分)
编写程序,从键盘输入 n (n<10)本书的名称和定价并存入结构数组中,查找并输出其中定价最高和最低的书的名称和定价。
输出格式语句:
printf("highest price: %.1f, %s\n", );
printf("lowest price: %.1f, %s\n",);
输入输出示例:括号内为说明,无需输入输出
输入样例:
3 (n=3)
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25
输出样例:
highest price: 25.0, Programming in Delphi
lowest price: 18.5, Programming in VB
思路:最基本的结构体排序,需要注意的只有一个地方:就是实现换行输入。
book.name这个地方用getline函数,注意还要用getchar函数放到缓冲区当中缓存。
参考博客:https://blog.csdn.net/qq_45159762/article/details/104115801
代码:
#include<bits/stdc++.h>
using namespace std;
struct book{
char s[100];
double price;
}b[15];
int main()
{
int n;
scanf("%d",&n);
double min = 9999,max = 0;
int maxi,mini;
for(int i = 0 ;i < n ; i++)
{
getchar();
//printf("i = %d\n",i);
cin.getline(b[i].s,31);
cin>>b[i].price;
if(b[i].price>max){
maxi = i;
max = b[i].price;
}
if(b[i].price<min){
mini = i;
min = b[i].price;
}
}
printf("highest price: %.1f, %s\n",max,b[maxi].s);
printf("lowest price: %.1f, %s\n",min,b[mini].s);
return 0;
}