习题9-4 查找书籍(C语言实现)
分析:
①注意书名可能有空格,不能用scanf输入,scanf遇空格和回车结束输入,因此用gets()输入;
②用scanf输入价格后,回车还在缓冲区里面,循环用gets输入书名时,gets获得是回车字符串,因此要用getchar()消耗scanf后面的回车。
#include <stdio.h>
#include <string.h>
int main()
{
int n,i;
char name[31]={0},maxName[31]={0},minName[31]={0};
double price,max,min;
scanf("%d",&n);
getchar();
for(i=0; i<n; i++)
{
gets(name);
scanf("%lf",&price);
getchar();
if(i==0)
{
min=price;
max=price;
strcpy(maxName,name);
strcpy(minName,name);
}
else
{
if(price > max)
{
max=price;
strcpy(maxName,name);
}
if(price < min)
{
min=price;
strcpy(minName,name);
}
}
}
printf("%.2lf, %s\n",max,maxName);
printf("%.2lf, %s\n",min,minName);
return 0;
}