给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。
输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。
输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。
输入样例
3
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25.0
输出样例
25.00, Programming in Delphi
18.50, Programming in VB
c语言代码
#include <stdio.h>
struct shu//定义书的结构体
{
char a[31];//书名
double b;//价格
};
int main()
{
int n,i,max=0,min=0;
double temp;
struct shu m[10];//定义数组,元素为10个书的结构体
scanf("%d",&n);//书的数量
getchar();//吸收scanf函数留下的回车
for(i=0;i<n;i++)//给数组赋值,就是填写书的信息
{
gets(m[i].a);//name
scanf("%lf",&m[i].b);//price
getchar();//同理吸收回车符
}
for(i=1,temp=m[0].b;i<n;i++)//找最贵的
{
if(m[i].b>temp)
{ max=i;
temp=m[i].b;}
}
for(i=1,temp=m[0].b;i<n;i++)//找最便宜的
{
if(m[i].b<temp)
{ min=i;
temp=m[i].b;}
}
printf("%.2lf, %s\n",m[max].b,m[max].a);
printf("%.2lf, %s",m[min].b,m[min].a);
return 0;
}
## 题目不难,主要是要清楚scanf函数和gets函数的性质,注意对回车的处理