书名与价格

该程序通过读取结构数组中的书籍信息,包括书名和价格,使用选择排序找到价格最高的和最低的书名,并在每个测试用例结束后输出。程序能够处理多个测试用例,直到遇到n=0为止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

把n本书的书名和价格读入一个结构数组中,然后输出价格最高的书名和价格最低的书名。

Input

有多个测试用例,每个测试用例第一行是一个整数n( 0 < n < 10000 ),接下来是n行,每行是一个书名(书名里面不含空格,书名长度不超过60个字符)和它的价格,空格分隔。

最后一个测试用例 n = 0,不用处理。

Output

对应每个测试用例,单独输出一行:价格最高的书名和价格最低的书名,空格分隔。

Sample Input

3
XiYouJi 50
note 30
HongLouMeng 100
0

Sample Output

HongLouMeng note

Author

John

#include<stdio.h>
#include<string.h>
struct book{ /*定义结构数组*/ 
char name[60];
int price;
};
int main() /*主函数*/ 
{
int i,n,index;
struct book books[60],temp;
while(scanf("%d",&n)!=EOF){
if(n==0) break;
for(i=0;i<n;i++){ /*以循环输入数据*/ 
scanf("%s",&books[i].name);
scanf("%d",&books[i].price); 
}
for(i=0;i<n-1;i++){ /*选择法排序*/ 
index=i;
for(int j=i+1;j<n;j++)
if(books[j].price>books[index].price)
index=j;
temp=books[index];
books[index]=books[i];
books[i]=temp;
}
printf("%s %s\n",books[0].name,books[n-1].name);
index=0;

for(i=0;i<n;i++){ /*清空结构数组*/ 
books[i].price=0;
memset(&books[i].name,0,sizeof(struct book));
}
}
}
 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值