【问题描述】从键盘输入n(n<=10),本书的名称和定价并存入结构体数组中,从中查找定价最高的和最低的数的名称及定价,并输出,价格输出保留2位小数。
【样例输入】
3
Programming_in_c 21.5
Programming_in_VB 18.5
Programming_in_Delphi 25.0
【样例输出】
18.50,Programming_in_VB
25.00,Programming_in_Delphi
cpp
#include <stdio.h>
typedef struct{
double price;
char name[1000];
}Book;
int main()
{
int n,i,t1=0,t2=0;
scanf("%d",&n);
Book st[10];
for(i=0;i<n;i++)
{
scanf("%s%lf",st[i].name,&st[i].price);
if(st[i].price>st[t1].price) t1=i;
if(st[i].price<st[t2].price) t2=i;
}
printf("%.2lf,%s\n",st[t2].price,st[t2].name);
printf("%.2lf,%s\n",st[t1].price,st[t1].name);
return 0;
}
我一开始用暴力做法也AC成功了
cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
double max=0,min=1000;
int t1,t2,n;
cin >> n;
string a[10];
double price[10];
for(int i=0;i<n;i++)
{
cin >> a[i];
cin >> price[i];
}
for(int i=0;i<n;i++)
{
if(price[i]>max)
{
max=price[i];
t1=i;
}
}
for(int i=0;i<n;i++)
{
if(price[i]<min)
{
min=price[i];
t2=i;
}
}
printf("%.2lf,",min);
cout << a[t2] << endl;
printf("%.2lf,",max);
cout << a[t1] << endl;
return 0;
}