【问题描述】从键盘输入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
#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成功了
#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;
}